c     None!"&'(2346=JKM4Pair a symbol (represetning a variable) with a type 3Open-family for the ordering operation in the sort =Value-level quick sort that respects the type-level ordering AType-level quick sort for normalising the representation of sets Construct a subsetset s from a superset t *Value-level counterpart to the type-level  Note: the value-level case for equal types is not define here, but should be given per-application, e.g., custom merging behaviour may be required %Remove duplicates from a sorted list ASplitting a union a set, given the sets we want to split it into Useful alias for append -List append (essentially set disjoint union) Union of sets 2Useful properties to be able to refer to someties &Predicate to check if in the set form ;At the type level, normalise the list form to the set form 'Core Set definition, in terms of lists <At the value level, noramlise the list form to the set form Symbol comparison E !"# $%&' ()*+,-./0123456789:;<=>?@ABCD     5 !"# $%'&  ()*+,-./0123456789:;<=>?@ABCDE      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEtype-level-sets-0.5 Data.Type.SetVarZYX:->CmpSortable quicksortSortSubsetsubsetNubablenubNubSplitsplitAppend UnionableUnionIsSetAsSetSetExtEmptyasSetunionappend:++ SetPropertiesTFCo:R:Cmp*:->:->CondercondFilterVfilterVFilterFlagFMaxFMinShow'show' $fShowVar $fShowVar0 $fShowVar1 $fShowVar2 $fShow:-> $fConderFalse $fConderTrue$fFilterVFMaxp:$fFilterVFMinp: $fFilterVfp[] $fSortable: $fSortable[] $fSubset:: $fSubset[]: $fSubset[][] $fNubable: $fNubable:0 $fNubable:1 $fNubable[] $fSplits:: $fSplit:t: $fSplit::: $fSplit[][][] $fShow'Set $fShow'Set0 $fShowSet $fShowSet0