Portability | non-portable |
---|---|
Stability | experimental |
Maintainer | sjoerd@w3future.com |
Safe Haskell | Safe-Inferred |
Dialg(F,G), the category of (F,G)-dialgebras and (F,G)-homomorphisms.
- data Dialgebra f g a where
- data Dialg f g a b where
- dialgId :: Dialgebra f g a -> Obj (Dialg f g) a
- dialgebra :: Obj (Dialg f g) a -> Dialgebra f g a
- type Alg f = Dialg f (Id (Dom f))
- type Algebra f a = Dialgebra f (Id (Dom f)) a
- type Coalg f = Dialg (Id (Dom f)) f
- type Coalgebra f a = Dialgebra (Id (Dom f)) f a
- type InitialFAlgebra f = InitialObject (Alg f)
- type TerminalFAlgebra f = TerminalObject (Coalg f)
- type Cata f a = Algebra f a -> Alg f (InitialFAlgebra f) a
- type Ana f a = Coalgebra f a -> Coalg f a (TerminalFAlgebra f)
- data NatNum
- primRec :: (() -> t) -> (t -> t) -> NatNum -> t
- data FreeAlg m = FreeAlg (Monad m)
- data ForgetAlg m = ForgetAlg
- eilenbergMooreAdj :: (Functor m, Dom m ~ k, Cod m ~ k) => Monad m -> Adjunction (Alg m) k (FreeAlg m) (ForgetAlg m)
Documentation
data Dialg f g a b whereSource
Arrows of Dialg(F,G) are (F,G)-homomorphisms.
type InitialFAlgebra f = InitialObject (Alg f)Source
The initial F-algebra is the initial object in the category of F-algebras.
type TerminalFAlgebra f = TerminalObject (Coalg f)Source
The terminal F-coalgebra is the terminal object in the category of F-coalgebras.
type Cata f a = Algebra f a -> Alg f (InitialFAlgebra f) aSource
A catamorphism of an F-algebra is the arrow to it from the initial F-algebra.
type Ana f a = Coalgebra f a -> Coalg f a (TerminalFAlgebra f)Source
A anamorphism of an F-coalgebra is the arrow from it to the terminal F-coalgebra.
eilenbergMooreAdj :: (Functor m, Dom m ~ k, Cod m ~ k) => Monad m -> Adjunction (Alg m) k (FreeAlg m) (ForgetAlg m)Source