At least, that's my naive take on what's going on. This example doesn't compile for me, while it seems to me like it should: ``` pub trait Super { } pub trait Main { fn callreflect<T: Reflector> (&self, v: T); } pub trait Reflector { fn reflect<T: Main> (&self, h: &T); } impl<S: Super> Main for S { fn callreflect<T: Reflector> (&self, v: T) { v.reflect (self); } } ``` I get: ``` testcase.rs:13:8: 13:25 error: failed to find an implementation of trait Main for S testcase.rs:13 v.reflect (self); ``` Seeing as this error is in fact triggered inside the implementation of Main, it seems bogus to me. Or am I missing something?