`sig
type ('base, 'set) t = private
Base of 'base
| Set of 'set
| Union of ('base, 'set) Set_lang.Raw.t * ('base, 'set) Set_lang.Raw.t
| Inter of ('base, 'set) Set_lang.Raw.t * ('base, 'set) Set_lang.Raw.t
| Diff of ('base, 'set) Set_lang.Raw.t * ('base, 'set) Set_lang.Raw.t
val compare :
('base -> 'base -> int) ->
('set -> 'set -> int) ->
('base, 'set) Set_lang.Raw.t -> ('base, 'set) Set_lang.Raw.t -> int
end`