PS

Category of applicative functors

Applicative morphism

二つのapplicative functor:

  •  (F, \mathtt{pure} ^ F, \mathtt{ \unicode{x003c} \unicode{x002a} \unicode{x003e}} ^ F)
  •  (G, \mathtt{pure} ^ G, \mathtt{ \unicode{x003c} \unicode{x002a} \unicode{x003e}} ^ G)

の間のmorphismを

  1.  \tau \circ \mathtt{pure} ^ F = \mathtt{pure} ^ G
  2.  \tau _ b ( x\ \mathtt{ \unicode{x003c} \unicode{x002a} \unicode{x003e}} ^ F y ) = \tau _ {a \to b} (x)\ \mathtt{ \unicode{x003c} \unicode{x002a} \unicode{x003e}} ^ G \tau _ a (y)

を満たすnatural transformation:

  •  \tau : F \Rightarrow G

とする。

Monoidal morphism

Applicative functorはmonoidal endofunctorで表現できたので、同様に
二つのmonoidal endofunctor on monoidal  \mathcal{Set} or  \mathcal{Hask}:

  •  (F, \phi ^ F, u ^ F)
  •  (G, \phi ^ G, u ^ G)

の間のmorphismを

  1.  \tau _ { \lbrace \ast \rbrace } \circ u ^ F = u ^ G
  2.  \tau _ {a \times b} (x\ \phi ^ F y) = \tau _ a(x)\ \phi ^ G \tau _ b(y)

を満たすnatural transformation:

  •  \tau : F \Rightarrow G

とする。

命題

上記の二つのmorphismは同値。

Category of applicative functors

Applicative functorをobject、applicative morphismをmorphismとするcategoryを定義できる。
Category of monoidal endofunctorsも同様。

参考文献