/caterwaul/Monad/Type

Copy path to clipboard

A monad on a category C is a monoid object in the category of endofunctors in C induced by composition.

Source

{-|
A monad on a category C is a monoid object in the category of endofunctors in C
induced by composition.
-}
let kCat = ../Category/Cat/semigroupal

let vObject = Type

let v =
../Category/Monoidal/Cartesian/extractCategory
kCat
Type
vObject
../Category/Set/monoidal/cartesian

in λ(object : Kind) →
λ(cat : ../Category/Kind kCat vObject object) →
../Monoid/Type
(kCat.arrow object object)
(../Category/Endofunctor/monoidal/monadic object v cat)