pub trait FoldableExtProd<A>: Foldable<A> + Sizedwhere A: Mul<Output = A> + Monoid,{ fn sum(self) -> A { ... } }