sig   module type Mappable =     sig       type 'a mappable       val map :         ('a -> 'b) ->         'a BatInterfaces.Mappable.mappable ->         'b BatInterfaces.Mappable.mappable     end   module type OrderedType =     sig       type t       val compare :         BatInterfaces.OrderedType.t -> BatInterfaces.OrderedType.t -> int     end   module type Monad =     sig       type 'a m       val bind :         'a BatInterfaces.Monad.m ->         ('a -> 'b BatInterfaces.Monad.m) -> 'b BatInterfaces.Monad.m       val return : 'a -> 'a BatInterfaces.Monad.m     end end