)#6      !"#$%&'()*+,-./012345None!"&'(3457>KLN 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 -List append (essentially set disjoint union) Union of sets 62Useful 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 <At the value level, noramlise the list form to the set form ;789:; 6<=>?@ABCDEFGHIJKLMNOPQRS   /789:;   6<=>?@ABCDEFGHIJKLMNOPQRSNone!"&'(3457>KLNConstruct a submap s from a supermap t CSplitting a union of maps, given the maps we want to split it into T=Value-level quick sort that respects the type-level ordering &;At the type level, normalise the list form to the map form '-Predicate to check if in normalised map form (ZA value-level heterogenously-typed Map (with type-level representation in terms of lists) +4Pair a symbol (representing a variable) with a type -Membership test .Lookup elements from a map /"Delete elements from a map by key 0HOpen type family for combining values in a map (that have the same key) UApply 06 to values with matching key (removes duplicate keys) 1Union of two finite maps 2A key-value pair 4<At the value level, noramlise the list form to the map form 5Union of two finite maps < VW!"#$XYTZ%[\&'()*+,-./0U12345]^_`abcdefghijklmnopqrstuv !"#$%&'()*+,-./012345231%5+,()*0#$!".-/ '&40 VW!"#$XYTZ%[\&'()*+,-./0U12345]^_`abcdefghijklmnopqrstuv3w      !"#$%&&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK/01245LMNDEFG67@ABCOPQ;<RSTUVWXYtypel_5USOeejNjTTFbXFy3E5h9f Data.Type.Set Data.Type.MapCmpSortable quicksortDeleteFilterFlagFMinFMaxSortSubsetsubsetNubablenubNubSplitsplit:++ UnionableUnionIsSetAsSetSetEmptyExtProxyasSetunionappendSubmapsubmap CombinablecombineAsMapIsMapMapVarMemberLookup:\CombineMapping:->asMap SetPropertiesCondercondFilterVfilterVDeleteFromListShow'show' $fConderFalse $fConderTrue$fFilterVFMaxp:$fFilterVFMinp: $fFilterVfp[] $fSortable: $fSortable[] $fSubset:: $fSubsets: $fSubset[][] $fNubable: $fNubable:0 $fNubable:1 $fNubable[] $fSplits:: $fSplit:t: $fSplit::: $fSplit[][][] $fShow'Set $fShow'Set0 $fShowSet $fShowSet0 $fSubmap:: $fSubmaps: $fSubmap[][]$fFilterVFMaxkv:$fFilterVFMinkv:$fFilterVfkv[]TFCo:R:CmpMapping:->:->TFCo:R:CmpSymbolkk' $fShow'Map $fShow'Map0 $fShowMap $fShowMap0 $fShowVar