`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`