Map.With_first_class_module
type ('key, 'cmp, 'z) t = (module Comparator.S with type comparator_witness = 'cmp and type t = 'key) -> 'z