License | BSD-style (see the file LICENSE) |
---|---|
Maintainer | sjoerd@w3future.com |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe |
Language | Haskell2010 |
This is an attempt at the Kleisli category, and the construction of an adjunction for each monad.
- data Kleisli m a b where
- kleisliId :: (Functor m, Dom m ~ k, Cod m ~ k) => Monad m -> Obj k a -> Kleisli m a a
- data KleisliAdjF m = KleisliAdjF (Monad m)
- data KleisliAdjG m = KleisliAdjG (Monad m)
- kleisliAdj :: (Functor m, Dom m ~ k, Cod m ~ k) => Monad m -> Adjunction (Kleisli m) k (KleisliAdjF m) (KleisliAdjG m)
Documentation
data KleisliAdjF m Source #
KleisliAdjF (Monad m) |
(Functor m, (~) (* -> * -> *) (Dom m) k, (~) (* -> * -> *) (Cod m) k) => Functor (KleisliAdjF m) Source # | |
type Dom (KleisliAdjF m) Source # | |
type Cod (KleisliAdjF m) Source # | |
type (KleisliAdjF m) :% a Source # | |
data KleisliAdjG m Source #
KleisliAdjG (Monad m) |
(Functor m, (~) (* -> * -> *) (Dom m) k, (~) (* -> * -> *) (Cod m) k) => Functor (KleisliAdjG m) Source # | |
type Dom (KleisliAdjG m) Source # | |
type Cod (KleisliAdjG m) Source # | |
type (KleisliAdjG m) :% a Source # | |
kleisliAdj :: (Functor m, Dom m ~ k, Cod m ~ k) => Monad m -> Adjunction (Kleisli m) k (KleisliAdjF m) (KleisliAdjG m) Source #