úÎ\Xy1      !"#$%&'()*+,-./0 is a 1 from some 2 key to a set of values for  that key. " carries type information inside. 3456(Convenience function for inserting into 1s of 7s as in  the case of an ,. If they key did not already exist in the  1 , then a new 7 is added transparently. 'Convenience function for deleting from 1s of 7 s If the  resulting 7. is empty, then the entry is removed from the 1. /An efficient implementation of queryable sets. 6. class defines objects that can be members of .  If you don't want calculated values use  a (). Method  defines what an empty  for this A particular type should look like. It should have all necessary  indices. Use   function to create the set. Method ( adds indexable values not found in the > type. Those end up in indices just like other types found in  objects. If you don'&t want any calculated values just use   . 8  Create an " using list of indices. Useful in    method. 9: Function to be used for  in the case of an  a ()  instance. ?Template Haskell helper function for automatically building an  ! instance from a data type, e.g.  data Foo = Foo Int Stringand   $(inferIxSet "FooDB" ''Foo ' noCalcs [''Int,''String])will build a type synonym  type FooDB = IxSet Foowith Int and String as indices. DWARNING: The type specified as the first index must be a type which  appears in all values in the  or  and  will N not function properly. You will be warned not to do this by runtime error. < You can always use the element type itself. For example:  $(inferIxSet "FooDB" ''Foo ' noCalcs [''Foo, ''Int, ''String]);<BGenerically traverses the argument and converts all data in it to  Dynamic0 and returns all the internal data as a list of Dynamic. This function properly handles = as = not as [>]. $Higher order operator for modifying s. Use this when your % final function should have the form a -> IxSet a -> IxSet a,  e.g.   or . Inserts an item into the . If your data happens to have ; primary key this function might not be what you want. See  . Removes an item from the . ?Will replace the item with index k. Only works if there is at & most one item with that index in the . Will not change  0 if you have more then 1 item with given index. >Will delete the item with index k. Only works if there is at & most one item with that index in the . Will not change  0 if you have more then 1 item with given index.  Converts an  to a 7 of its elements. ?Takes a list of s and converts it into a 7.  Converts a 7 to an . @ Converts a 7 to an . Converts a list to an . *Returns the number of unique items in the .  Converts an  to its list of elements. AConverts a list of s to list of elements. If the : is a singleton it will return the one item stored in it.  If 5 is empty or has many elements this function returns B. Like  with a user provided default. Return C if the  is empty, D otherwise.  An infix  operation.  An infix  operation. Takes the union of the two s. "Takes the intersection of the two s. Infix version of (. Infix version of ). Infix version of *. Infix version of +. !Infix version of ,. "<Returns the subset with indices in the open interval (k,k). #*Returns the subset with indices in [k,k). $'Returns the subset with indices in (k,k]. %'Returns the subset with indices in [k,k]. &;Creates the subset that has an index in the provided list. ':Creates the subset that matches all the provided indices. (AReturns the subset with an index equal to the provided key. The ? set must be indexed over key type, doing otherwise results in  runtime error. )BReturns the subset with an index less than the provided key. The ? set must be indexed over key type, doing otherwise results in  runtime error. *@Returns the subset with an index greater than the provided key. C The set must be indexed over key type, doing otherwise results in  runtime error. +;Returns the subset with an index less than or equal to the = provided key. The set must be indexed over key type, doing % otherwise results in runtime error. ,>Returns the subset with an index greater than or equal to the = provided key. The set must be indexed over key type, doing % otherwise results in runtime error. -?Returns the subset with an index within the interval provided. ; The bottom of the interval is closed and the top is open, > i. e. [k1;k2). The set must be indexed over key type, doing % otherwise results in runtime error. .@Returns lists of elements paired with the indices determined by  type inference. /(A function for building up selectors on s. Used in the A various get* functions. The set must be indexed over key type, + doing otherwise results in runtime error. E(A function for building up selectors on s. Used in the A various get* functions. The set must be indexed over key type, + doing otherwise results in runtime error. 0Statistics about ". This function returns quadruple C consisting of 1. total number of elements in the set 2. number of @ declared indices 3. number of keys in all indices 4. number of B values in all keys in all indices. This can aid you in debugging  and optimisation. /  !"#$%&'()*+,-./0-   !"#$%&'()*+,-./0-  !"#$%&'()*+,-./0F      !"#$%&'()*+,-./0123456789:1;< =>?@4ABCDEFGH4IJCKLCKMNOhappstack-ixset-0.5.0.3Happstack.Data.IxSet.IxHappstack.Data.IxSetIxinsertdeleteIndexOp IndexableemptycalcsIxSetixSetnoCalcs inferIxSetchangeupdateIxdeleteIxtoSetfromSetfromListsizetoListgetOnegetOneOrnull&&&|||union intersection@=@<@>@<=@>=@><@>=<@><=@>=<=@+@*getEQgetLTgetGTgetLTEgetGTEgetRangegroupBygetOrdstatscontainers-0.4.0.0Data.MapMapbase Data.TypeableTypeable con_Ix_Data ixType_DataixConstr ixDataTypeData.SetSet ixSetConstr ixSetDataTypetyVarBndrToNameflattenGHC.BaseStringghc-prim GHC.TypesChartoSet'fromSet'toList' Data.MaybeNothingGHC.BoolTrueFalsegetOrd2