Module Set.NamedSource
Named allows the validation of subset and equality relationships between sets. A Named.t is a record of a set and a name, where the name is used in error messages, and Named.is_subset and Named.equal validate subset and equality relationships respectively.
The error message for, e.g.,
Named.is_subset { set = set1; name = "set1" } ~of_:{set = set2; name = "set2" }looks like
("set1 is not a subset of set2" (invalid_elements (...elements of set1 - set2...)))so name should be a noun phrase that doesn't sound awkward in the above error message. Even though it adds verbosity, choosing names that start with the phrase "the set of" often makes the error message sound more natural.
type ('a, 'cmp) set := ('a, 'cmp) Base.Set.tSource
val is_subset :
('a, 'cmp) Base.Set.Named.set Base.Set.Named.t ->
of_:('a, 'cmp) Base.Set.Named.set Base.Set.Named.t ->
unit Base.Or_error.tis_subset t1 ~of_:t2 returns Ok () if t1 is a subset of t2 and a human-readable error otherwise.
Source
val equal :
('a, 'cmp) Base.Set.Named.set Base.Set.Named.t ->
('a, 'cmp) Base.Set.Named.set Base.Set.Named.t ->
unit Base.Or_error.tequal t1 t2 returns Ok () if t1 is equal to t2 and a human-readable error otherwise.