class Monad m where return :: a -> m a (>>=) :: m a -> (a -> m b) -> m bWenn
m
ein Endo-Funktor ist,
dann gilt in der Kleisli-Kategorie von m
:
Identität
ida ist return :: a -> m a
Komposition ist:
import Control.Monad (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> (a -> m c) f (>=>) g = \ x -> ( f x ) >>= g