sig type ('a, 'd) t val ( >>= ) : ('a, 'd) Monad.Infix2.t -> ('a -> ('b, 'd) Monad.Infix2.t) -> ('b, 'd) Monad.Infix2.t val ( >>| ) : ('a, 'd) Monad.Infix2.t -> ('a -> 'b) -> ('b, 'd) Monad.Infix2.t end