Category of monads
Monoidal category
Monoidal category:
とは、
- category:
- bifunctor: (monoidal product)
- -object: (unit object)
- natural isomorphism: (associator)
- natural isomorphism: (left unitor)
- natural isomorphism: (right unitor)
で、pentagon equalityとtriangle equalityを満たすもの。
Monoid object
上記のmonoidal categoryにおいて、monoid object:
とは、
- -object:
- -morphism: (unit)
- -morphism: (multiplication)
で、associative lawとunit lawを満たすもの。
Monoid morphism
二つのmonoid object:
について、
を満たす -morphism:
を、monoid morphismという。
Category of monoid objects
Objectをmonoid object、morphismをmonoid morphismとするcategory:
を定義することが出来る。
Category of monads
Endofunctor category 上にmonoidal category:
を定義することが出来る。*1
このmonoidal category上のmonoid objectは、monadそのものである*2ので、
と定義する。特にこのとき、monoid morphismをmonad morphism*3という。
Free monad (official)
Monadのcategoryが出来たのでfree monadを定義できる。
Fogetful functor:
について、-initial morphism:
が存在するとき、 を、free monad for という。特に、その族:
が存在すれば、Pointwise construction of adjoints - PS (のdual)により、
Monad transformer
@deprecated
Endofunctor:
と、natural transformation:
を合わせた代数的構造 を、monad transformerという(と思う)。*4
参考文献
- Categories for the Working Mathematician (Graduate Texts in Mathematics)
- Category Theory (Oxford Logic Guides)
- Monoidal category - Wikipedia, the free encyclopedia
- Monoid (category theory) - Wikipedia, the free encyclopedia
- モナド変換子の圏論的理解(Categorical understanding of monad transformers) - koba-e964の日記
- Control.Monad.Morph
- Control.Monad.Free
- pointed endofunctor in nLab
- What are Haskell's monad transformers in categorical terms? - Stack Overflow