Kleisli Triple

モナド(Monad)

次の性質を満たす三つ組(T,η,μ)のこと。

前提
    • 関手 T : C→C
    • 自然変換 η : Id → T, μ : T2 → T
以下の性質を持つ
    1. \mu_A\circ\mu_{TA} = \mu_A\circ T_\mu_A
    2. \mu_A\circ\eta_{TA} = id_{TA}
    3. \mu_A\circ T\eta_A = id_{TA}

ここで、関手の合成T\circ TT^2と書く。関手の射T(f)T_fと書く。

Kleisli Triple

圏C上のKleisli Tripleとは、次の性質を満たす三つ組(T,η,*)のこと。

前提
    • 写像 T : Obj(C)→Obj(C)
    • 射 ηA : A→TA
    • 演算 f* : TA→TB, where f:A→TB, f∈Arr(C)

(* この演算をKleisliリフティングと言う。)

以下の性質を満たす
    1. η*A = idTA
    2. f*◦ηA = f
    3. g*◦f* = (g*◦f)*

メモ

Kleisli Triple
Haskellで使用される。モナドと等価。
使う理由
データとして圏論的データではなく、単に写像を与えれば良い。Tの射、ηの自然性を示す必要がない。
Kleisliリフティング
モナドでいうところのμ