data-category-0.2.0: Restricted categories

Portabilitynon-portable
Stabilityexperimental
Maintainersjoerd@w3future.com

Data.Category.Kleisli

Description

This is an attempt at the Kleisli category, and the construction of an adjunction for each monad.

Documentation

class Functor m => Pointed m whereSource

Methods

point :: m -> Id (Dom m) :~> mSource

class Pointed m => Monad m whereSource

Methods

join :: m -> (m :.: m) :~> mSource

data Kleisli (~>) m a b whereSource

Constructors

Kleisli :: m -> Obj ~> b -> (a ~> (m :% b)) -> Kleisli ~> m a b 

Instances

(Dom m ~ ~>, Cod m ~ ~>, Category ~>, Monad m) => Category (Kleisli ~> m) 

data KleisliAdjF (~>) m whereSource

Constructors

KleisliAdjF :: (Category ~>, Monad m, Dom m ~ ~>, Cod m ~ ~>) => m -> KleisliAdjF ~> m 

Instances

data KleisliAdjG (~>) m whereSource

Constructors

KleisliAdjG :: (Category ~>, Monad m, Dom m ~ ~>, Cod m ~ ~>) => m -> KleisliAdjG ~> m 

Instances

kleisliAdj :: (Monad m, Dom m ~ ~>, Cod m ~ ~>, Category ~>) => m -> Adjunction (Kleisli ~> m) ~> (KleisliAdjF ~> m) (KleisliAdjG ~> m)Source