モナドとは自己関手の圏におけるモノイド対象である
モナドの定義とモノイド対象の定義の類似性をわかりやすく示したい

そのためにも
モノイド対象をもうちょいちゃんと理解しないといけない
圏\mathscr{A}において
関手T:\mathscr{A}\to\mathscr{A}
自然変換\eta:1\to T
自然変換\mu:TT\to T
の3つ組
(T,\eta,\mu)が
モナドであるとする
「自己関手の圏」
自己
関手圏Fun\mathscr{A}^\mathscr{A}のこと
関手Tはこの\mathscr{A}^\mathscr{A}の対象
「モノイド対象」
まずはじめに
\mathscr{A}^\mathscr{A}の演算に
モノイド積を当てはめるなどして、
\mathscr{A}^\mathscr{A}を
モノイダル圏として見る必要がある
「自己関手同士の合成」を「モノイド積」に当てはめることで、\mathscr{A}^\mathscr{A}をモノイド圏としてみることができる
M(M(X))
を M◦M(X)
と見ることができるので
M(M(X))→M◦M(X)
は、(この M
は関手)
M×M→M
である(この M
は型)
モノイド対象の定義に沿って、自己関手のやつを対応させればいい
対応モノイド対象 | 自己関手圏におけるモノイド対象 |
M | 自己関手T |
μ: M⊗M→M | μ: T^2→T |
η: I→M | η: 1→T |
1は\mathscr{A}^\mathscr{A}の単位対象
モナドの定義を見る
圏\mathscr{A}上のモナドとは、3つ組(T,\eta,\mu)
自己関手T:\mathscr{A}\to\mathscr{A}
自然変換\eta:\mathrm{id}\Rightarrow T
以下の図式を可換にする
自然変換\mu: T\circ T\Rightarrow T
以下の図式を可換にする
TTTAは括弧を明示的に書くならT(T(T(A)))
Haskellと対応させるときは、ポイントフリーなものではないほうを参照したほうがわかりやすい
