5T&|      !"#$%&'()*+,-./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*C_These types are used for Monoid and  Commutative instances for sets.\]^_`a\]^_`a_`a\]^\]^_`aNone*3457Cbcdefghijklmnopqrstuvwxyz{      \]^_`abcdefghijklmnopqrstuvwxyz{z{xyvwturspqnolmjkhifgdebcvbcdefghijklmnopqrstuvwxyz{               !"##$     !%&&'     !())*++,-./ 0123456789:;<=>?=>@=>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=>b=>=> => => => =>cZdefghijklmnopqrstuvwxyz{|}~sets_IfkzLXUpCBWD0rEZM9w5XtData.Set.Ordered.Unique.FiniteData.Set.Ordered.UniqueData.Set.Unordered.UniqueData.Set.Unordered.ManyData.Set.Ordered.ManyData.Set.Class.TypesData.Set.Class FiniteSet unFiniteSet\\nullsizemember notMember isSubsetOfisProperSubsetOfemptytotal singletoninsertdeleteunion difference intersection complementfilter partitionmapOUSetUUSetunUUSetlookupmapMaybe$fMergeableUUSetUMSetunUMSet$fMergeableUMSetOMSetunOMSet$fMergeableOMSet IntersectionfromIntersectionUnion fromUnionCanBeProperSubset CanBeSubsetHasSize HasTotalWith totalWithHasTotal HasEmptyWith emptyWithHasEmptyHasSingletonWith singletonWith HasSingleton HasComplementHasIntersection HasDifferenceHasUnionconta_LKCPrTJwOTOLk4OU37YmeN Data.Set.Basevalid showTreeWithshowTree splitRootmaxViewminView deleteFindMax deleteFindMindeleteAtelemAt lookupIndex findIndex splitMembersplitfromDistinctAscList fromAscListfromList toDescList toAscListtoListelemsfoldl'foldlfoldr'foldrfold mapMonotonicunions deleteMax deleteMinfindMaxfindMinlookupGElookupLElookupGTlookupLTSet 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$fCommutativeIntersection$fCommutativeUnion