package base

  1. Overview
  2. Docs
Module type
Class type
type ('a, 'cmp) t
type ('a, 'cmp) set
type ('a, 'cmp) tree
type 'a elt
type ('a, 'cmp, 'z) create_options
type 'cmp cmp
val empty : ('a, 'cmp, ('a, 'cmp) t) create_options
val singleton : ('a, 'cmp, 'a elt -> ('a, 'cmp) t) create_options
val union_list : ('a, 'cmp, ('a, 'cmp) t list -> ('a, 'cmp) t) create_options
val of_list : ('a, 'cmp, 'a elt list -> ('a, 'cmp) t) create_options
val of_sequence : ('a, 'cmp, 'a elt Sequence.t -> ('a, 'cmp) t) create_options
val of_array : ('a, 'cmp, 'a elt array -> ('a, 'cmp) t) create_options
val of_sorted_array : ('a, 'cmp, 'a elt array -> ('a, 'cmp) t Or_error.t) create_options
val of_sorted_array_unchecked : ('a, 'cmp, 'a elt array -> ('a, 'cmp) t) create_options
val of_increasing_iterator_unchecked : ('a, 'cmp, len:int -> f:(int -> 'a elt) -> ('a, 'cmp) t) create_options
val stable_dedup_list : ('a, _, 'a elt list -> 'a elt list) create_options
  • deprecated [since 2023-04] Use [List.stable_dedup] instead.
val map : ('b, 'cmp, ('a, _) set -> f:('a -> 'b elt) -> ('b, 'cmp) t) create_options

The types of map and filter_map are subtle. The input set, ('a, _) set, reflects the fact that these functions take a set of *any* type, with any comparator, while the output set, ('b, 'cmp) t, reflects that the output set has the particular 'cmp of the creation function. The comparator can come in one of three ways, depending on which set module is used

  • -- comparator comes as an argument
  • -- comparator is polymorphic comparison
  • -- comparator is Foo.comparator
val filter_map : ('b, 'cmp, ('a, _) set -> f:('a -> 'b elt option) -> ('b, 'cmp) t) create_options
val of_tree : ('a, 'cmp, ('a, 'cmp) tree -> ('a, 'cmp) t) create_options

Innovation. Community. Security.