4%|      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{SafeO(n+m)O(1)O(1)O(log n)O(log n) O(n+m+t1+t2)  O(n+m+t1+t2) O(1) O(1) O(log n)O(log n)O(n+m)O(n+m)O(n+m)/O(n+t)O(n)O(n) - Guaranteed to be disjointO(n)    Safe7|}~None-C!Pronounced "Unordered Unique Set"O(1)O(n)O(n)O(n)O(n) O(n*m)! O(n*(m^2))"O(1)#O(1)$O(n)%O(n)&O(n*m)'O(n*m)(O(n*m))O(n)*O(n) - Guaranteed to be disjoint+O(n),O(?) !"#$%&'()*+,- !"#$%&'()*+,- !"#$%&'()*+, !"#$%&'()*+,-None-C.Unordered sets with duplicate elements. The semantics for "unordering" is based on the idea that we will not know what order the elements are in at any point, and we are free to re-order elements in any way.IMost binary functions are algorithmically heavier on the right arguments.Pronounced "Unordered Many Set"2O(1)3O(n)4O(n)5O(n)6O(n)7O(n*m)8 O(n*(m^3))9O(1):O(1);O(1)<O(n)=O(n)>O(n*m)? O(n*(m^4)) - Combines all elements of both@O(n)AO(n)BO(n)CO(?)./0123456789:;<=>?@ABCD./0123456789:;<=>?@ABC./0D123456789:;<=>?@ABC./0123456789:;<=>?@ABCDNone-CE%Ordered sets with duplicate elements.IO(1)JO(n)KO(n)LO(n)MO(n)NO(n*m)O O(n*(m^3))PO(1)QO(1)RO(n)SO(n)TO(n+m)UO(n*m)V O(min(n,m)) - Combines all elements of bothWO(n)XO(n)YO(n)ZO(?)EFGHIJKLMNOPQRSTUVWXYZ[EFGHIJKLMNOPQRSTUVWXYZEFG[HIJKLMNOPQRSTUVWXYZEFGHIJKLMNOPQRSTUVWXYZ[None*3457C\]^_`abcdefghijklmnopqrstuvwxyz{      \]^_`abcdefghijklmnopqrstuvwxyz{ turspqnolmjkhifgdebc`a^_\]yz{vwxz\]^_`abcdefghijklmnopqrstuvwxyz{                !""#      $%%&      '()* +,-./01234567889::;<=><=?<=@<=A<=B<=C<=D<=E<=F<=G<=H<=I<=J<=K<=L<=M<=N<=O<=P<=Q<=R<=S<=T<=U<=V<=W<=X<=<=<=<=<=<=<=Y<=Z<=[<=\<=]<=<=<=<=<=<=<=^<=_<=`<=a<= <= <= <= <= <=bcdYefghijklmnopqrstuvwxyz{|}~sets_JWEY38j2FywAQsTJn02vDvData.Set.Ordered.Unique.FiniteData.Set.Ordered.UniqueData.Set.Unordered.UniqueData.Set.Unordered.ManyData.Set.Ordered.ManyData.Set.Class FiniteSet unFiniteSet\\nullsizemember notMember isSubsetOfisProperSubsetOfemptytotal singletoninsertdeleteunion difference intersection complementfilter partitionmapOUSetUUSetunUUSetlookupmapMaybe$fMergeableUUSetUMSetunUMSet$fMergeableUMSetOMSetunOMSet$fMergeableOMSetCanBeProperSubset CanBeSubsetHasSize HasTotalWith totalWithHasTotal HasEmptyWith emptyWithHasEmptyHasSingletonWith singletonWith HasSingleton HasComplementHasIntersection HasDifferenceHasUnion IntersectionunIntersectionUnionunUnionconta_LKCPrTJwOTOLk4OU37YmeN Data.Set.Basevalid showTreeWithshowTree splitRootmaxViewminView deleteFindMax deleteFindMindeleteAtelemAt lookupIndex findIndex splitMembersplitfromDistinctAscList fromAscListfromList toDescList toAscListtoListelemsfoldl'foldlfoldr'foldrfold mapMonotonicunions deleteMax deleteMinfindMaxfindMinlookupGElookupLElookupGTlookupLTSet HasXUnionxunion intersections$fCanBeProperSubsetFiniteSet$fCanBeSubsetFiniteSet$fHasSizeFiniteSet $fHasTotalWithFiniteSetFiniteSet$fHasEmptyWithFiniteSetSet$fHasSingletonWithFiniteSetSeta$fHasComplementFiniteSet$fHasIntersectionFiniteSet$fHasDifferenceFiniteSet$fHasUnionFiniteSet$fCanBeProperSubsetUUSet$fCanBeSubsetUUSet$fHasSizeUUSet$fHasEmptyUUSet$fHasSingletonUUSeta$fHasIntersectionUUSet$fHasDifferenceUUSet$fHasUnionUUSet$fCanBeProperSubsetUMSet$fCanBeSubsetUMSet$fHasSizeUMSet$fHasEmptyUMSet$fHasSingletonUMSeta$fHasIntersectionUMSet$fHasDifferenceUMSet$fHasUnionUMSet$fCanBeProperSubsetOMSet$fCanBeSubsetOMSet$fHasSizeOMSet$fHasEmptyOMSet$fHasSingletonOMSeta$fHasIntersectionOMSet$fHasDifferenceOMSet$fHasUnionOMSet$fHasTotalPredicate$fHasEmptyPredicate$fHasSingletonPredicatea$fHasComplementPredicate$fHasIntersectionPredicate$fHasDifferencePredicate$fHasUnionPredicate$fCanBeProperSubsetSetWith$fCanBeSubsetSetWith$fHasSizeSetWith$fHasEmptyWithSetWith(->)$fHasSingletonWithSetWith(->)a$fHasIntersectionSetWith$fHasDifferenceSetWith$fHasUnionSetWith$fHasSizeHashMap$fHasEmptyHashMap$fHasSingletonWithHashMapka$fHasIntersectionHashMap$fHasDifferenceHashMap$fHasUnionHashMap$fHasSizeHashSet$fHasEmptyHashSet$fHasSingletonHashSeta$fHasIntersectionHashSet$fHasDifferenceHashSet$fHasUnionHashSet$fCanBeProperSubsetIntMap$fCanBeSubsetIntMap$fHasSizeIntMap$fHasEmptyIntMap$fHasSingletonWithIntMapInta$fHasIntersectionIntMap$fHasDifferenceIntMap$fHasUnionIntMap$fCanBeProperSubsetIntSet$fCanBeSubsetIntSet$fHasSizeIntSet$fHasEmptyIntSet$fHasSingletonIntSetInt$fHasIntersectionIntSet$fHasDifferenceIntSet$fHasUnionIntSet $fHasSizeSeq $fHasEmptySeq$fHasSingletonSeqa $fHasSize[] $fHasEmpty[]$fHasSingleton[]a$fCanBeProperSubsetMap$fCanBeSubsetMap $fHasSizeMap $fHasEmptyMap$fHasSingletonWithMapka$fHasIntersectionMap$fHasDifferenceMap $fHasUnionMap$fCanBeProperSubsetSet$fCanBeSubsetSet $fHasSizeSet $fHasEmptySet$fHasSingletonSeta$fHasIntersectionSet$fHasDifferenceSet $fHasUnionSet$fCommutativeIdIntersection$fCommutativeIdUnion $fHasXUnions$fCommutativeIntersection$fCommutativeUnion