pub trait TraitWhere {
    type Item<'a>
       where Self: 'a; // Provided methods fn func(self)
       where Self: Sized { ... } fn lines(self) -> Lines<Self>
       where Self: Sized { ... } fn merge<T>(self, a: T)
       where Self: Sized,
             T: Sized
{ ... } }