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