úÎ/Ï+v'      !"#$%&None+8A trie data structure with bytesting keys, above VCache.ÿ.This trie uses a simple node structure, with a large branching factor (arity 256), and serializing large shared prefixes and the element values into the same node. The root of the trie is simply a `Maybe (VRef node)`, so is efficient for equality comparisons and serialization purposes. The basic '3 instance reports only the root reference address.áThe trie supports keys of arbitrary size, though very large keys may cause some performance degradation. Similarly, very large values may cause performance degradation since every lookup will load every value in the path. ðObtain unique address for Trie value. As with VRef addresses, this should be stable while the Trie is reachable, but may change if the value is GC'd and later reconstructed at a new address. Exposed for memoization and similar purposes. ()*+,-./01234567 ()*+,-./0 ()*+,-./01234567 Safe-Inferred89:;<=89:89:;<= Safe-Inferred>?@ABC>?@>?@ABCNone+ Construct Trie with no elements. Construct Trie with one element.!O(1), test whether trie is empty.O(n). Compute size of the trie.6O(n). Obtain a list of (key,val) pairs, sorted by key.*O(n). Obtain list of elements in the trie. &O(n). Obtain a sorted list of of keys. ;O(1). Add a common prefix to all keys currently in the Trie -Lookup an object by key without caching nodes Lookup an object by key0Lookup object by key with a specific cache mode.'Obtain a trie rooted at a given prefix./This operation may need to allocate a new node.(Delete all keys sharing a given prefix. ^Insert a single key,value pair into the trie, replacing any existing value at that location.èInsert a list of (key,value) pairs into the trie. At the moment this is just a linear insert, but it may later be replaced by an efficient batch-insert model. If a key appears more than once in this list, the last entry will win."Remove a single key from the trie.¥Remove a collection of keys from the trie. At the moment this is just a sequential deletion, but it may later be replaced by a more efficient batch-deletion model.aUpdate an element in the Trie with a given function. Capable of inserts, modifies, and deletes.D!Adjust using an arbitrary action.ZValidate the invariant structure of the Trie. Every node must branch or contain a value.E6Return byte count for prefix common among two strings.5FG HIJDKLM NO!"#$%&PQREST'  !"#$%&(    ! "#$%&5FG HIJDKLM NO!"#$%&PQRESTU      !"#$%&'()*+,-./01223456789:;<=>?@ABCDEFG6HIJKLMNOPQRSTUvcache-trie-0.1Data.VCache.TrieData.VCache.Trie.TypeStrictIdentTrie trie_spaceunsafeTrieAddrempty singletonnullsizetoListelemskeystoListBy prefixKeyslookup'lookuplookupc lookupPrefix deletePrefixinsert insertListdelete deleteListadjustvalidate foldrWithKey foldrWithKey' foldlWithKey foldlWithKey'foldrfoldr'foldrMfoldlfoldl'foldlM foldrWithKeyM foldlWithKeyMmapmapM mapWithKey mapWithKeyMbaseGHC.ShowShow trie_rootChildChildrenNode trie_branch trie_prefix trie_accept mkChildren getChildren listChildren putChildren $fShowTrie$fVCacheableTrie$fVCacheableNode runStrict $fMonadStrict$fApplicativeStrict$fFunctorStrictrunIdent $fMonadIdent$fApplicativeIdent$fFunctorIdentadjustMsharedPrefixLen singletonNode_lookup_lookupP_deleteP collapseIf tryCollapseapwfskip1stskip2ndmbruntoKey nodePrefix indexOfDiffpeekByte