sig type 'a m = 'a option val return : 'a -> 'a BatOption.Monad.m val bind : 'a BatOption.Monad.m -> ('a -> 'b BatOption.Monad.m) -> 'b BatOption.Monad.m end