higher-kinded types

最经典的例子: trait StreamingIterator {

type Item<'a>;
fn next<'a>(&'a mut self) -> Option<Self::Item<'a>>;

}

This trait is very useful - it allows for a