sig val map : ('-> 'b) -> 'a option -> 'b option end