8Li      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                               ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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 c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh0non-portable (MPTCs and functional dependencies)internal (non-stable)robdockins AT fastmail DOT fm O(1). The empty sequence. O(1). A singleton sequence. O(n)4. Create a sequence from a finite list of elements. O(1)0. Add an element to the left end of a sequence. O(1)1. Add an element to the right end of a sequence. O(1). Is this the empty sequence? O(1)&. Analyse the left end of a sequence. O(1)'. Analyse the right end of a sequence. O(log(min(n1,n2))). Concatenate two sequences. O(log(min(i,n-i)))2. Split a sequence at a point where the predicate ) on the accumulated measure changes from i to j. O(n). The reverse of a sequence. Finger trees with element type a", annotated with measures of type v. ' The operations enforce the constraint k v a.    GHC, Hugs (MPTC and FD)internal (unstable)robdockins AT fastmail DOT fm[ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst[ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstGHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmLuvwxyz{|}~Lvwxy{|~}zuGHC / Hugs (MPTC and FD)internal (unstable)robdockins AT fastmail DOT fm--GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fm9      !"#$%&9&"# $    ! %GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fm9'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_9_)*V+W,X-.Y/012T(3Z45[6789:;U<=>\]?@ABCDEFGHIJKLMNOPQR^S'GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fm9`abcdefghijklmnopqrstuvwxyz{|}~9bcdefghijkalmnopqrstuvwxyz{|}~`GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fm99 GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmF     F      GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmO(1). Is this the empty set? O(1)%. The number of elements in the set. O(1). Is the element in the set? !O(1). The empty set. "O(1). Create a singleton set. #O(1). Insert an element in a set. B If the set already contains an element equal to the given value, $ it is replaced with the new value. %O(1) . Delete an element from a set. (O(1)9. Is this a proper subset? (ie. a subset but not equal). )O(1). Is this a subset?  (s1 )  s2) tells whether s1 is a subset of s2. *O(1) . The minimal element of a set. +O(1) . The maximal element of a set. ,O(1). Delete the minimal element. -O(1). Delete the maximal element. ;The union of a list of sets: (unions == U  <  ! ). <O(1). The union of two sets. AO(1). Difference of two sets. CO(1) . The intersection of two sets. EO(1)1. The complement of a set with its universe set.  complement can be used 1 with bounded types for which the universe set " will be automatically created. FO(n)2. Filter all elements that satisfy the predicate. GO(n)F. Partition the set into two sets, one with all elements that satisfy 1 the predicate and one with all elements that don't satisfy the predicate.  See also split. HO(n).  H  f s! is the set obtained by applying f to each element of s. It'>s worth noting that the size of the result may be smaller if,  for some (x,y), x /= y && f x == f y JO(1)> Changes the type of the elements in the set without changing & the representation. Equivalant to map (toEnum . fromEnum), and  to (fromBits . toBits)). This method is operationally a no-op. KO(1)0 Get the underlying bit-encoded representation. ) This method is operationally a no-op. LO(1)6 Create an EnumSet from a bit-encoded representation. ) This method is operationally a no-op. bA set of values a, implemented as bitwise operations. Useful E for members of class Enum with no more elements than there are bits  in Word. K !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abKb!"Y#[<;%&'`,-0132456789:CAB()] MNOPFGa.*/+QRUVSTWX^I_Z$\=>?@DHJEKL GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmFcdefghijklmnopqrstuvwxyz{|}~Fefhijkdlmnopqrstuvwxyz{|}~gc GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fm;; GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmL      !"#$%&'()*+,-./L/      !"#$%&'()*+,-.GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmL0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{L{12345679;<>8:=?@A[B\CDE]^_`abcdefghijklmnoFGHIJKLMpqrsNOtuvwxyzPQRSTUVWXYZ0GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmJ|}~J~}|GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmJ     J     GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmL !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[L[;<=> ?@!A"#$%&'()*+,-BCDEFGH./0123IJKLMN4ORPQSTUVWXY56789:ZGHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmL\]^_`abcdefghijklmnopqrstuvwxyz{|}~L]^_abdfceghijklmnopqrstu`vwxyz{|}~\GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmOOGHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmL      !"#$%&'()*+,-./0123456789:;<=>?@ABLB      !"#$%&'()*+,-.0/123456789:;<=>?@AGHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmOCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~OGHIJKLMOQRTNPSUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy{z|}~CDEFGHC, Hugs (MPTC and FD)internal (unstable)robdockins AT fastmail DOT fm77GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmh      !"#$%&'()*+,-./0h0     !" #$%&'()*+,-./GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmf123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~f3456789:;<=>?@abABCDEFGHIJ2Z[\]^KLMNOPQRSTUVWXY_`cgijeklnopqrstuv{|}~dhfmwxyz1GHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmhhGHC, Hugs (MPTC and FD)stablerobdockins AT fastmail DOT fmj      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjh     12*+./0gGHIJKLM3456789:;<=>?@BACDEFNOPQSUVWY[\ &(,%')-]^_`abcdeRTXZ!#"$fl !"#$%&'()*+,-./01234566789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~()+0.- #$%&,/5*"_a()-      %&()-      %&()-      %&()-      %&  ( )    - %   &                           ! " #  $ -  ( )                      ! "    # %  & ' (  )      % & $  ( )  -                 % &                ! " # $  * + ( )    -                    % & ,  ( ) + , 0 . / - 5 * " % & # $ ()+,0./- 5*"%&#$-()+,0*"5 %&./#$()+,0./- 5"%&*#$()+./- %&,05*"#$()+.- #$%&,0/5*"- ()+,0./- 5*"#$%&.()+,0./- 5*"%&#$- ()+,0./- 5*"#$%&/01234a56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\()-  ]^_`abcde fghijk    lmnopqrs%&tu!"v#wxyz{|}~()- ]^_bc !#wxyz{|ghijk}%& l n mopqrs `vtua" f~()-  ]^_abcde%&`   vtu !"#wxyz{| fghijklmnopqrs}~()-  ]^_abcdeprqs`%&vtu !"#xwyz{| fghijk}~ l m noEdisonCore-1.2.1.2Data.Edison.Concrete.FingerTreeData.Edison.Seq.DefaultsData.Edison.Seq.BinaryRandListData.Edison.Coll.Defaults Data.Edison.Coll.LazyPairingHeapData.Edison.Coll.LeftistHeapData.Edison.Coll.SkewHeapData.Edison.Coll.SplayHeapData.Edison.Coll.StandardSetData.Edison.Coll.EnumSetData.Edison.Coll.UnbalancedSetData.Edison.Coll.MinHeapData.Edison.Seq.BankersQueueData.Edison.Seq.BraunSeqData.Edison.Seq.FingerSeqData.Edison.Seq.JoinListData.Edison.Seq.MyersStackData.Edison.Seq.RandListData.Edison.Seq.RevSeqData.Edison.Seq.SimpleQueueData.Edison.Seq.SizedSeqData.Edison.Assoc.DefaultsData.Edison.Assoc.AssocListData.Edison.Assoc.PatriciaLoMapData.Edison.Assoc.StandardMapData.Edison.Assoc.TernaryTriebase Data.BoolEdisonAPI-1.2.1Data.Edison.PreludestructuralInvariantsizefoldFTtoListreduce1reduce1'strict strictWithmapTreeempty singletonfromListlconsrconsnulllviewrviewappendsplit takeUntil dropUntil splitTreereverseSplit FingerTreerconsUsingAppendrconsUsingFoldrappendUsingFoldr rviewDefaultrtailUsingLviewrtailMUsingLviewconcatUsingFoldrreverseUsingReverseOntoreverseUsingListsreverseOntoUsingFoldlreverseOntoUsingReversefromListUsingConstoListUsingFoldr mapUsingFoldrconcatMapUsingFoldrfoldrUsingListsfoldr'UsingListsfoldlUsingListsfoldl'UsingListsfoldr1UsingListsfoldr1'UsingListsfoldl1UsingListsfoldl1'UsingListsfold1UsingFoldfold1'UsingFold'foldr1UsingLviewfoldr1'UsingLviewfoldl1UsingFoldlfoldl1'UsingFoldl'reducerUsingReduce1reducer'UsingReduce1'reducelUsingReduce1reducel'UsingReduce1'reduce1UsingListsreduce1'UsingListscopyUsingListsinBoundsUsingDropinBoundsUsingLookupMinBoundsUsingSizelookupUsingLookupMlookupUsingDroplookupWithDefaultUsingLookupMlookupWithDefaultUsingDroplookupMUsingDropfilterUsingLviewfilterUsingListsfilterUsingFoldrpartitionUsingListspartitionUsingFoldrupdateUsingAdjustupdateUsingSplitAtadjustUsingListsadjustUsingSplitAtmapWithIndexUsingListsfoldrWithIndexUsingListsfoldrWithIndex'UsingListsfoldlWithIndexUsingListsfoldlWithIndex'UsingListstakeUsingListstakeUsingLviewdropUsingListsdropUsingLtailsplitAtDefaultsplitAtUsingLview subseqDefaulttakeWhileUsingLviewdropWhileUsingLviewsplitWhileUsingLview zipUsingLviewzip3UsingLviewzipWithUsingLviewzipWith3UsingLview zipUsingListszip3UsingListszipWithUsingListszipWith3UsingListsunzipUsingListsunzipUsingFoldrunzip3UsingListsunzip3UsingFoldrunzipWithUsingListsunzipWithUsingFoldrunzipWith3UsingListsunzipWith3UsingFoldrshowsPrecUsingToListreadsPrecUsingFromListdefaultCompare dropMatch tokenMatch readSParens maybeParens moduleNamecopylheadlheadMltailltailMrheadrheadMmapfoldfold'fold1fold1'foldrfoldr'foldlfoldl'inBoundslookuplookupMlookupWithDefaultadjusttakedroprtailrtailMconcat reverseOnto concatMapfoldr1foldr1'foldl1foldl1'reducerreducelreducer'reducel'update mapWithIndexfoldrWithIndexfoldlWithIndexfoldrWithIndex'foldlWithIndex'splitAtfilter partitionsubseq takeWhile dropWhile splitWhilezipzip3zipWithzipWith3unzipunzip3 unzipWith unzipWith3SeqinsertSeqUsingUnioninsertSeqUsingFoldrmemberUsingFoldcountUsingMemberlookupAllUsingLookupMdeleteSeqUsingDeleteunionSeqUsingFoldlunionSeqUsingFoldl'unionSeqUsingReducefromSeqUsingFoldrfromSeqUsingUnionSeqtoSeqUsingFold unsafeInsertMaxUsingUnsafeAppendtoOrdSeqUsingFoldr$unsafeFromOrdSeqUsingUnsafeInsertMindisjointUsingToOrdListintersectWitnessUsingToOrdListlookupUsingLookupAlllookupMUsingLookupAlllookupWithDefaultUsingLookupAlldeleteMaxUsingMaxViewfromSeqWithUsingInsertWithinsertUsingInsertWithunionUsingUnionWithfilterUsingOrdListspartitionUsingOrdLists!intersectionUsingIntersectionWithdifferenceUsingOrdLists"symmetricDifferenceUsingDifferenceproperSubsetUsingOrdListssubsetUsingOrdListsproperSubsetOnOrdListssubsetOnOrdListsinsertSeqWithUsingInsertWithunionlUsingUnionWithunionrUsingUnionWithunionWithUsingOrdListsunionSeqWithUsingReducerintersectionWithUsingOrdListsunsafeMapMonotonicUsingFoldrcompareUsingToOrdListinsertuniondelete deleteAll deleteSeqmembercount deleteMinunsafeInsertMinunsafeInsertMax unsafeAppendfilterLTfilterLEfilterGTfilterGEpartitionLT_GEpartitionLE_GTpartitionLT_GTtoSeq lookupAllminViewminElemmaxViewmaxElemunsafeMapMonotonicfromSeq insertSequnionSequnsafeFromOrdSeq deleteMaxtoOrdSeqHeap intersection differencesymmetricDifference properSubsetsubset fromSeqWith insertWith insertSeqWithunionlunionr unionWith unionSeqWithintersectionWithSet complement setCoercetoBitsfromBits fromOrdSeqfromColltoCollMin instanceNameRevSizedsingletonUsingInsertfromSeqUsingInsertSeqdeleteSeqUsingFoldrmemberUsingLookupMsizeUsingElementspartitionUsingFilterfold1UsingElementselementsUsingFoldnullUsingElementsinsertWithUsingLookupMfromSeqWithUsingInsertSeqWith#fromSeqWithKeyUsingInsertSeqWithKeyinsertWithKeyUsingInsertWith"insertSeqWithKeyUsingInsertWithKeyunionSeqWithUsingReduceunionSeqWithUsingFoldrtoSeqUsingFoldWithKeykeysUsingFoldWithKeyunionWithUsingInsertWithunionWithKeyUsingInsertWithKeyunionSeqWithKeyUsingReduceunionSeqWithKeyUsingFoldrintersectionWithUsingLookupMintersectionWithKeyUsingLookupMdifferenceUsingDeleteproperSubsetUsingSubsetsubsetUsingMembersubmapByUsingLookupMproperSubmapByUsingSubmapBysameMapByUsingOrdListssameMapByUsingSubmapBylookupAndDeleteDefaultlookupAndDeleteMDefaultlookupAndDeleteAllDefaultadjustOrInsertUsingMemberadjustOrDeleteDefaultadjustOrDeleteAllDefaultminElemUsingMinViewdeleteMinUsingMinView!minElemWithKeyUsingMinViewWithKeymaxElemUsingMaxView!maxElemWithKeyUsingMaxViewWithKeytoOrdSeqUsingFoldrWithKeyshowsPrecUsingToOrdListreadsPrecUsingUnsafeFromOrdSeqlookupAndDeletelookupAndDeleteMlookupAndDeleteAllelements adjustAlladjustOrInsertadjustAllOrInsertadjustOrDeleteadjustOrDeleteAllkeys mapWithKey foldWithKey foldWithKey' filterWithKeypartitionWithKeyminViewWithKeyminElemWithKeymaxViewWithKeymaxElemWithKey foldrWithKey foldrWithKey' foldlWithKey foldlWithKey' insertWithKeyinsertSeqWithKeyfromSeqWithKeyproperSubmapBysubmapBy sameMapBy properSubmapsubmapsameMap unionWithKeyunionSeqWithKeyintersectionWithKeyFMmergeVFM mergeKVFMGHC.BaseFalseTrueMeasured