Tezos_raw_protocol_016_PtMumbai.Script_setSourceFunctions to ease the manipulation of sets of values in Michelson.
A set in Michelson is a collection of type-homegeneous values along with the functions that operate on the structure (through a first-class module). In particular, the size function runs in constant time.
val make :
(module Script_typed_ir.Boxed_set with type elt = 'elt) ->
'elt Script_typed_ir.setempty cmp_ty creates a set module where elements have size Gas_comparable_input_size.size_of_comparable_value cmp_ty and are compared with Script_comparable.compare_comparable cmp_ty (used for sorting values, which ensures a reasonable complexity of the set functions). The function returns an empty set packaged as a first-class set module.
update v true set adds v to set, and update v false set removes v from set.
size set runs in constant time.