2,%o      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnSafe%&*+,9:;<=DQRT 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 o2Useful 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 <pqrst ouv !"#$%&'()*+,-./0123   0pqrst   ouv !"#$%&'()*+,-./0123Safe%&*+,9:;<=DQRT4Construct a submap s from a supermap t 6CSplitting a union of maps, given the maps we want to split it into w=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 ?Updatability as a type class @Update a map with m at variable v with a value of type t to produce a map of type n A)Membership test a type class (predicate) BDValue-level lookup of elements from a map, via type class predicate CZA value-level heterogenously-typed Map (with type-level representation in terms of lists) F4Pair a symbol (representing a variable) with a type H!Membership test as type function I)Type-level lookup of elements from a map J"Delete elements from a map by key KHOpen type family for combining values in a map (that have the same key) xApply K6 to values with matching key (removes duplicate keys) LUnion of two finite maps MA key-value pair O<At the value level, noramlise the list form to the map form P'Union of two finite maps (normalising) y,Append of two finite maps (non normalising) E4567z{89:;|}w~<=>?@ABCDEFGHIJKxLMNOPyQRSTUVWXYZ[\]^_`abcdefghijklmn456789:;<=>?@ABCDEFGHIJKLMNOP#MNL<PFGCDEK:;899IHJ677ABB?@@>=O45574567z{89:;|}w~<=>?@ABCDEFGHIJKxLMNOPyQRSTUVWXYZ[\]^_`abcdefghijklmnN4      !"#$%&'()*+,-./0123456789:;<=>?@AABCDEFGHIJK-./0 )*+,LMN$%OPQRSTUVWXYZ[\]^_`ab\]^_abc-type-level-sets-0.8.5.0-InRbsDRuou7Qa2pyyrfnz Data.Type.Set Data.Type.MapCmpSortable quicksortDeleteFilterFlagFMinFMaxSortSubsetsubsetNubablenubNubSplitsplit:++ UnionableUnionIsSetAsSetSetEmptyExtProxyasSetunionappend $fConderFalse $fConderTrue$fFilterVFMaxp:$fFilterVFMinp: $fFilterVfp[] $fSortable: $fSortable[] $fSubset:: $fSubsets: $fSubset[][] $fNubable: $fNubable:0 $fNubable:1 $fNubable[] $fSplits:: $fSplit:t: $fSplit::: $fSplit[][][]$fEqSet $fShow'Set $fShow'Set0 $fShowSet $fShowSet0Submapsubmap CombinablecombineAsMapIsMap UpdatableupdateIsMemberlookpMapVarMemberLookup:\CombineMapping:->asMap $fSubmap:: $fSubmaps: $fSubmap[][]$fFilterVFMaxkv:$fFilterVFMinkv:$fFilterVfkv[]$fEqMap$fEqMap0 $fShow'Map $fShow'Map0 $fShowMap $fShowMap0$fUpdatablevt[]:$fUpdatablevt::$fUpdatablevt::0 $fIsMembervt:$fIsMembervt:0 $fShowVar SetPropertiesCondercondFilterVfilterVDeleteFromListShow'show'