functor (O : Map.OrderedType) -> sig type 'a f = 'a Map.Make(O).t val map : ('a -> 'b) -> 'a f -> 'b f end