(.using
[library
[lux "*"
[control
[functor {"+" Fix}]]]])
(type: .public (Algebra f a)
(-> (f a) a))
(type: .public (CoAlgebra f a)
(-> a (f a)))
(type: .public (RAlgebra f a)
(-> (f (Tuple (Fix f) a)) a))
(type: .public (RCoAlgebra f a)
(-> a (f (Or (Fix f) a))))