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