pub type Algebra<F, A> = Box<dyn Fn(<F as HKT>::Of<A>) -> A>;
F<A> -> A — an F-algebra, used in catamorphism.
F<A> -> A
pub struct Algebra<F, A>(/* private fields */);