Module Set.Named
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 name
s that start with the phrase "the set of" often makes the error message sound more natural.