sig   type 'a t = 'a option   val some : '-> 'a option   val may : ('-> unit) -> 'a option -> unit   val map : ('-> 'b) -> 'a option -> 'b option   val bind : 'a option -> ('-> 'b option) -> 'b option   val apply : ('-> 'a) option -> '-> 'a   val filter : ('-> bool) -> 'a option -> 'a option   val default : '-> 'a option -> 'a   val ( |? ) : 'a option -> '-> 'a   val default_delayed : (unit -> 'a) -> 'a option -> 'a   val map_default : ('-> 'b) -> '-> 'a option -> 'b   val map_default_delayed : ('-> 'b) -> (unit -> 'b) -> 'a option -> 'b   val is_none : 'a option -> bool   val is_some : 'a option -> bool   val get : 'a option -> 'a   val get_exn : 'a option -> exn -> 'a   val compare : ?cmp:('-> '-> int) -> 'a option -> 'a option -> int   val eq : ?eq:('-> '-> bool) -> 'a option -> 'a option -> bool   val enum : 'a option -> 'BatEnum.t   val of_enum : 'BatEnum.t -> 'a option   module Monad :     sig       type 'a m = 'a option       val return : '-> 'BatOption.Monad.m       val bind :         'BatOption.Monad.m ->         ('-> 'BatOption.Monad.m) -> 'BatOption.Monad.m     end   val ord : 'BatOrd.ord -> 'a option BatOrd.ord   val print :     ('BatInnerIO.output -> '-> unit) ->     'BatInnerIO.output -> 'BatOption.t -> unit   module Labels :     sig       val may : f:('-> unit) -> 'a option -> unit       val map : f:('-> 'b) -> 'a option -> 'b option       val map_default : f:('-> 'b) -> '-> 'a option -> 'b     end   module Infix :     sig       val ( |? ) : 'a option -> '-> 'a       val ( >>= ) : 'a option -> ('-> 'b option) -> 'b option     end end