B      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(C) 2016 Rev. Johnny HealeyLGPL-3'Rev. Johnny Healey <rev.null@gmail.com> experimentalunknownSafeDRB is a typeclass for describing traversals over datatypes with  combinators.Traverse over a  recursive  f in the  h.= is a typeclass for describing folds over datatypes with  combinators. Fold over a  recursive  f.L is a typeclass for describing mapping behavior for datatypes used with  combinators. Map over a  recursive  f.> is a typeclass for describing the relationship between a   f and that same  with Alg f switched from v to v'.> is a typeclass for describing the relationship between a  that is used with a 2 combinator and an algebraic datatype in that 3 other than the one used for fixed-point recursion.   is a paramorphism F-Algebra.   is a catamorphism F-Algebra.   is an anamorpism F-Algebra.  P is a type for creating an in-memory representation of the fixed point of a .6 is a typeclass for representing the fixed point of a !. A well-behaved instance of 3 should not change the shape of the underlying .5In other words, the following should always be true:   ( x) == x N applies an AnaAlg over an argument to produce a fixed-point of a Functor. applies a   over a fixed point of a . applies a   over a fixed point of a . maps from a fixed point of a , to a different fixed point of the same ,. For any two well-behaved instances of , the shape of the  should remain unchanged.!, but using a single instance of .!, but using a single instance of .   (C) 2016 Rev. Johnny HealeyLGPL-3'Rev. Johnny Healey <rev.null@gmail.com> experimentalunknownNone*059:;<=?DORTA G is a handle for accessing a file-backed recursive data structure. r is the  object stored in the .A [ is an isolated execution of a read or update operation on the root object stored in a . r is the  data that is stored by the . s# is a phantom type used to isolate #2 values to the transaction where they are run.A  is a reference to a  f in the  instance of g.This is an instance of  and acts to bridge between the 8 and the recursively defined data structure that is (g f).A + is a datastructure that is an instance of  and 9. This acts as a sort of "header" for the file where the  may have several s under it to different Functors. is a class based on Traverse$ but taking an argument of kind ((* -> *) -> *) instead of *.  Given a function that maps from a to b over ! g in the  f, traverse over t- changing the fixed-point combinator from a to b.!.A Constraint for data that can be used with a "A " points to a location in a # and has a phantom type for a  f. A & expects an argument that resembles a , but we can pass it a "$ instead. This is not a well-formed ' because it can't be unpacked into f (" f).*But, it can be serialized, which allows a < object that takes this as an argument to be serialized.## is a fixed-point combinator of f in Transaction s.A memory-only instance of a.An instance of a that is file-backed._Write the stored data to disk so that the on-disk representation matches what is in memory.$,Lens for accessing the value stored in a Ref% Perform a  on a part of the root object.&1The preferred way to modify the root object of a  is by using &<. It applies a function that takes the root object as a # s f7 and returns the new desired head of the same type.'!The preferred way to read from a  is to use '). It applies a function that takes a # s f and returns a value.(Get the  of a .) Create a , using   fD as the initial structure to store at the location described by .* Create a , using   fD as the initial structure to store at the location described by  and using the  to the file to be created.+Open a  from the file described by .,Open a  from the file described by  and using the  to the file.-Close a Q. This can potentially cause errors on data that is lazily being read from a .. Perform a read transaction on a . This transaction cannot modify the root object stored in the file. The returned value is lazily evaluated, but will always correspond to the root object at the start of the transaction./!Perform a write transaction on a . This operation differs from the readTransaction in that the root object stored in the file can potentially be updated by this .0The 0 function behaves like /, but applies to a  wrapped in <. In the event that an exception propagates through the ,, the updates are not committed to disk.2This is meant to provide a mechanism for aborting s.13Get the root datastructure from the transaction as r  .25Get the full datastructure from the transaction as a   f.3 Because a C is backed by an append-only file, there is a periodic need to 3 the file to garbage collect data that is no longer referenced from the root. This task operates on a temporary file that then replaces the file that backs FixFile.kThe memory usage of this operation scales with the recursive depth of the structure stored in the file.F !"#$%&'( )*+,-./0123456789:;<4  !"#$%&'()*+,-./01234 #    ! "$)*+,-(3&'./0%12; !"#$%&'( )*+,-./0123456789:;<(C) 2016 Rev. Johnny HealeyLGPL-3'Rev. Johnny Healey <rev.null@gmail.com> experimentalunknownNone ,02345DLRCA  (C n k v)( stores a BTree of key/value pairs. n should be a  F and will be the maximum number of elements in each branch of the C.DCompute the depth of a C E An empty C F Create a  storing a (C k v). The initial value is E.GOpen a  storing a (C k v).HInsert the value v with the key k into a  (C k v).I version of H.J%Lookup the values stored for the key k in a  (C k v).K version of J.LFilter items from a  (C k v) for a key k that match the predicate.M version of L.NDelete all items for key k from the  (C k v).O version of N.PSplit a C into two two C s with keys  'k'and keys k.QTurn a  (C k v)! into a list of key value tuples.R'Turn a list of key value tuples into a  (C k v).+   CDEFGHIJKLMNOPQRSTUVWXCDEFGHIJKLMNOPQRCFGEDHIJKLMNOPQR   CDEFGHIJKLMNOPQRSTUVWX(C) 2016 Rev. Johnny HealeyLGPL-3'Rev. Johnny Healey <rev.null@gmail.com> experimentalunknownNone 02345DR _A  (_ i)0 is a set of items represented as a binary tree.` An empty _.aInsert an item i into a  recursive _ i.b version of a.cDelete an item i into a  recursive _ i.d version of c.e#Predicate to lookup an item from a _ i.f FTransaction version of e.g Create a  (_ i).hOpen a  (_ i).iTurn a  recurive structure of _ i into a list.j version of i._ !`"abcdefghijklm _`abcdefghij _gh`abcdefij_ !`"abcdefghijklm(C) 2016 Rev. Johnny HealeyLGPL-3'Rev. Johnny Healey <rev.null@gmail.com> experimentalunknownNone 023459:;DR+tA t of keys k to values v! represented as a Two-Three Tree.uA u of k! represented as a Two-Three Tree.v (v d), represents a Two-Three tree. The data type d should have data families for it's key and value. These data families are not exported from the module. As a result, the only valid types for d are (u k) as defined here or (t k v), also defined here.w An empty  v.x9Predicate that returns true if there are no items in the v.yNumber of entries in (v g d).z The depth of (v g d). 0 represents en empty Tree.{Insert an item into a set.|Lookup an item in a set.}Delete an item from a set.~Split a set into sets of items  kand= kreturn the minimum valuereturn the minimum value#Convert a set into a list of items.#Convert a list of items into a set. Create a  for storing a set of items.Open a  for storing a set of items. version of {. FTransaction version of |. FTransaction version of }. version of ~. FTransaction version of . FTransaction version of . Insert value v into a map for key k!. Any existing value is replaced.-Lookup an item in a map corresponding to key k.!Delete an item from a map at key k.'Apply a function to alter a Map at key k. The function takes (# v)> as an argument for any possible exiting value and returns Nothing to delete a value or Just v to set a new value.Split a set into maps for keys  kand= k.Convert a map into a list of key-value tuples.-Convert a lst of key-value tuples into a map.!Return the list of keys in a map.!Return a list of values in a map. return the minimum key and value return the maximum key and value Create a  of a Map.Open a  of a Map. version of . version of . version of . version of . FTransaction version of . FTransaction version of . FTransaction version of .]$%&'()*+,-./0tu12v3456789:;<w=>?xyz{|}~@ABCDEFGH,tuvwxyz{|}~,vwxyzu{|}~tJ$%&'()*+,-./0tu12v34567w=>?xyz{|}~@ABCDE89F:G;H<(C) 2016 Rev. Johnny HealeyLGPL-3'Rev. Johnny Healey <rev.null@gmail.com> experimentalunknownNone 02345DLR  ( v) is a trie mapping lazy  ByteStrings to values of type v. An empty  takes a p that has been mutated and creates a copy of it that allows for faster lookups. This happens automatically for s that are serialized to a . A < will be automatically thawed on any node that is modified. Create a  of ( v) data.Open a  of ( v) data.5Lookup a possible value stored in a trie for a given  ByteString key. version of .)Insert a value into a trie for the given  ByteString key. version of .'Delete a value from a trie for a given  ByteString key. version of .#Iterate over a Trie for all of the  ByteString and value tuples for a given  ByteString prefix. version of .'IJKLMNOPQRSTUVWXYZ[\ IJKLMNOPQRSTUVWXYZ[\]      !""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeKfghijklmnopqrstuvwxyezK{|Jfjh}~nlmgkiK !(          !"#$%&'()*+,-./0123456789:; < =>?@ABCDEFGHIJKL&fixfile-0.3.0.0-AKq3EiJL1x1GbJHjM3eG8f Data.FixFileData.FixFile.BTreeData.FixFile.SetData.FixFile.Tree23Data.FixFile.TrieData.FixFile.FixedFixedTraversable traverseF FixedFoldablefoldMapF FixedFunctorfmapFFixedSubSubFixedAlgAlgParaAlgCataAlgAnaAlgFixInFoutFFixedinfoutfanacataparaisofmapF' traverseF'FixFile TransactionRefdeRefRoot FixTraverse sequenceAFixFixablePtrStoredrefsubTransactionalterTlookupT fixFilePath createFixFilecreateFixFileHandle openFixFileopenFixFileHandle closeFixFilereadTransactionwriteTransactionwriteExceptTransactiongetRootgetFullvacuum$fMonadStaterTransaction$fMonadTransaction$fApplicativeTransaction$fFunctorTransaction$fFixTraverseRef $fBinaryRef $fHashablePtr $fBinaryPtr $fFixedStored $fGenericPtr$fEqPtr$fOrdPtr $fReadPtr $fShowPtr $fGenericRefBTreedepthemptycreateBTreeFile openBTreeFile insertBTree insertBTreeT lookupBTree lookupBTreeT filterBTree filterBTreeT deleteBTree deleteBTreeTpartitionBTree toListBTree fromListBTree$fFixedTraversableBTree$fFixedFoldableBTree$fFixedFunctorBTree$fFixedSubBTree$fFixedAlgBTree $fBinaryBTree $fReadBTree $fShowBTree$fGenericBTree$fFunctorBTree$fFoldableBTree$fTraversableBTreeSet insertSet insertSetT deleteSet deleteSetT lookupSet lookupSetT createSetFile openSetFile toListSet toListSetT$fFixedFoldableSet $fFixedAlgSet $fBinarySet $fReadSet $fShowSet $fGenericSet $fFunctorSet $fFoldableSet$fTraversableSetMapTree23nullsize partitionSetminSetmaxSet fromListSet partitionSetTminSetTmaxSetT insertMap lookupMap deleteMapalterMap partitionMap toListMap fromListMapkeysMap valuesMapminMapmaxMap createMapFile openMapFile insertMapT lookupMapT deleteMapT partitionMapT alterMapTminMapTmaxMapTpartitionTree23$fFixedTraversableTree23F$fFixedFoldableTree23F$fFixedFunctorTree23F$fFixedSubTree23F$fFixedAlgTree23F$fBinaryTreeValue$fBinaryTreeKey$fFixedFoldableTree23F0$fFixedAlgTree23F0$fBinaryTreeValue0$fBinaryTreeKey0$fBinaryTree23F$fReadTreeValue$fShowTreeValue $fEqTreeValue$fOrdTreeValue$fGenericTreeValue $fReadTreeKey $fShowTreeKey $fEqTreeKey $fOrdTreeKey$fGenericTreeKey$fReadTreeValue0$fShowTreeValue0$fEqTreeValue0$fOrdTreeValue0$fGenericTreeValue0$fReadTreeKey0$fShowTreeKey0 $fEqTreeKey0 $fOrdTreeKey0$fGenericTreeKey0 $fReadTree23F $fShowTree23F $fEqTree23F $fOrdTree23F$fGenericTree23F$fFunctorTree23F$fFoldableTree23F$fTraversableTree23FTriefreezecreateTrieFile openTrieFile lookupTrie lookupTrieT insertTrie insertTrieT deleteTrie deleteTrieT iterateTrie iterateTrieT$fFixedTraversableTrie$fFixedFoldableTrie$fFixedFunctorTrie$fFixedSubTrie$fFixedAlgTrie $fBinaryTrie $fReadTrie $fShowTrie $fGenericTrie $fFunctorTrie$fFoldableTrie$fTraversableTriebaseGHC.Base ApplicativeFunctor $fFixedFixbinary-0.8.3.0Data.Binary.ClassBinaryMemoryCachedsyncGHC.IOFilePathGHC.IO.Handle.TypesHandletransformers-0.5.2.0Control.Monad.Trans.ExceptExceptTrunRTFFHPosCachesCache HashTable createCache cacheInsert cacheLookupgetCachedOrStored withCache withCache_ getRawBlockgetBlock putRawBlockputBlockreadRoot writeRootrootIso withHandlereadStoredLazyacquireWriteLockreleaseWriteLock withWriteLock readHeader updateHeaderghc-prim GHC.TypesNatPartedNoPartSkewDirLRDeleted AllDeleted UnChangedInsertInsertedSplitEmptyValueNodevaluenode treeNodeSize splitRangesplit3Maybe Partition NoPartitionSkewSplit2ChangeNoChangeChanged UnbalancedHole TreeValueTreeKeyTree23FLeafTwoThreeMVfromMVMKSVSKleaftwothree lookupTree23 alterTree23merge minTree23 maxTree23D:R:TreeValueMap0D:R:TreeKeyMap0D:R:TreeValueSet0D:R:TreeKeySet0NoDeleteTailStringSmallBigMutabletailstringfillsmallbigmut bigThresholdfreeze'thawsplitKey