Let 〈T, η, μ〉 be a monad over a category C. The Kleisli category of C is the category CT whose objects and morphisms are given by That is, every morphism f: X → T Y in C can also be regarded as a morphism in CT. Composition of morphisms in CT is given by where f: X → T Y and g: Y → T Z. The identity morphism is given by the monad unitη: An alternative way of writing this, which clarifies the category in which each object lives, is used by Mac Lane. We use very slightly different notation for this presentation. Given the same monad and category as above, we associate with each object in a new object, and for each morphism in a morphism. Together, these objects and morphisms form our category, where we define Then the identity morphism in is
Extension operators and Kleisli triples
Composition of Kleisli arrows can be expressed succinctly by means of the extensionoperator* : Hom → Hom. Given a monad 〈T, η, μ〉 over a category C and a morphism f : X → TY let Composition in the Kleisli category CT can then be written The extension operator satisfies the identities: where f : X → TY and g : Y → TZ. It follows trivially from these properties that Kleisli composition is associative and that ηX is the identity. In fact, to give a monad is to give a Kleisli triple 〈T, η, *〉, i.e.
A function ;
For each object in, a morphism ;
For each morphism in, a morphism
such that the above three equations for extension operators are satisfied.
Kleisli categories were originally defined in order to show that every monad arises from an adjunction. That construction is as follows. Let 〈T, η, μ〉 be a monad over a category C and let CT be the associated Kleisli category. Using Mac Lane’s notation mentioned in the “Formal definition” section above, define a functor F: C → CT by and a functor G : CT → C by One can show that F and G are indeed functors and that F is left adjoint to G. The counit of the adjunction is given by Finally, one can show that T = GF and μ = GεF so that 〈T, η, μ〉 is the monad associated to the adjunction 〈F, G, η, ε〉.
Showing that ''GF'' = ''T''
For any object X in category C: For any in category C: Since is true for any object X in C and is true for any morphism f in C, then.