sig type 'a monad val ( >>= ) : 'a Monad.Infix.monad -> ('a -> 'b Monad.Infix.monad) -> 'b Monad.Infix.monad val ( >>| ) : 'a Monad.Infix.monad -> ('a -> 'b) -> 'b Monad.Infix.monad end