sig
  type 'a t = 'a option
  val some : '-> 'Util.Option.t
  val none : 'Util.Option.t
  val map : ('-> 'b) -> 'Util.Option.t -> 'Util.Option.t
  val sopt : ('-> string) -> 'Util.Option.t -> string
  val opt_min : 'Util.Option.t -> 'Util.Option.t -> 'Util.Option.t
  val maybe : ('-> 'b) -> '-> 'Util.Option.t
  val get_or_else : '-> 'Util.Option.t -> 'a
  val cat_options : 'a option list -> 'a list
end