Monády

Monáda je trojica (M, return, then) pozostávajúca z typového konštruktora M a dvojice polymorfných funkcií.

return :: a → M a
then :: M a → (a → M b) → M b

Tieto funkcie musia spĺňať nasledujúce pravidlá:

then (return a) k = k a
then m return = m
then (λ a ⋅ then (k a) (λ b ⋅ k b )) = then (then m (λ a ⋅ k a))(λ b ⋅ k b)