data KleeneShp : Cont -> TypeKleene star, aka. the free monad monad on containers
Is the least fixpoint in the category of containers of
Kleene c = Scalar >+< (c >@ Kleene c)
Since Idris doesn't support codata, we can also use this for greatest fixpoint
by using corecursive shapes and marking them as partial
data KleenePos : KleeneShp c -> TypeKleene : Cont -> ContKleeneShp : c =%> d -> KleeneShp c -> KleeneShp dKleenePos : (f : c =%> d) -> (ks : KleeneShp c) -> KleenePos (KleeneShp f ks) -> KleenePos ksKleene : c =%> d -> Kleene c =%> Kleene dAction on morphisms