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