*      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'() Safe*+,*+,*+, (C) 2016 Rev. Johnny HealeyLGPL-3'Rev. Johnny Healey <rev.null@gmail.com> experimentalunknownNoneDRB 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 monadic paramorphism F-Algebra.   is a paramorphism F-Algebra.  % is a monadic catamorphism F-Algebra.   is a catamorphism F-Algebra.# is a monadic anamorpism 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. is a monadic anamorphism. applies a   over a fixed point of a .. is a monadic catamorphism. applies a   over a fixed point of a .. is a monadic paramorphism. 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./ combines ana and cata into a single operation. is a monadic hylomorphism.!, but using a single instance of . !, but using a single instance of ."  /!    / None9:;!!& is for expressing null types of kind (* -> *).$$2 is a typeclass for representing data that can be % as well as the &4 predicate that can determine if a piece of data is %. !"#$%&0123!"#$%&!"#$%&0123(C) 2016 Rev. Johnny HealeyLGPL-3'Rev. Johnny Healey <rev.null@gmail.com> experimentalunknownNone*0569:;<=?DORT'A '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 12 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 49. 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 )0A 0 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 0$ instead. This is not a well-formed ' because it can't be unpacked into f (0 f).*But, it can be serialized, which allows a ,< object that takes this as an argument to be serialized.11 is a fixed-point combinator of f in Transaction s.5A memory-only instance of a.6An instance of a that is file-backed.7_Write the stored data to disk so that the on-disk representation matches what is in memory.2,Lens for accessing the value stored in a Ref3 Perform a ( on a part of the root object.41The preferred way to modify the root object of a ' is by using 4<. It applies a function that takes the root object as a 1 s f7 and returns the new desired head of the same type.5!The preferred way to read from a ' is to use 5). It applies a function that takes a 1 s f and returns a value.6Get the 8 of a '.7 Create a ', using  fD as the initial structure to store at the location described by 8.8 Create a ', using  fD as the initial structure to store at the location described by 8 and using the 9 to the file to be created.9Open a ' from the file described by 8.:Open a ' from the file described by 8 and using the 9 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 (.>The > 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.?3Get the root datastructure from the transaction as r .@5Get the full datastructure from the transaction as a  f.AA is B but taking a 9! as an argument instead of a 8.B2It's potentially useful to copy the contents of a '( to a new location as a backup. The B function essentially runs C on a '., but writes the output to the specified path.C Because a 'C is backed by an append-only file, there is a periodic need to C 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.O';(<=)*+,-./0>156?@ABCDEFGHIJKLMNOPQRSTUV7WXY23Z[456\]^_`789:;<=>?@ABCDEFGHIJKLD  !"#$%&'()*+,-./0123456789:;<=>?@ABCD1$%&!"#    /-.,0)*+2'789:;6BAC(45<=>3?@C';(<=)*+,-./0>156?@ABCDEFGHIJKLMNOPQRSTUV7WXY23Z[456\]^_`789:;<=>?@ABCDEFGHIJKL(C) 2016 Rev. Johnny HealeyLGPL-3'Rev. Johnny Healey <rev.null@gmail.com> experimentalunknownNone ,023456DLRSA  (S n k v)( stores a BTree of key/value pairs. n should be a aF and will be the maximum number of elements in each branch of the S.TCompute the depth of a S U Create a ' storing a (S k v). The initial value is %.VOpen a ' storing a (S k v).WInsert the value v with the key k into a  (S k v).X( version of W.Y%Lookup the values stored for the key k in a  (S k v).Z( version of Y.[Filter items from a  (S k v) for a key k that match the predicate.\( version of [.]Delete all items for key k from the  (S k v).^( version of ]._Split a S into two two S s with keys  'k'and keys k.`Turn a  (S k v)! into a list of key value tuples.a'Turn a list of key value tuples into a  (S k v).+bcdefghijklmnSopqTrsUVtuvWXYZ[\]^_`abcdefghSTUVWXYZ[\]^_`aSUVTWXYZ[\]^_`abcdefghijklmnSopqTrsUVtuvWXYZ[\]^_`abcdefgh(C) 2016 Rev. Johnny HealeyLGPL-3'Rev. Johnny Healey <rev.null@gmail.com> experimentalunknownNone ,023456DLRoA  (o n k v)( stores a BTree of key/value pairs. n should be a aF and will be the maximum number of elements in each branch of the o.pCompute the depth of a o q Create a ' storing a (o k v). The initial value is %.rOpen a ' storing a (o k v).sInsert the value v with the key k into a  (o k v).t( version of s.u%Lookup the values stored for the key k in a  (o k v).v( version of u.wFilter items from a  (o k v) for a key k that match the predicate.x( version of w.yDelete all items for key k from the  (o k v).z( version of y.{Split a o into two two o s with keys  'k'and keys k.|Turn a  (o k v)! into a list of key value tuples.}'Turn a list of key value tuples into a  (o k v).*wxyz{|}~opqrstuvwxyz{|}~opqrstuvwxyz{|}oqrpstuvwxyz{|}wxyz{|}~opqrstuvwxyz{|}~(C) 2016 Rev. Johnny HealeyLGPL-3'Rev. Johnny Healey <rev.null@gmail.com> experimentalunknownNone 023456DR A  ( i)0 is a set of items represented as a binary tree.Insert an item i into a  recursive  i.( version of .Delete an item i into a  recursive  i.( version of .#Predicate to lookup an item from a  i. FTransaction version of . Create a ' ( i).Open a ' ( i).Turn a  recurive structure of  i into a list.( version of . (C) 2016 Rev. Johnny HealeyLGPL-3'Rev. Johnny Healey <rev.null@gmail.com> experimentalunknownNone 0234569:;DR)A  of keys k to values v! represented as a Two-Three Tree.A  of k! represented as a Two-Three Tree. ( 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 ( k) as defined here or ( k v), also defined here.Number of entries in ( g d). The depth of ( 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 .\))I(C) 2016 Rev. Johnny HealeyLGPL-3'Rev. Johnny Healey <rev.null@gmail.com> experimentalunknownNone 023456DLR  ( v) is a trie mapping lazy  ByteStrings to values of type v. 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 .( (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. 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 .5Lookup a possible value stored in a trie for a given  ByteString key.)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 .& !"# !"#                     ! " # $ % & ' ( ) * + , - . / 0 1234456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx]^_`abcdefghijklmnopqrstuvwxyz{|}~y^z~|{}  23 :     !"#$%&'()*+,-./.01233456789:;<=>?./.01233456789;<@=>?9;<ABCDE012FGHIJ8KLM9NOPQRSTU@VWXYZ[\]^_`a3b3:cdefghijklmnop3b3cdefgijklmnopq&fixfile-0.7.0.0-71ntBbEspJw1TxxxS3z50O Data.FixFileData.FixFile.BTreeData.FixFile.BTree.LightData.FixFile.SetData.FixFile.Tree23Data.FixFile.TrieData.FixFile.Trie.LightData.FixFile.Trie.SharedData.FixFile.FixedData.FixFile.NullFixedTraversable traverseF FixedFoldablefoldMapF FixedFunctorfmapFFixedSubSubFixedAlgAlgParaMAlgParaAlgCataMAlgCataAlgAnaMAlgAnaAlgFixInFoutFFixedinfoutfanaanaMcatacataMparaparaMisohylohyloMfmapF' traverseF'Null1empty1null1NullemptynullFixFile TransactionRefdeRefRoot FixTraverse traverseFixFixablePtrStoredrefsubTransactionalterTlookupT fixFilePath createFixFilecreateFixFileHandle openFixFileopenFixFileHandle closeFixFilereadTransactionwriteTransactionwriteExceptTransactiongetRootgetFullcloneHclonevacuum$fMonadStaterTransaction$fMonadTransaction$fApplicativeTransaction$fFunctorTransaction$fFixTraverseRef$fSerializeRef $fHashablePtr$fSerializePtr $fFixedStored $fGenericPtr$fEqPtr$fOrdPtr $fReadPtr $fShowPtr $fGenericRefBTreedepthcreateBTreeFile openBTreeFile insertBTree insertBTreeT lookupBTree lookupBTreeT filterBTree filterBTreeT deleteBTree deleteBTreeTpartitionBTree toListBTree fromListBTree$fFixedTraversableBTree$fFixedFoldableBTree$fFixedFunctorBTree$fFixedSubBTree$fFixedAlgBTree$fSerializeBTree $fNull1BTree $fReadBTree $fShowBTree$fGenericBTree$fFunctorBTree$fFoldableBTree$fTraversableBTreeSet insertSet insertSetT deleteSet deleteSetT lookupSet lookupSetT createSetFile openSetFile toListSet toListSetT$fFixedFoldableSet $fFixedAlgSet $fNull1Set$fSerializeSet $fReadSet $fShowSet $fGenericSet $fFunctorSet $fFoldableSet$fTraversableSetMapTree23size partitionSetminSetmaxSet fromListSet partitionSetTminSetTmaxSetT insertMap lookupMap deleteMapalterMap partitionMap toListMap fromListMapkeysMap valuesMapminMapmaxMap createMapFile openMapFile insertMapT lookupMapT deleteMapT partitionMapT alterMapTminMapTmaxMapT$fFixedTraversableTree23F$fFixedFoldableTree23F$fFixedFunctorTree23F$fFixedSubTree23F$fFixedAlgTree23F$fSerializeTreeValue$fSerializeTreeKey$fFixedFoldableTree23F0$fFixedAlgTree23F0$fSerializeTreeValue0$fSerializeTreeKey0$fSerializeTree23F$fNull1Tree23F$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$fTraversableTree23FTrievaluefreezecreateTrieFile openTrieFile lookupTrie lookupTrieT descendTrie descendTrieT insertTrie insertTrieT deleteTrie deleteTrieT iterateTrie iterateTrieT$fFixedTraversableTrie$fFixedFoldableTrie$fFixedFunctorTrie$fFixedSubTrie$fFixedAlgTrie$fSerializeTrie $fNull1Trie $fReadTrie $fShowTrie $fGenericTrie $fFunctorTrie$fFoldableTrie$fTraversableTrie bigThresholdsplitKeylookupAscendingbaseGHC.Base ApplicativeFunctor $fFixedFix$fNullg $fNull1[] $fNull1Maybe$fNullf%cereal-0.5.4.0-LXuGw964IxKFJaPTyZmzLsData.Serialize SerializeMemoryCachedsyncGHC.IOFilePathGHC.IO.Handle.TypesHandletransformers-0.5.2.0Control.Monad.Trans.ExceptExceptTrunRTFFH WriteBufferWBPosCachesCache HashTable createCache cacheInsert cacheLookupgetCachedOrStored withCache withCache_bufferFlushSizeinitWBwriteWB flushBuffer getRawBlockgetBlock getBlock' putRawBlockputBlockreadRoot writeRootrootIso withHandlereadStoredLazyacquireWriteLockreleaseWriteLock withWriteLock readHeader updateHeaderghc-prim GHC.TypesNatPartedNoPartSkewDirLRDeleted AllDeleted UnChangedInsertInsertedSplitEmptyValueNodenode treeNodeSize splitRangesplit3leafMaybe Partition NoPartitionSkewSplit2ChangeNoChangeChanged UnbalancedHole TreeValueTreeKeyTree23FLeafTwoThreeMVfromMVMKSVSKtwothree lookupTree23 alterTree23mergepartitionTree23 minTree23 maxTree23D:R:TreeValueMap0D:R:TreeKeyMap0D:R:TreeValueSet0D:R:TreeKeySet0NoDeleteTailStringSmallBigMutable valueNodetailstringfillsmallbigmutfreeze'thaw