Portability | see LANGUAGE pragmas (... GHC) |
---|---|
Stability | experimental |
Maintainer | nicolas.frisby@gmail.com |
Catamorphism for mutually-recursive datatypes.
- type Algebras ts m = Each ts (Algebra m)
- type SiblingAlgs t m = Algebras (Siblings t) m
- algebras :: forall ts m. ts ::: (All (AlgebraU m)) => Proxy (KS m) -> Algebras ts m
- data CataU ts m t where
- catas :: forall m ts. ts ::: (All (CataU ts m)) => Algebras ts m -> Each ts (FromAt m IdM)
- cata :: t ::: (CataU (Siblings t) m) => SiblingAlgs t m -> t -> Med m t
- module Data.Yoko.Reduce
Documentation
type SiblingAlgs t m = Algebras (Siblings t) mSource
t
inhabits CataU ts m
if
cata :: t ::: (CataU (Siblings t) m) => SiblingAlgs t m -> t -> Med m tSource
Uses the m
-mediated algebras for t
's siblings to reduce a t
to Med
m t
.
module Data.Yoko.Reduce