pub trait Foldable<T, U> {
type Mapped;
// Required method
fn fold<F>(
self,
folder: &mut F
) -> Result<Self::Mapped, <F as Fold<T>>::Error>
where F: Fold<T, TargetU = U> + ?Sized;
}
pub trait Foldable<T, U> {
type Mapped;
// Required method
fn fold<F>(
self,
folder: &mut F
) -> Result<Self::Mapped, <F as Fold<T>>::Error>
where F: Fold<T, TargetU = U> + ?Sized;
}