sig   module type Mappable =     sig       type 'a mappable       val map :         ('-> 'b) ->         'BatInterfaces.Mappable.mappable ->         '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 :         'BatInterfaces.Monad.m ->         ('-> 'BatInterfaces.Monad.m) -> 'BatInterfaces.Monad.m       val return : '-> 'BatInterfaces.Monad.m     end end