PS

State monads in String diagrams

Monoidal category  (\mathcal{Hask}, \mathtt{(,)} , \mathtt{()} ) にて・・・

Diagonal morphism

  •  \Delta : x \to (x,x)
  •  \Delta(x) := (x,x)

f:id:mbps:20151014091625p:plain

Naturality

f:id:mbps:20151014091639p:plain

Terminating morphism

(とはたぶん呼ばない)

  •  \operatorname{!} : x \to ()
  •  !(x) := ()

f:id:mbps:20151017172534p:plain

Naturality

f:id:mbps:20151014093631p:plain

これらは、より一般には cartesian monoidal category のときに作れる。

State monad

f:id:mbps:20151010022230p:plain

get/put

f:id:mbps:20151010022236p:plain

参考文献