Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 09096cc9b421cd156f79e8d76d668c46 > files > 20

ghc-bytestring-trie-devel-0.2.3-2.fc15.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Data.Trie.Convenience</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Data-Trie-Convenience.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Data-Trie-Convenience.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">bytestring-trie-0.2.3: An efficient finite map from (byte)strings to values.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>wren@community.haskell.org</td></tr></table><p class="caption">Data.Trie.Convenience</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Conversion functions (<code><a href="Data-Trie.html#v:fromList">fromList</a></code> variants)
</a></li><li><a href="#g:2">Query functions (<code><a href="Data-Trie.html#v:lookupBy">lookupBy</a></code> variants)
</a></li><li><a href="#g:3">Inserting values (<code><a href="Data-Trie-Internal.html#v:alterBy">alterBy</a></code> variants)
</a></li><li><a href="#g:4">Updating and adjusting values (<code><a href="Data-Trie-Internal.html#v:alterBy">alterBy</a></code> and <code><a href="Data-Trie-Internal.html#v:adjustBy">adjustBy</a></code> variants)
</a></li><li><a href="#g:5">Combining tries (<code><a href="Data-Trie-Internal.html#v:mergeBy">mergeBy</a></code> variants)
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Additional convenience functions. In order to keep <a href="Data-Trie.html">Data.Trie</a>
 concise, non-essential and uncommonly used functions have been
 moved here. Most of these functions simplify the generic functions
 from <a href="Data-Trie.html">Data.Trie</a>, following after the interface for <a href="Data-Map.html">Data.Map</a>
 and <a href="Data-IntMap.html">Data.IntMap</a>.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:fromListL">fromListL</a> ::  [(<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a>, a)] -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:fromListR">fromListR</a> ::  [(<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a>, a)] -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:fromListS">fromListS</a> ::  [(<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a>, a)] -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:fromListWith">fromListWith</a> ::  (a -&gt; a -&gt; a) -&gt; [(<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a>, a)] -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:fromListWith-39-">fromListWith'</a> ::  (a -&gt; a -&gt; a) -&gt; [(<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a>, a)] -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:fromListWithL">fromListWithL</a> ::  (a -&gt; a -&gt; a) -&gt; [(<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a>, a)] -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:fromListWithL-39-">fromListWithL'</a> ::  (a -&gt; a -&gt; a) -&gt; [(<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a>, a)] -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:lookupWithDefault">lookupWithDefault</a> ::  a -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; a</li><li class="src short"><a href="#v:insertIfAbsent">insertIfAbsent</a> ::  <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:insertWith">insertWith</a> ::  (a -&gt; a -&gt; a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:insertWith-39-">insertWith'</a> ::  (a -&gt; a -&gt; a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:insertWithKey">insertWithKey</a> ::  (<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; a -&gt; a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:insertWithKey-39-">insertWithKey'</a> ::  (<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; a -&gt; a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:adjustWithKey">adjustWithKey</a> ::  (<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:update">update</a> ::  (a -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:updateWithKey">updateWithKey</a> ::  (<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:disunion">disunion</a> ::  <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:unionWith">unionWith</a> ::  (a -&gt; a -&gt; a) -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li><li class="src short"><a href="#v:unionWith-39-">unionWith'</a> ::  (a -&gt; a -&gt; a) -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a</li></ul></div><div id="interface"><h1 id="g:1">Conversion functions (<code><a href="Data-Trie.html#v:fromList">fromList</a></code> variants)
</h1><div class="doc"><p>Just like <code><a href="Data-Trie.html#v:fromList">fromList</a></code> all of these functions convert an association
 list into a trie, with earlier values shadowing later ones when
 keys conflict. Depending on the order of keys in the list, there
 can be as much as 5x speed difference between the left and right
 variants. Yet, performance is about the same when matching
 best-case to best-case and worst-case to worst-case (which is
 which is swapped when reversing the list or changing which
 function is used).
</p></div><div class="top"><p class="src"><a name="v:fromListL" class="def">fromListL</a> ::  [(<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a>, a)] -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#fromListL" class="link">Source</a></p><div class="doc"><p>A left-fold version of <code><a href="Data-Trie.html#v:fromList">fromList</a></code>. If you run into issues with
 stack overflows when using <code><a href="Data-Trie.html#v:fromList">fromList</a></code> or <code><a href="Data-Trie-Convenience.html#v:fromListR">fromListR</a></code>, then you
 should use this function instead.
</p></div></div><div class="top"><p class="src"><a name="v:fromListR" class="def">fromListR</a> ::  [(<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a>, a)] -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#fromListR" class="link">Source</a></p><div class="doc"><p>An explicitly right-fold variant of <code><a href="Data-Trie.html#v:fromList">fromList</a></code>. It is a good
 consumer for list fusion. Worst-case behavior is somewhat worse
 than worst-case for <code><a href="Data-Trie-Convenience.html#v:fromListL">fromListL</a></code>. The <code><a href="Data-Trie.html#v:fromList">fromList</a></code> function is
 currently just an alias for <code><a href="Data-Trie-Convenience.html#v:fromListR">fromListR</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:fromListS" class="def">fromListS</a> ::  [(<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a>, a)] -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#fromListS" class="link">Source</a></p><div class="doc"><p>This variant sorts the list before folding over it. This adds
 <em>O(n log n)</em> overhead and requires the whole list be in memory
 at once, but it ensures that the list is in best-case order. The
 benefits generally outweigh the costs.
</p></div></div><div class="top"><p class="src"><a name="v:fromListWith" class="def">fromListWith</a> ::  (a -&gt; a -&gt; a) -&gt; [(<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a>, a)] -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#fromListWith" class="link">Source</a></p><div class="doc"><p>A variant of <code><a href="Data-Trie-Convenience.html#v:fromListR">fromListR</a></code> that takes a function for combining
 values on conflict. The first argument to the combining function
 is the `<code>new'</code> value from the initial portion of the list; the
 second argument is the value that has been accumulated into the
 trie from the tail of the list (just like the first argument to
 <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-List.html#v:foldr">foldr</a></code>). Thus, <code>fromList = fromListWith const</code>.
</p></div></div><div class="top"><p class="src"><a name="v:fromListWith-39-" class="def">fromListWith'</a> ::  (a -&gt; a -&gt; a) -&gt; [(<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a>, a)] -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#fromListWith%27" class="link">Source</a></p><div class="doc"><p>A variant of <code><a href="Data-Trie-Convenience.html#v:fromListWith">fromListWith</a></code> which applies the combining
 function strictly. This function is a good consumer for list
 fusion. If you need list fusion and are running into stack
 overflow problems with <code><a href="Data-Trie-Convenience.html#v:fromListWith">fromListWith</a></code>, then this function may
 solve the problem.
</p></div></div><div class="top"><p class="src"><a name="v:fromListWithL" class="def">fromListWithL</a> ::  (a -&gt; a -&gt; a) -&gt; [(<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a>, a)] -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#fromListWithL" class="link">Source</a></p><div class="doc"><p>A left-fold variant of <code><a href="Data-Trie-Convenience.html#v:fromListWith">fromListWith</a></code>. Note that the arguments
 to the combining function are swapped: the first is the value
 in the trie which has been accumulated from the initial part of
 the list; the second argument is the `<code>new'</code> value from the
 remaining tail of the list (just like the first argument to
 <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-List.html#v:foldl">foldl</a></code>). Thus, <code>fromListL = fromListWithL const</code>.
</p></div></div><div class="top"><p class="src"><a name="v:fromListWithL-39-" class="def">fromListWithL'</a> ::  (a -&gt; a -&gt; a) -&gt; [(<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a>, a)] -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#fromListWithL%27" class="link">Source</a></p><div class="doc"><p>A variant of <code><a href="Data-Trie-Convenience.html#v:fromListWithL">fromListWithL</a></code> which applies the combining
 function strictly.
</p></div></div><h1 id="g:2">Query functions (<code><a href="Data-Trie.html#v:lookupBy">lookupBy</a></code> variants)
</h1><div class="top"><p class="src"><a name="v:lookupWithDefault" class="def">lookupWithDefault</a> ::  a -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; a<a href="src/Data-Trie-Convenience.html#lookupWithDefault" class="link">Source</a></p><div class="doc"><p>Lookup a key, returning a default value if it's not found.
</p></div></div><h1 id="g:3">Inserting values (<code><a href="Data-Trie-Internal.html#v:alterBy">alterBy</a></code> variants)
</h1><div class="top"><p class="src"><a name="v:insertIfAbsent" class="def">insertIfAbsent</a> ::  <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#insertIfAbsent" class="link">Source</a></p><div class="doc"><p>Insert a new key, retaining old value on conflict.
</p></div></div><div class="top"><p class="src"><a name="v:insertWith" class="def">insertWith</a> ::  (a -&gt; a -&gt; a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#insertWith" class="link">Source</a></p><div class="doc"><p>Insert a new key, with a function to resolve conflicts.
</p></div></div><div class="top"><p class="src"><a name="v:insertWith-39-" class="def">insertWith'</a> ::  (a -&gt; a -&gt; a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#insertWith%27" class="link">Source</a></p><div class="doc"><p>A variant of <code><a href="Data-Trie-Convenience.html#v:insertWith">insertWith</a></code> which applies the combining function
 strictly.
</p></div></div><div class="top"><p class="src"><a name="v:insertWithKey" class="def">insertWithKey</a> ::  (<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; a -&gt; a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#insertWithKey" class="link">Source</a></p><div class="doc"><p>A variant of <code><a href="Data-Trie-Convenience.html#v:insertWith">insertWith</a></code> which also provides the key to the
 combining function.
</p></div></div><div class="top"><p class="src"><a name="v:insertWithKey-39-" class="def">insertWithKey'</a> ::  (<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; a -&gt; a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#insertWithKey%27" class="link">Source</a></p><div class="doc"><p>A variant of <code><a href="Data-Trie-Convenience.html#v:insertWithKey">insertWithKey</a></code> which applies the combining
 function strictly.
</p></div></div><h1 id="g:4">Updating and adjusting values (<code><a href="Data-Trie-Internal.html#v:alterBy">alterBy</a></code> and <code><a href="Data-Trie-Internal.html#v:adjustBy">adjustBy</a></code> variants)
</h1><div class="top"><p class="src"><a name="v:adjustWithKey" class="def">adjustWithKey</a> ::  (<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#adjustWithKey" class="link">Source</a></p><div class="doc"><p>Apply a function to change the value at a key.
</p></div></div><div class="top"><p class="src"><a name="v:update" class="def">update</a> ::  (a -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#update" class="link">Source</a></p><div class="doc"><p>Apply a function to the value at a key, possibly removing it.
</p></div></div><div class="top"><p class="src"><a name="v:updateWithKey" class="def">updateWithKey</a> ::  (<a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; a -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.1.10/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#updateWithKey" class="link">Source</a></p><div class="doc"><p>A variant of <code><a href="Data-Trie-Convenience.html#v:update">update</a></code> which also provides the key to the function.
</p></div></div><h1 id="g:5">Combining tries (<code><a href="Data-Trie-Internal.html#v:mergeBy">mergeBy</a></code> variants)
</h1><div class="top"><p class="src"><a name="v:disunion" class="def">disunion</a> ::  <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#disunion" class="link">Source</a></p><div class="doc"><p>Combine two tries, a la symmetric difference. If they define
 the same key, it is removed; otherwise it is retained with the
 value it has in whichever trie.
</p></div></div><div class="top"><p class="src"><a name="v:unionWith" class="def">unionWith</a> ::  (a -&gt; a -&gt; a) -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#unionWith" class="link">Source</a></p><div class="doc"><p>Combine two tries, using a function to resolve conflicts.
</p></div></div><div class="top"><p class="src"><a name="v:unionWith-39-" class="def">unionWith'</a> ::  (a -&gt; a -&gt; a) -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a -&gt; <a href="Data-Trie-Internal.html#t:Trie">Trie</a> a<a href="src/Data-Trie-Convenience.html#unionWith%27" class="link">Source</a></p><div class="doc"><p>A variant of <code><a href="Data-Trie-Convenience.html#v:unionWith">unionWith</a></code> which applies the combining function
 strictly.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.9.2</p></div></body></html>