kleisli composition
Method for composing monadic actions.
Forward kliesli arrow, >=>
has type
(a -> m b) -> (b -> m c) -> a -> m c
The arrow takes two functions that each return a monad value, and a third value (the chain's initial input), applies the first function, and then binds this value to the next function.
f >=> g = \x -> f x >>= g
The backward arrow <=<
flips the first two arguments.