Module type Monad.Infix


module type Infix = sig .. end

type 'a monad 
val (>>=) : 'a monad -> ('a -> 'b monad) -> 'b monad
t >>= f returns a computation that sequences the computations represented by two monad elements. The resulting computation first does t to yield a value v, and then runs the computation returned by f v.
val (>>|) : 'a monad -> ('a -> 'b) -> 'b monad
t >>| f is t >>= (fun a -> return (f a)).