We don't check that types in method signatures are well-formed, or even when they are Sized. I mean, this compiles: ``` Rust pub struct U<T: Send+Sync+Copy+::std::fmt::Display>(*const T); pub trait Trait { } pub trait OtherTrait { fn f(self, u: U<Trait>); fn g(self, u: [u8]); } impl OtherTrait for () { fn f(self, u: U<Trait>) { } fn g(self, ref u: [u8]) {} } fn main () {} ```