aboutsummaryrefslogtreecommitdiff
path: root/html-test/ref
diff options
context:
space:
mode:
authorChristiaan Baaij <christiaan.baaij@gmail.com>2017-06-09 08:26:43 +0200
committerAlex Biehl <alexbiehl@gmail.com>2017-06-09 08:26:43 +0200
commit87c551fc668b9251f2647cce8772f205e1cee154 (patch)
tree1ccf05ad324e83a77b21997f2442e890d7d6feb6 /html-test/ref
parentd912ee70fff0718440a6f281ccea73aaf8568685 (diff)
Haddock support for bundled pattern synonyms (#627)
* Haddock support for bundled pattern synonyms * Add fixities to bundled pattern synonyms * Add bundled pattern synonyms to the synopsis * Store bundled pattern fixities in expItemFixities * Add test for bundled pattern synonyms * Stop threading fixities * Include bundled pattern synonyms for re-exported data types Sadly, fixity information isn't found for re-exported data types * Support for pattern synonyms * Modify tests after #631 * Test some reexport variations * Also lookup bundled pattern synonyms from `InstalledInterface`s * Check isExported for bundled pattern synonyms * Pattern synonym is exported check * Always look for pattern synonyms in the current module Another overlooked cornercase * Account for types named twice in export lists Also introduce a fast function for nubbing on a `Name` and use it throughout the code base. * correct fixities for reexported pattern synonyms * Fuse concatMap and map * Remove obsolete import * Add pattern synonyms to visible exports * Fix test * Remove corner case
Diffstat (limited to 'html-test/ref')
-rw-r--r--html-test/ref/BundledPatterns.html474
-rw-r--r--html-test/ref/BundledPatterns2.html472
2 files changed, 946 insertions, 0 deletions
diff --git a/html-test/ref/BundledPatterns.html b/html-test/ref/BundledPatterns.html
new file mode 100644
index 00000000..bf6c073c
--- /dev/null
+++ b/html-test/ref/BundledPatterns.html
@@ -0,0 +1,474 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+><head
+ ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
+ /><title
+ >BundledPatterns</title
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
+ /><script src="haddock-util.js" type="text/javascript"
+ ></script
+ ><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
+ ><script type="text/javascript"
+ >//
+window.onload = function () {pageLoad();};
+//
+</script
+ ></head
+ ><body
+ ><div id="package-header"
+ ><ul class="links" id="page-menu"
+ ><li
+ ><a href="#"
+ >Contents</a
+ ></li
+ ><li
+ ><a href="#"
+ >Index</a
+ ></li
+ ></ul
+ ><p class="caption empty"
+ ></p
+ ></div
+ ><div id="content"
+ ><div id="module-header"
+ ><table class="info"
+ ><tr
+ ><th
+ >Safe Haskell</th
+ ><td
+ >None</td
+ ></tr
+ ></table
+ ><p class="caption"
+ >BundledPatterns</p
+ ></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"
+ ><span class="keyword"
+ >data</span
+ > <a href="#"
+ >Vec</a
+ > :: <a href="#"
+ >Nat</a
+ > -&gt; <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ > <span class="keyword"
+ >where</span
+ ><ul class="subs"
+ ><li
+ ><a href="#"
+ >Nil</a
+ > :: <a href="#"
+ >Vec</a
+ > 0 a</li
+ ><li
+ ><span class="keyword"
+ >pattern</span
+ > <a href="#"
+ >(:&gt;)</a
+ > :: a -&gt; <a href="#"
+ >Vec</a
+ > n a -&gt; <a href="#"
+ >Vec</a
+ > (n <a href="#"
+ >+</a
+ > 1) a</li
+ ></ul
+ ></li
+ ><li class="src short"
+ ><span class="keyword"
+ >data</span
+ > <a href="#"
+ >RTree</a
+ > :: <a href="#"
+ >Nat</a
+ > -&gt; <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ > <span class="keyword"
+ >where</span
+ ><ul class="subs"
+ ><li
+ ><span class="keyword"
+ >pattern</span
+ > <a href="#"
+ >LR</a
+ > :: a -&gt; <a href="#"
+ >RTree</a
+ > 0 a</li
+ ><li
+ ><span class="keyword"
+ >pattern</span
+ > <a href="#"
+ >BR</a
+ > :: <a href="#"
+ >RTree</a
+ > d a -&gt; <a href="#"
+ >RTree</a
+ > d a -&gt; <a href="#"
+ >RTree</a
+ > (d <a href="#"
+ >+</a
+ > 1) a</li
+ ></ul
+ ></li
+ ></ul
+ ></div
+ ><div id="interface"
+ ><h1
+ >Documentation</h1
+ ><div class="top"
+ ><p class="src"
+ ><span class="keyword"
+ >data</span
+ > <a id="t:Vec" class="def"
+ >Vec</a
+ > :: <a href="#"
+ >Nat</a
+ > -&gt; <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ > <span class="keyword"
+ >where</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><div class="doc"
+ ><p
+ >Fixed size vectors.</p
+ ><ul
+ ><li
+ >Lists with their length encoded in their type</li
+ ><li
+ ><code
+ ><a href="#"
+ >Vec</a
+ ></code
+ >tor elements have an <strong
+ >ASCENDING</strong
+ > subscript starting from 0 and
+ ending at <code
+ ><code
+ ><a href="#"
+ >length</a
+ ></code
+ > - 1</code
+ >.</li
+ ></ul
+ ></div
+ ><div class="subs constructors"
+ ><p class="caption"
+ >Constructors</p
+ ><table
+ ><tr
+ ><td class="src"
+ ><a id="v:Nil" class="def"
+ >Nil</a
+ > :: <a href="#"
+ >Vec</a
+ > 0 a</td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ></table
+ ></div
+ ><div class="subs bundled-patterns"
+ ><p class="caption"
+ >Bundled Patterns</p
+ ><table
+ ><tr
+ ><td class="src"
+ ><span class="keyword"
+ >pattern</span
+ > <a id="v::-62-" class="def"
+ >(:&gt;)</a
+ > :: a -&gt; <a href="#"
+ >Vec</a
+ > n a -&gt; <a href="#"
+ >Vec</a
+ > (n <a href="#"
+ >+</a
+ > 1) a <span class="fixity"
+ >infixr 5</span
+ ><span class="rightedge"
+ ></span
+ ></td
+ ><td class="doc"
+ ><p
+ >Add an element to the head of a vector.</p
+ ><pre class="screen"
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >3:&gt;4:&gt;5:&gt;Nil
+</code
+ ></strong
+ >&lt;3,4,5&gt;
+<code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >let x = 3:&gt;4:&gt;5:&gt;Nil
+</code
+ ></strong
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >:t x
+</code
+ ></strong
+ >x :: Num a =&gt; Vec 3 a
+</pre
+ ><p
+ >Can be used as a pattern:</p
+ ><pre class="screen"
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >let f (x :&gt; y :&gt; _) = x + y
+</code
+ ></strong
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >:t f
+</code
+ ></strong
+ >f :: Num a =&gt; Vec ((n + 1) + 1) a -&gt; a
+<code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >f (3:&gt;4:&gt;5:&gt;6:&gt;7:&gt;Nil)
+</code
+ ></strong
+ >7
+</pre
+ ><p
+ >Also in conjunctions with (<code
+ >:&lt;</code
+ >):</p
+ ><pre class="screen"
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >let g (a :&gt; b :&gt; (_ :&lt; y :&lt; x)) = a + b + x + y
+</code
+ ></strong
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >:t g
+</code
+ ></strong
+ >g :: Num a =&gt; Vec ((((n + 1) + 1) + 1) + 1) a -&gt; a
+<code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >g (1:&gt;2:&gt;3:&gt;4:&gt;5:&gt;Nil)
+</code
+ ></strong
+ >12
+</pre
+ ></td
+ ></tr
+ ></table
+ ></div
+ ></div
+ ><div class="top"
+ ><p class="src"
+ ><span class="keyword"
+ >data</span
+ > <a id="t:RTree" class="def"
+ >RTree</a
+ > :: <a href="#"
+ >Nat</a
+ > -&gt; <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ > <span class="keyword"
+ >where</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><div class="doc"
+ ><p
+ >Perfect depth binary tree.</p
+ ><ul
+ ><li
+ >Only has elements at the leaf of the tree</li
+ ><li
+ >A tree of depth <em
+ >d</em
+ > has <em
+ >2^d</em
+ > elements.</li
+ ></ul
+ ></div
+ ><div class="subs bundled-patterns"
+ ><p class="caption"
+ >Bundled Patterns</p
+ ><table
+ ><tr
+ ><td class="src"
+ ><span class="keyword"
+ >pattern</span
+ > <a id="v:LR" class="def"
+ >LR</a
+ > :: a -&gt; <a href="#"
+ >RTree</a
+ > 0 a</td
+ ><td class="doc"
+ ><p
+ >Leaf of a perfect depth tree</p
+ ><pre class="screen"
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >LR 1
+</code
+ ></strong
+ >1
+<code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >let x = LR 1
+</code
+ ></strong
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >:t x
+</code
+ ></strong
+ >x :: Num a =&gt; RTree 0 a
+</pre
+ ><p
+ >Can be used as a pattern:</p
+ ><pre class="screen"
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >let f (LR a) (LR b) = a + b
+</code
+ ></strong
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >:t f
+</code
+ ></strong
+ >f :: Num a =&gt; RTree 0 a -&gt; RTree 0 a -&gt; a
+<code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >f (LR 1) (LR 2)
+</code
+ ></strong
+ >3
+</pre
+ ></td
+ ></tr
+ ><tr
+ ><td class="src"
+ ><span class="keyword"
+ >pattern</span
+ > <a id="v:BR" class="def"
+ >BR</a
+ > :: <a href="#"
+ >RTree</a
+ > d a -&gt; <a href="#"
+ >RTree</a
+ > d a -&gt; <a href="#"
+ >RTree</a
+ > (d <a href="#"
+ >+</a
+ > 1) a</td
+ ><td class="doc"
+ ><p
+ >Branch of a perfect depth tree</p
+ ><pre class="screen"
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >BR (LR 1) (LR 2)
+</code
+ ></strong
+ >&lt;1,2&gt;
+<code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >let x = BR (LR 1) (LR 2)
+</code
+ ></strong
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >:t x
+</code
+ ></strong
+ >x :: Num a =&gt; RTree 1 a
+</pre
+ ><p
+ >Case be used a pattern:</p
+ ><pre class="screen"
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >let f (BR (LR a) (LR b)) = LR (a + b)
+</code
+ ></strong
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >:t f
+</code
+ ></strong
+ >f :: Num a =&gt; RTree 1 a -&gt; RTree 0 a
+<code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >f (BR (LR 1) (LR 2))
+</code
+ ></strong
+ >3
+</pre
+ ></td
+ ></tr
+ ></table
+ ></div
+ ></div
+ ></div
+ ></div
+ ><div id="footer"
+ ></div
+ ></body
+ ></html
+> \ No newline at end of file
diff --git a/html-test/ref/BundledPatterns2.html b/html-test/ref/BundledPatterns2.html
new file mode 100644
index 00000000..3d1d4da0
--- /dev/null
+++ b/html-test/ref/BundledPatterns2.html
@@ -0,0 +1,472 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+><head
+ ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
+ /><title
+ >BundledPatterns2</title
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
+ /><script src="haddock-util.js" type="text/javascript"
+ ></script
+ ><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
+ ><script type="text/javascript"
+ >//
+window.onload = function () {pageLoad();};
+//
+</script
+ ></head
+ ><body
+ ><div id="package-header"
+ ><ul class="links" id="page-menu"
+ ><li
+ ><a href="#"
+ >Contents</a
+ ></li
+ ><li
+ ><a href="#"
+ >Index</a
+ ></li
+ ></ul
+ ><p class="caption empty"
+ ></p
+ ></div
+ ><div id="content"
+ ><div id="module-header"
+ ><table class="info"
+ ><tr
+ ><th
+ >Safe Haskell</th
+ ><td
+ >None</td
+ ></tr
+ ></table
+ ><p class="caption"
+ >BundledPatterns2</p
+ ></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"
+ ><span class="keyword"
+ >data</span
+ > <a href="#"
+ >Vec</a
+ > :: <a href="#"
+ >Nat</a
+ > -&gt; <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ > <span class="keyword"
+ >where</span
+ ><ul class="subs"
+ ><li
+ ><span class="keyword"
+ >pattern</span
+ > <a href="#"
+ >Empty</a
+ > :: <a href="#"
+ >Vec</a
+ > 0 a</li
+ ><li
+ ><span class="keyword"
+ >pattern</span
+ > <a href="#"
+ >(:&gt;)</a
+ > :: a -&gt; <a href="#"
+ >Vec</a
+ > n a -&gt; <a href="#"
+ >Vec</a
+ > (n <a href="#"
+ >+</a
+ > 1) a</li
+ ></ul
+ ></li
+ ><li class="src short"
+ ><span class="keyword"
+ >data</span
+ > <a href="#"
+ >RTree</a
+ > :: <a href="#"
+ >Nat</a
+ > -&gt; <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ > <span class="keyword"
+ >where</span
+ ><ul class="subs"
+ ><li
+ ><span class="keyword"
+ >pattern</span
+ > <a href="#"
+ >LR</a
+ > :: a -&gt; <a href="#"
+ >RTree</a
+ > 0 a</li
+ ><li
+ ><span class="keyword"
+ >pattern</span
+ > <a href="#"
+ >BR</a
+ > :: <a href="#"
+ >RTree</a
+ > d a -&gt; <a href="#"
+ >RTree</a
+ > d a -&gt; <a href="#"
+ >RTree</a
+ > (d <a href="#"
+ >+</a
+ > 1) a</li
+ ></ul
+ ></li
+ ></ul
+ ></div
+ ><div id="interface"
+ ><h1
+ >Documentation</h1
+ ><div class="top"
+ ><p class="src"
+ ><span class="keyword"
+ >data</span
+ > <a id="t:Vec" class="def"
+ >Vec</a
+ > :: <a href="#"
+ >Nat</a
+ > -&gt; <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ > <span class="keyword"
+ >where</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><div class="doc"
+ ><p
+ >Fixed size vectors.</p
+ ><ul
+ ><li
+ >Lists with their length encoded in their type</li
+ ><li
+ ><code
+ ><a href="#"
+ >Vec</a
+ ></code
+ >tor elements have an <strong
+ >ASCENDING</strong
+ > subscript starting from 0 and
+ ending at <code
+ ><code
+ ><a href="#"
+ >length</a
+ ></code
+ > - 1</code
+ >.</li
+ ></ul
+ ></div
+ ><div class="subs bundled-patterns"
+ ><p class="caption"
+ >Bundled Patterns</p
+ ><table
+ ><tr
+ ><td class="src"
+ ><span class="keyword"
+ >pattern</span
+ > <a id="v:Empty" class="def"
+ >Empty</a
+ > :: <a href="#"
+ >Vec</a
+ > 0 a</td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td class="src"
+ ><span class="keyword"
+ >pattern</span
+ > <a id="v::-62-" class="def"
+ >(:&gt;)</a
+ > :: a -&gt; <a href="#"
+ >Vec</a
+ > n a -&gt; <a href="#"
+ >Vec</a
+ > (n <a href="#"
+ >+</a
+ > 1) a <span class="fixity"
+ >infixr 5</span
+ ><span class="rightedge"
+ ></span
+ ></td
+ ><td class="doc"
+ ><p
+ >Add an element to the head of a vector.</p
+ ><pre class="screen"
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >3:&gt;4:&gt;5:&gt;Nil
+</code
+ ></strong
+ >&lt;3,4,5&gt;
+<code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >let x = 3:&gt;4:&gt;5:&gt;Nil
+</code
+ ></strong
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >:t x
+</code
+ ></strong
+ >x :: Num a =&gt; Vec 3 a
+</pre
+ ><p
+ >Can be used as a pattern:</p
+ ><pre class="screen"
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >let f (x :&gt; y :&gt; _) = x + y
+</code
+ ></strong
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >:t f
+</code
+ ></strong
+ >f :: Num a =&gt; Vec ((n + 1) + 1) a -&gt; a
+<code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >f (3:&gt;4:&gt;5:&gt;6:&gt;7:&gt;Nil)
+</code
+ ></strong
+ >7
+</pre
+ ><p
+ >Also in conjunctions with (<code
+ >:&lt;</code
+ >):</p
+ ><pre class="screen"
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >let g (a :&gt; b :&gt; (_ :&lt; y :&lt; x)) = a + b + x + y
+</code
+ ></strong
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >:t g
+</code
+ ></strong
+ >g :: Num a =&gt; Vec ((((n + 1) + 1) + 1) + 1) a -&gt; a
+<code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >g (1:&gt;2:&gt;3:&gt;4:&gt;5:&gt;Nil)
+</code
+ ></strong
+ >12
+</pre
+ ></td
+ ></tr
+ ></table
+ ></div
+ ></div
+ ><div class="top"
+ ><p class="src"
+ ><span class="keyword"
+ >data</span
+ > <a id="t:RTree" class="def"
+ >RTree</a
+ > :: <a href="#"
+ >Nat</a
+ > -&gt; <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ > <span class="keyword"
+ >where</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><div class="doc"
+ ><p
+ >Perfect depth binary tree.</p
+ ><ul
+ ><li
+ >Only has elements at the leaf of the tree</li
+ ><li
+ >A tree of depth <em
+ >d</em
+ > has <em
+ >2^d</em
+ > elements.</li
+ ></ul
+ ></div
+ ><div class="subs bundled-patterns"
+ ><p class="caption"
+ >Bundled Patterns</p
+ ><table
+ ><tr
+ ><td class="src"
+ ><span class="keyword"
+ >pattern</span
+ > <a id="v:LR" class="def"
+ >LR</a
+ > :: a -&gt; <a href="#"
+ >RTree</a
+ > 0 a</td
+ ><td class="doc"
+ ><p
+ >Leaf of a perfect depth tree</p
+ ><pre class="screen"
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >LR 1
+</code
+ ></strong
+ >1
+<code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >let x = LR 1
+</code
+ ></strong
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >:t x
+</code
+ ></strong
+ >x :: Num a =&gt; RTree 0 a
+</pre
+ ><p
+ >Can be used as a pattern:</p
+ ><pre class="screen"
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >let f (LR a) (LR b) = a + b
+</code
+ ></strong
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >:t f
+</code
+ ></strong
+ >f :: Num a =&gt; RTree 0 a -&gt; RTree 0 a -&gt; a
+<code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >f (LR 1) (LR 2)
+</code
+ ></strong
+ >3
+</pre
+ ></td
+ ></tr
+ ><tr
+ ><td class="src"
+ ><span class="keyword"
+ >pattern</span
+ > <a id="v:BR" class="def"
+ >BR</a
+ > :: <a href="#"
+ >RTree</a
+ > d a -&gt; <a href="#"
+ >RTree</a
+ > d a -&gt; <a href="#"
+ >RTree</a
+ > (d <a href="#"
+ >+</a
+ > 1) a</td
+ ><td class="doc"
+ ><p
+ >Branch of a perfect depth tree</p
+ ><pre class="screen"
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >BR (LR 1) (LR 2)
+</code
+ ></strong
+ >&lt;1,2&gt;
+<code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >let x = BR (LR 1) (LR 2)
+</code
+ ></strong
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >:t x
+</code
+ ></strong
+ >x :: Num a =&gt; RTree 1 a
+</pre
+ ><p
+ >Case be used a pattern:</p
+ ><pre class="screen"
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >let f (BR (LR a) (LR b)) = LR (a + b)
+</code
+ ></strong
+ ><code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >:t f
+</code
+ ></strong
+ >f :: Num a =&gt; RTree 1 a -&gt; RTree 0 a
+<code class="prompt"
+ >&gt;&gt;&gt; </code
+ ><strong class="userinput"
+ ><code
+ >f (BR (LR 1) (LR 2))
+</code
+ ></strong
+ >3
+</pre
+ ></td
+ ></tr
+ ></table
+ ></div
+ ></div
+ ></div
+ ></div
+ ><div id="footer"
+ ></div
+ ></body
+ ></html
+> \ No newline at end of file