Monad

0.40.0

Definitions

def <=< [bef1mcaef2] ( f1 : b -> m[c] \ ef1 f2 : a -> m[b] \ ef2 ) : a -> m[c] \ ef1 + ef2 \ Pure with Monad[m]

Source

<=< is an operator alias for kleisliRight.

def =<< [aefmb] ( k : a -> m[b] \ ef x : m[a] ) : m[b] \ ef with Monad[m]

Source

=<< is an operator alias for flatMap.

def >=> [aef1mbef2c] ( f1 : a -> m[b] \ ef1 f2 : b -> m[c] \ ef2 ) : a -> m[c] \ ef1 + ef2 \ Pure with Monad[m]

Source

>=> is an operator alias for kleisliLeft.

def >>= [maefb] ( x : m[a] k : a -> m[b] \ ef ) : m[b] \ ef with Monad[m]

Source

>>= is the operator =<< with its arguments flipped.

>>= is the monadic bind operator.

def flatten [ma] ( x : m[m[a]] ) : m[a] \ Pure with Monad[m]

Source

The monadic join operator. Flatten x - a monadic action nested in an outer monadic layer - to a single layer.

E.g. for the Option monad: flatten(Some(Some(1))) becomes Some(1).

def kleisliLeft [aef1mbef2c] ( f1 : a -> m[b] \ ef1 f2 : b -> m[c] \ ef2 x : a ) : m[c] \ ef1 + ef2 with Monad[m]

Source

The left-to-right Kleisli composition operator for monads.

Map x with the monadic function f1 and then map its result with the function f2.

def kleisliRight [bef1mcaef2] ( f1 : b -> m[c] \ ef1 f2 : a -> m[b] \ ef2 x : a ) : m[c] \ ef1 + ef2 with Monad[m]

Source

The right-to-left Kleisli composition operator for monads.

Map x with the monadic function f2 and then map its result with the function f1.