module type Infix =sig..end
type 'a t
val (>>=) : 'a t -> ('a -> 'b t) -> 'b tt >>= 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 t -> ('a -> 'b) -> 'b tt >>| f is t >>= (fun a -> return (f a)).