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