# Module type Core_set_intf.Creators2_with_comparator

    module type Creators2_with_comparator = sig .. end

    type ('a, 'cmp) set

    type ('a, 'cmp) t

    type ('a, 'cmp) tree

    val empty : comparator:('a, 'cmp) Comparator.t ->
           ('a, 'cmp) t

    val singleton : comparator:('a, 'cmp) Comparator.t ->
           'a -> ('a, 'cmp) t

    val union_list : comparator:('a, 'cmp) Comparator.t ->
           ('a, 'cmp) t list ->
           ('a, 'cmp) t

    val of_list : comparator:('a, 'cmp) Comparator.t ->
           'a list -> ('a, 'cmp) t

    val of_array : comparator:('a, 'cmp) Comparator.t ->
           'a array -> ('a, 'cmp) t

    val of_sorted_array : comparator:('a, 'cmp) Comparator.t ->
           'a array -> ('a, 'cmp) t Or_error.t

    val of_sorted_array_unchecked : comparator:('a, 'cmp) Comparator.t ->
           'a array -> ('a, 'cmp) t

    val stable_dedup_list : comparator:('a, 'cmp) Comparator.t -> 'a list -> 'a list

    val map : comparator:('b, 'cmp) Comparator.t ->
           ('a, 'c) set ->
           f:('a -> 'b) -> ('b, 'cmp) t

    val filter_map : comparator:('b, 'cmp) Comparator.t ->
           ('a, 'c) set ->
           f:('a -> 'b option) -> ('b, 'cmp) t

    val of_tree : comparator:('a, 'cmp) Comparator.t ->
           ('a, 'cmp) tree ->
           ('a, 'cmp) t

    val of_map_keys : ('a, 'b, 'cmp) Map.t -> ('a, 'cmp) t