Module Control.arrow.Kleisli

Kleisli operators, Arrow and Monad instances

Imports

Table of Content

Definitions

data Kleisli m a b

Constructors

Kleisli {run ∷ a → m b}

Member Functions

runKleisli α γ β → γ → α β

access field run

Instances

instance Monad m ⇒ Arrow (Kleisli m)

Member Functions

&&&Monad α ⇒ Kleisli α γ δKleisli α γ βKleisli α γ (δ, β)
infixr  3
***Monad α ⇒ Kleisli α δ γKleisli α ε βKleisli α (δ, ε) (γ, β)
infixr  3
arrMonad α ⇒ (γ → β) → Kleisli α γ β
firstMonad α ⇒ Kleisli α γ βKleisli α (γ, δ) (β, δ)
idMonad α ⇒ Kleisli α β β
secondMonad α ⇒ Kleisli α δ βKleisli α (γ, δ) (γ, β)
Monad α ⇒ Kleisli α β δKleisli α γ βKleisli α γ δ
infixr  16
instance Monad m ⇒ Monad (Kleisli m a)

Member Functions

*>Monad β ⇒ Kleisli β α γKleisli β α δKleisli β α δ
infixl  4

inherited from Applicative.*>

<*Monad β ⇒ Kleisli β α γKleisli β α δKleisli β α γ
infixl  4

inherited from Applicative.<*

<*>Monad β ⇒ Kleisli β α (γ→δ)Kleisli β α γKleisli β α δ
infixl  4
>>Monad β ⇒ Kleisli β α γKleisli β α δ → Kleisli β α δ
infixl  3

inherited from Monad.>>

>>=Monad β ⇒ Kleisli β α γ → (γ → Kleisli β α δ) → Kleisli β α δ
infixl  3
fmapMonad β ⇒ (γ → δ) → Kleisli β α γKleisli β α δ
infixl  4
joinMonad β ⇒ Kleisli β α (Kleisli β α γ)Kleisli β α γ

inherited from Monad.join

pureMonad β ⇒ γ → Kleisli β α γ

Functions and Values by Type

α → Bool

Kleisli.has$run

Monad α ⇒ Kleisli α β β

Arrow_Kleisli.id

(a → m b) → Kleisli m a b

Kleisli.Kleisli

Kleisli α γ β → γ → α β

Kleisli.run

Monad α ⇒ (γ → β) → Kleisli α γ β

Arrow_Kleisli.arr

Monad β ⇒ Kleisli β α (Kleisli β α γ) → Kleisli β α γ

Monad_Kleisli.join

Monad β ⇒ γ → Kleisli β α γ

Monad_Kleisli.pure

Monad α ⇒ Kleisli α β δ → Kleisli α γ β → Kleisli α γ δ

Arrow_Kleisli.•

Monad α ⇒ Kleisli α γ β → Kleisli α (γ, δ) (β, δ)

Arrow_Kleisli.first

Monad α ⇒ Kleisli α γ δ → Kleisli α γ β → Kleisli α γ (δ, β)

Arrow_Kleisli.&&&

Monad α ⇒ Kleisli α δ β → Kleisli α (γ, δ) (γ, β)

Arrow_Kleisli.second

Monad β ⇒ (γ → δ) → Kleisli β α γ → Kleisli β α δ

Monad_Kleisli.fmap

Monad β ⇒ Kleisli β α (γ→δ) → Kleisli β α γ → Kleisli β α δ

Monad_Kleisli.<*>

Monad β ⇒ Kleisli β α γ → (γ → Kleisli β α δ) → Kleisli β α δ

Monad_Kleisli.>>=

Monad β ⇒ Kleisli β α γ → Kleisli β α δ → Kleisli β α γ

Monad_Kleisli.<*

Monad β ⇒ Kleisli β α γ → Kleisli β α δ → Kleisli β α δ

Monad_Kleisli.>>, Monad_Kleisli.*>

Monad α ⇒ Kleisli α δ γ → Kleisli α ε β → Kleisli α (δ, ε) (γ, β)

Arrow_Kleisli.***

Kleisli α β γ → (-> β (α γ)→ζ→δ ε) → Kleisli δ ζ ε

Kleisli.chg$run

Kleisli α β γ → (ζ→δ ε) → Kleisli δ ζ ε

Kleisli.upd$run

Valid HTML 4.01 Strict