pub trait Collectwhere
    Self: ListFn,
    Self::End: ResultFn,{
    // Provided method
    fn collect<C: Collection<Item = Self::Item>>(
        self,
        c: C
    ) -> CollectResult<C, <Self::End as ResultFn>::Result> { ... }
}pub trait Collectwhere
    Self: ListFn,
    Self::End: ResultFn,{
    // Provided method
    fn collect<C: Collection<Item = Self::Item>>(
        self,
        c: C
    ) -> CollectResult<C, <Self::End as ResultFn>::Result> { ... }
}