Portability | non-portable |
---|---|
Stability | experimental |
Maintainer | sjoerd@w3future.com |
This is an attempt at the Kleisli category, and the construction of an adjunction for each monad.
Documentation
kleisliId :: (Category ~>, Functor m, Dom m ~ ~>, Cod m ~ ~>) => Monad m -> Obj ~> a -> Kleisli ~> m a aSource
data KleisliAdjF (~>) m whereSource
KleisliAdjF :: Monad m -> KleisliAdjF ~> m |
data KleisliAdjG (~>) m whereSource
KleisliAdjG :: Monad m -> KleisliAdjG ~> m |
kleisliAdj :: (Functor m, Dom m ~ ~>, Cod m ~ ~>, Category ~>) => Monad m -> Adjunction (Kleisli ~> m) ~> (KleisliAdjF ~> m) (KleisliAdjG ~> m)Source