aboutsummaryrefslogtreecommitdiff
path: root/hypsrc-test/ref/src/Classes.html
diff options
context:
space:
mode:
authorAlec Theriault <alec.theriault@gmail.com>2019-01-31 01:37:25 -0800
committerGitHub <noreply@github.com>2019-01-31 01:37:25 -0800
commit1b26460fb3b5df5215cc1e6715661cbc7c950085 (patch)
tree0b5ac6285ecf432021e8365567d48eeb6249f44b /hypsrc-test/ref/src/Classes.html
parent4c02498a24e6ceb775528bed043b66340296ad06 (diff)
Use `.hie` files for the Hyperlinker backend (#977)
# Summary This is a large architectural change to the Hyperlinker. * extract link (and now also type) information from `.hie` instead of doing ad-hoc SYB traversals of the `RenamedSource`. Also adds a superb type-on-hover feature (#715). * re-engineer the lexer to avoid needless string conversions. By going directly through GHC's `P` monad and taking bytestring slices, we avoid a ton of allocation and have better handling of position pragmas and CPP. In terms of performance, the Haddock side of things has gotten _much_ more efficient. Unfortunately, much of this is cancelled out by the increased GHC workload for generating `.hie` files. For the full set of boot libs (including `ghc`-the-library) * the sum of total time went down by 9-10% overall * the sum of total allocations went down by 6-7% # Motivation Haddock is moving towards working entirely over `.hi` and `.hie` files. This change means we no longer need the `RenamedSource` from `TypecheckedModule` (something which is _not_ in `.hi` files). # Details Along the way a bunch of things were fixed: * Cross package (and other) links are now more reliable (#496) * The lexer tries to recover from errors on every line (instead of at CPP boundaries) * `LINE`/`COLUMN` pragmas are taken into account * filter out zero length tokens before rendering * avoid recomputing the `ModuleName`-based `SrcMap` * remove the last use of `Documentation.Haddock.Utf8` (see #998) * restructure temporary folder logic for `.hi`/`.hie` model
Diffstat (limited to 'hypsrc-test/ref/src/Classes.html')
-rw-r--r--hypsrc-test/ref/src/Classes.html1652
1 files changed, 1021 insertions, 631 deletions
diff --git a/hypsrc-test/ref/src/Classes.html b/hypsrc-test/ref/src/Classes.html
index d2604e82..dd1e6ebc 100644
--- a/hypsrc-test/ref/src/Classes.html
+++ b/hypsrc-test/ref/src/Classes.html
@@ -19,36 +19,40 @@
><span
>
</span
- ><a name="line-2"
- ></a
+ ><span id="line-2"
+ ></span
><span
>
</span
- ><a name="line-3"
- ></a
+ ><span id="line-3"
+ ></span
><span
>
</span
- ><a name="line-4"
- ></a
+ ><span id="line-4"
+ ></span
><span class="hs-keyword"
>class</span
><span
> </span
- ><a name="Foo"
- ><a href="Classes.html#Foo"
- ><span class="hs-identifier"
- >Foo</span
- ></a
- ></a
+ ><span id="Foo"
+ ><span class="annot"
+ ><a href="Classes.html#Foo"
+ ><span class="hs-identifier hs-var"
+ >Foo</span
+ ></a
+ ></span
+ ></span
><span
> </span
- ><a name=""
- ><a href="#"
- ><span class="hs-identifier"
- >a</span
- ></a
- ></a
+ ><span id="local-6989586621679043524"
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
+ ></span
><span
> </span
><span class="hs-keyword"
@@ -56,55 +60,65 @@
><span
>
</span
- ><a name="line-5"
- ></a
+ ><span id="line-5"
+ ></span
><span
> </span
- ><a name="bar"
- ><a href="Classes.html#bar"
- ><span class="hs-identifier"
- >bar</span
- ></a
- ></a
+ ><span id="bar"
+ ><span class="annot"
+ ><a href="Classes.html#bar"
+ ><span class="hs-identifier hs-type"
+ >bar</span
+ ></a
+ ></span
+ ></span
><span
> </span
><span class="hs-glyph"
>::</span
><span
> </span
+ ><span class="annot"
><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
><span
> </span
><span class="hs-glyph"
>-&gt;</span
><span
> </span
+ ><span class="annot"
><span class="hs-identifier hs-type"
- >Int</span
+ >Int</span
+ ></span
><span
>
</span
- ><a name="line-6"
- ></a
+ ><span id="line-6"
+ ></span
><span
> </span
- ><a name="baz"
- ><a href="Classes.html#baz"
- ><span class="hs-identifier"
- >baz</span
- ></a
- ></a
+ ><span id="baz"
+ ><span class="annot"
+ ><a href="Classes.html#baz"
+ ><span class="hs-identifier hs-type"
+ >baz</span
+ ></a
+ ></span
+ ></span
><span
> </span
><span class="hs-glyph"
>::</span
><span
> </span
+ ><span class="annot"
><span class="hs-identifier hs-type"
- >Int</span
+ >Int</span
+ ></span
><span
> </span
><span class="hs-glyph"
@@ -113,42 +127,50 @@
> </span
><span class="hs-special"
>(</span
+ ><span class="annot"
><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
><span class="hs-special"
>,</span
><span
> </span
+ ><span class="annot"
><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
><span class="hs-special"
>)</span
><span
>
</span
- ><a name="line-7"
- ></a
+ ><span id="line-7"
+ ></span
><span
>
</span
- ><a name="line-8"
- ></a
+ ><span id="line-8"
+ ></span
><span class="hs-keyword"
>instance</span
><span
> </span
+ ><span class="annot"
><a href="Classes.html#Foo"
- ><span class="hs-identifier hs-type"
- >Foo</span
- ></a
+ ><span class="hs-identifier hs-type"
+ >Foo</span
+ ></a
+ ></span
><span
> </span
+ ><span class="annot"
><span class="hs-identifier hs-type"
- >Int</span
+ >Int</span
+ ></span
><span
> </span
><span class="hs-keyword"
@@ -156,45 +178,66 @@
><span
>
</span
- ><a name="line-9"
- ></a
+ ><span id="line-9"
+ ></span
><span
> </span
- ><a name=""
- ><a href="Classes.html#bar"
- ><span class="hs-identifier"
- >bar</span
- ></a
- ></a
+ ><span id="local-6989586621679043488"
+ ><span class="annot"
+ ><span class="annottext"
+ >bar :: Int -&gt; Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var hs-var hs-var hs-var"
+ >bar</span
+ ></a
+ ></span
+ ></span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
- ><span class="hs-identifier hs-var"
- >id</span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int -&gt; Int
+forall a. a -&gt; a
+</span
+ ><span class="hs-identifier hs-var"
+ >id</span
+ ></span
><span
>
</span
- ><a name="line-10"
- ></a
+ ><span id="line-10"
+ ></span
><span
> </span
- ><a name=""
- ><a href="Classes.html#baz"
- ><span class="hs-identifier"
- >baz</span
- ></a
- ></a
- ><span
- > </span
- ><a name=""
- ><a href="#"
- ><span class="hs-identifier"
- >x</span
- ></a
- ></a
+ ><span id="local-6989586621679043486"
+ ><span class="annot"
+ ><span class="annottext"
+ >baz :: Int -&gt; (Int, Int)
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var hs-var hs-var hs-var"
+ >baz</span
+ ></a
+ ></span
+ ></span
+ ><span
+ > </span
+ ><span id="local-6989586621679043485"
+ ><span class="annot"
+ ><span class="annottext"
+ >x :: Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ></span
><span
> </span
><span class="hs-glyph"
@@ -203,161 +246,201 @@
> </span
><span class="hs-special"
>(</span
- ><a href="#"
- ><span class="hs-identifier hs-var"
- >x</span
- ></a
+ ><span class="annot"
+ ><span class="annottext"
+ >Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
><span class="hs-special"
>,</span
><span
> </span
- ><a href="#"
- ><span class="hs-identifier hs-var"
- >x</span
- ></a
+ ><span class="annot"
+ ><span class="annottext"
+ >Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
><span class="hs-special"
>)</span
><span
>
</span
- ><a name="line-11"
- ></a
+ ><span id="line-11"
+ ></span
><span
>
</span
- ><a name="line-12"
- ></a
+ ><span id="line-12"
+ ></span
+ ><span id="local-6989586621679043484"
><span class="hs-keyword"
- >instance</span
- ><span
- > </span
- ><a href="Classes.html#Foo"
- ><span class="hs-identifier hs-type"
- >Foo</span
- ></a
- ><span
- > </span
- ><span class="hs-special"
- >[</span
- ><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
- ><span class="hs-special"
- >]</span
- ><span
- > </span
- ><span class="hs-keyword"
- >where</span
- ><span
- >
+ >instance</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><a href="Classes.html#Foo"
+ ><span class="hs-identifier hs-type"
+ >Foo</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >[</span
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
+ ><span class="hs-special"
+ >]</span
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >where</span
+ ><span
+ >
</span
- ><a name="line-13"
- ></a
- ><span
- > </span
- ><a name=""
- ><a href="Classes.html#bar"
- ><span class="hs-identifier"
- >bar</span
- ></a
- ></a
- ><span
- > </span
- ><span class="hs-glyph"
- >=</span
- ><span
- > </span
- ><span class="hs-identifier hs-var"
- >length</span
- ><span
- >
+ ><span id="line-13"
+ ></span
+ ><span
+ > </span
+ ><span id="local-6989586621679043481"
+ ><span class="annot"
+ ><span class="annottext"
+ >bar :: [a] -&gt; Int
</span
- ><a name="line-14"
- ></a
- ><span
- > </span
- ><a name=""
- ><a href="Classes.html#baz"
+ ><a href="#"
+ ><span class="hs-identifier hs-var hs-var hs-var hs-var"
+ >bar</span
+ ></a
+ ></span
+ ></span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >[a] -&gt; Int
+forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Int
+</span
+ ><span class="hs-identifier hs-var"
+ >length</span
+ ></span
+ ><span
+ >
+</span
+ ><span id="line-14"
+ ></span
+ ><span
+ > </span
+ ><span id="local-6989586621679043479"
+ ><span class="annot"
+ ><span class="annottext"
+ >baz :: Int -&gt; ([a], [a])
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var hs-var hs-var hs-var"
+ >baz</span
+ ></a
+ ></span
+ ></span
+ ><span
+ > </span
><span class="hs-identifier"
- >baz</span
- ></a
- ></a
- ><span
- > </span
- ><span class="hs-identifier"
- >_</span
- ><span
- > </span
- ><span class="hs-glyph"
- >=</span
- ><span
- > </span
- ><span class="hs-special"
- >(</span
- ><span class="hs-special"
- >[</span
- ><span class="hs-special"
- >]</span
- ><span class="hs-special"
- >,</span
- ><span
- > </span
- ><span class="hs-special"
- >[</span
- ><span class="hs-special"
- >]</span
- ><span class="hs-special"
- >)</span
+ >_</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><span class="hs-special"
+ >[</span
+ ><span class="hs-special"
+ >]</span
+ ><span class="hs-special"
+ >,</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >[</span
+ ><span class="hs-special"
+ >]</span
+ ><span class="hs-special"
+ >)</span
+ ></span
><span
>
</span
- ><a name="line-15"
- ></a
+ ><span id="line-15"
+ ></span
><span
>
</span
- ><a name="line-16"
- ></a
+ ><span id="line-16"
+ ></span
><span
>
</span
- ><a name="line-17"
- ></a
+ ><span id="line-17"
+ ></span
><span class="hs-keyword"
>class</span
><span
> </span
+ ><span class="annot"
><a href="Classes.html#Foo"
- ><span class="hs-identifier hs-type"
- >Foo</span
- ></a
+ ><span class="hs-identifier hs-type"
+ >Foo</span
+ ></a
+ ></span
><span
> </span
+ ><span class="annot"
><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
><span
> </span
><span class="hs-glyph"
>=&gt;</span
><span
> </span
- ><a name="Foo%27"
- ><a href="Classes.html#Foo%27"
- ><span class="hs-identifier"
- >Foo'</span
- ></a
- ></a
+ ><span id="Foo%27"
+ ><span class="annot"
+ ><a href="Classes.html#Foo%27"
+ ><span class="hs-identifier hs-var"
+ >Foo'</span
+ ></a
+ ></span
+ ></span
><span
> </span
- ><a name=""
- ><a href="#"
- ><span class="hs-identifier"
- >a</span
- ></a
- ></a
+ ><span id="local-6989586621679043519"
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
+ ></span
><span
> </span
><span class="hs-keyword"
@@ -365,16 +448,18 @@
><span
>
</span
- ><a name="line-18"
- ></a
+ ><span id="line-18"
+ ></span
><span
> </span
- ><a name="quux"
- ><a href="Classes.html#quux"
- ><span class="hs-identifier"
- >quux</span
- ></a
- ></a
+ ><span id="quux"
+ ><span class="annot"
+ ><a href="Classes.html#quux"
+ ><span class="hs-identifier hs-type"
+ >quux</span
+ ></a
+ ></span
+ ></span
><span
> </span
><span class="hs-glyph"
@@ -383,18 +468,22 @@
> </span
><span class="hs-special"
>(</span
+ ><span class="annot"
><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
><span class="hs-special"
>,</span
><span
> </span
+ ><span class="annot"
><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
><span class="hs-special"
>)</span
><span
@@ -403,91 +492,123 @@
>-&gt;</span
><span
> </span
+ ><span class="annot"
><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
><span
>
</span
- ><a name="line-19"
- ></a
+ ><span id="line-19"
+ ></span
><span
> </span
- ><a name=""
- ><a href="Classes.html#quux"
- ><span class="hs-identifier"
- >quux</span
- ></a
- ></a
- ><span
- > </span
- ><span class="hs-special"
- >(</span
- ><a name=""
- ><a href="#"
- ><span class="hs-identifier"
- >x</span
- ></a
- ></a
- ><span class="hs-special"
- >,</span
- ><span
- > </span
- ><a name=""
- ><a href="#"
- ><span class="hs-identifier"
- >y</span
- ></a
- ></a
- ><span class="hs-special"
- >)</span
- ><span
- > </span
- ><span class="hs-glyph"
- >=</span
- ><span
- > </span
- ><a href="Classes.html#norf"
- ><span class="hs-identifier hs-var"
- >norf</span
- ></a
- ><span
- > </span
- ><span class="hs-special"
- >[</span
- ><a href="#"
- ><span class="hs-identifier hs-var"
- >x</span
- ></a
- ><span class="hs-special"
- >,</span
- ><span
- > </span
- ><a href="#"
- ><span class="hs-identifier hs-var"
- >y</span
- ></a
- ><span class="hs-special"
- >]</span
+ ><span id="local-6989586621679043477"
+ ><span class="annot"
+ ><a href="Classes.html#quux"
+ ><span class="hs-identifier hs-var hs-var"
+ >quux</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><span id="local-6989586621679043476"
+ ><span class="annot"
+ ><span class="annottext"
+ >x :: a
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ></span
+ ><span class="hs-special"
+ >,</span
+ ><span
+ > </span
+ ><span id="local-6989586621679043475"
+ ><span class="annot"
+ ><span class="annottext"
+ >y :: a
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >y</span
+ ></a
+ ></span
+ ></span
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >[a] -&gt; a
+forall a. Foo' a =&gt; [a] -&gt; a
+</span
+ ><a href="Classes.html#norf"
+ ><span class="hs-identifier hs-var"
+ >norf</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >[</span
+ ><span class="annot"
+ ><span class="annottext"
+ >a
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ></span
+ ><span class="hs-special"
+ >,</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >a
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >y</span
+ ></a
+ ></span
+ ><span class="hs-special"
+ >]</span
+ ></span
><span
>
</span
- ><a name="line-20"
- ></a
+ ><span id="line-20"
+ ></span
><span
>
</span
- ><a name="line-21"
- ></a
+ ><span id="line-21"
+ ></span
><span
> </span
- ><a name="norf"
- ><a href="Classes.html#norf"
- ><span class="hs-identifier"
- >norf</span
- ></a
- ></a
+ ><span id="norf"
+ ><span class="annot"
+ ><a href="Classes.html#norf"
+ ><span class="hs-identifier hs-type"
+ >norf</span
+ ></a
+ ></span
+ ></span
><span
> </span
><span class="hs-glyph"
@@ -496,10 +617,12 @@
> </span
><span class="hs-special"
>[</span
+ ><span class="annot"
><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
><span class="hs-special"
>]</span
><span
@@ -508,87 +631,145 @@
>-&gt;</span
><span
> </span
+ ><span class="annot"
><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
><span
>
</span
- ><a name="line-22"
- ></a
+ ><span id="line-22"
+ ></span
><span
> </span
- ><a name=""
- ><a href="Classes.html#norf"
- ><span class="hs-identifier"
- >norf</span
- ></a
- ></a
- ><span
- > </span
- ><span class="hs-glyph"
- >=</span
- ><span
- > </span
- ><a href="Classes.html#quux"
- ><span class="hs-identifier hs-var"
- >quux</span
- ></a
- ><span
- > </span
- ><span class="hs-operator hs-var"
- >.</span
- ><span
- > </span
- ><a href="Classes.html#baz"
- ><span class="hs-identifier hs-var"
- >baz</span
- ></a
- ><span
- > </span
- ><span class="hs-operator hs-var"
- >.</span
- ><span
- > </span
- ><span class="hs-identifier hs-var"
- >sum</span
- ><span
- > </span
- ><span class="hs-operator hs-var"
- >.</span
- ><span
- > </span
- ><span class="hs-identifier hs-var"
- >map</span
- ><span
- > </span
- ><a href="Classes.html#bar"
- ><span class="hs-identifier hs-var"
- >bar</span
- ></a
+ ><span id="local-6989586621679043473"
+ ><span class="annot"
+ ><a href="Classes.html#norf"
+ ><span class="hs-identifier hs-var hs-var"
+ >norf</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >(a, a) -&gt; a
+forall a. Foo' a =&gt; (a, a) -&gt; a
+</span
+ ><a href="Classes.html#quux"
+ ><span class="hs-identifier hs-var"
+ >quux</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >((a, a) -&gt; a) -&gt; ([a] -&gt; (a, a)) -&gt; [a] -&gt; a
+forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
+</span
+ ><span class="hs-operator hs-var"
+ >.</span
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >Int -&gt; (a, a)
+forall a. Foo a =&gt; Int -&gt; (a, a)
+</span
+ ><a href="Classes.html#baz"
+ ><span class="hs-identifier hs-var"
+ >baz</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >(Int -&gt; (a, a)) -&gt; ([a] -&gt; Int) -&gt; [a] -&gt; (a, a)
+forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
+</span
+ ><span class="hs-operator hs-var"
+ >.</span
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >[Int] -&gt; Int
+forall (t :: * -&gt; *) a. (Foldable t, Num a) =&gt; t a -&gt; a
+</span
+ ><span class="hs-identifier hs-var"
+ >sum</span
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >([Int] -&gt; Int) -&gt; ([a] -&gt; [Int]) -&gt; [a] -&gt; Int
+forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
+</span
+ ><span class="hs-operator hs-var"
+ >.</span
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >(a -&gt; Int) -&gt; [a] -&gt; [Int]
+forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
+</span
+ ><span class="hs-identifier hs-var"
+ >map</span
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >a -&gt; Int
+forall a. Foo a =&gt; a -&gt; Int
+</span
+ ><a href="Classes.html#bar"
+ ><span class="hs-identifier hs-var"
+ >bar</span
+ ></a
+ ></span
+ ></span
><span
>
</span
- ><a name="line-23"
- ></a
+ ><span id="line-23"
+ ></span
><span
>
</span
- ><a name="line-24"
- ></a
+ ><span id="line-24"
+ ></span
><span class="hs-keyword"
>instance</span
><span
> </span
- ><a href="Classes.html#Foo%27"
- ><span class="hs-identifier hs-type"
- >Foo'</span
- ></a
- ><span
- > </span
- ><span class="hs-identifier hs-type"
- >Int</span
+ ><span id="local-6989586621679043468"
+ ><span class="annot"
+ ><a href="Classes.html#Foo%27"
+ ><span class="hs-identifier hs-type"
+ >Foo'</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="hs-identifier hs-type"
+ >Int</span
+ ></span
+ ></span
><span
> </span
><span class="hs-keyword"
@@ -596,118 +777,154 @@
><span
>
</span
- ><a name="line-25"
- ></a
+ ><span id="line-25"
+ ></span
><span
> </span
- ><a name=""
- ><a href="Classes.html#norf"
- ><span class="hs-identifier"
- >norf</span
- ></a
- ></a
+ ><span id="local-6989586621679043465"
+ ><span class="annot"
+ ><span class="annottext"
+ >norf :: [Int] -&gt; Int
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var hs-var hs-var hs-var"
+ >norf</span
+ ></a
+ ></span
+ ></span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
- ><span class="hs-identifier hs-var"
- >sum</span
+ ><span class="annot"
+ ><span class="annottext"
+ >[Int] -&gt; Int
+forall (t :: * -&gt; *) a. (Foldable t, Num a) =&gt; t a -&gt; a
+</span
+ ><span class="hs-identifier hs-var"
+ >sum</span
+ ></span
><span
>
</span
- ><a name="line-26"
- ></a
+ ><span id="line-26"
+ ></span
><span
>
</span
- ><a name="line-27"
- ></a
- ><span class="hs-keyword"
- >instance</span
- ><span
- > </span
- ><a href="Classes.html#Foo%27"
- ><span class="hs-identifier hs-type"
- >Foo'</span
- ></a
- ><span
- > </span
- ><span class="hs-special"
- >[</span
- ><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
- ><span class="hs-special"
- >]</span
- ><span
- > </span
+ ><span id="line-27"
+ ></span
+ ><span id="local-6989586621679043464"
><span class="hs-keyword"
- >where</span
- ><span
- >
+ >instance</span
+ ><span
+ > </span
+ ><span id="local-6989586621679043460"
+ ><span class="annot"
+ ><a href="Classes.html#Foo%27"
+ ><span class="hs-identifier hs-type"
+ >Foo'</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >[</span
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
+ ><span class="hs-special"
+ >]</span
+ ></span
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >where</span
+ ><span
+ >
</span
- ><a name="line-28"
- ></a
- ><span
- > </span
- ><a name=""
- ><a href="Classes.html#quux"
- ><span class="hs-identifier"
- >quux</span
- ></a
- ></a
- ><span
- > </span
- ><span class="hs-glyph"
- >=</span
- ><span
- > </span
- ><span class="hs-identifier hs-var"
- >uncurry</span
- ><span
- > </span
- ><span class="hs-special"
- >(</span
- ><span class="hs-operator hs-var"
- >++</span
- ><span class="hs-special"
- >)</span
+ ><span id="line-28"
+ ></span
+ ><span
+ > </span
+ ><span id="local-6989586621679043459"
+ ><span class="annot"
+ ><span class="annottext"
+ >quux :: ([a], [a]) -&gt; [a]
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var hs-var hs-var hs-var"
+ >quux</span
+ ></a
+ ></span
+ ></span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >([a] -&gt; [a] -&gt; [a]) -&gt; ([a], [a]) -&gt; [a]
+forall a b c. (a -&gt; b -&gt; c) -&gt; (a, b) -&gt; c
+</span
+ ><span class="hs-identifier hs-var"
+ >uncurry</span
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><span class="annottext"
+ >[a] -&gt; [a] -&gt; [a]
+forall a. [a] -&gt; [a] -&gt; [a]
+</span
+ ><span class="hs-operator hs-var"
+ >(++)</span
+ ></span
+ ></span
><span
>
</span
- ><a name="line-29"
- ></a
+ ><span id="line-29"
+ ></span
><span
>
</span
- ><a name="line-30"
- ></a
+ ><span id="line-30"
+ ></span
><span
>
</span
- ><a name="line-31"
- ></a
+ ><span id="line-31"
+ ></span
><span class="hs-keyword"
>class</span
><span
> </span
- ><a name="Plugh"
- ><a href="Classes.html#Plugh"
- ><span class="hs-identifier"
- >Plugh</span
- ></a
- ></a
+ ><span id="Plugh"
+ ><span class="annot"
+ ><a href="Classes.html#Plugh"
+ ><span class="hs-identifier hs-var"
+ >Plugh</span
+ ></a
+ ></span
+ ></span
><span
> </span
- ><a name=""
- ><a href="#"
- ><span class="hs-identifier"
- >p</span
- ></a
- ></a
+ ><span id="local-6989586621679043503"
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >p</span
+ ></a
+ ></span
+ ></span
><span
> </span
><span class="hs-keyword"
@@ -715,132 +932,164 @@
><span
>
</span
- ><a name="line-32"
- ></a
+ ><span id="line-32"
+ ></span
><span
> </span
- ><a name="plugh"
- ><a href="Classes.html#plugh"
- ><span class="hs-identifier"
- >plugh</span
- ></a
- ></a
- ><span
- > </span
- ><span class="hs-glyph"
- >::</span
- ><span
- > </span
- ><a href="#"
- ><span class="hs-identifier hs-type"
- >p</span
- ></a
- ><span
- > </span
- ><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
- ><span
- > </span
- ><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
- ><span
- > </span
- ><span class="hs-glyph"
- >-&gt;</span
- ><span
- > </span
- ><a href="#"
- ><span class="hs-identifier hs-type"
- >p</span
- ></a
- ><span
- > </span
- ><a href="#"
- ><span class="hs-identifier hs-type"
- >b</span
- ></a
- ><span
- > </span
- ><a href="#"
- ><span class="hs-identifier hs-type"
- >b</span
- ></a
- ><span
- > </span
- ><span class="hs-glyph"
- >-&gt;</span
- ><span
- > </span
- ><a href="#"
- ><span class="hs-identifier hs-type"
- >p</span
- ></a
- ><span
- > </span
- ><span class="hs-special"
- >(</span
- ><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
- ><span
- > </span
- ><span class="hs-glyph"
- >-&gt;</span
- ><span
- > </span
- ><a href="#"
- ><span class="hs-identifier hs-type"
- >b</span
- ></a
- ><span class="hs-special"
- >)</span
- ><span
- > </span
- ><span class="hs-special"
- >(</span
- ><a href="#"
- ><span class="hs-identifier hs-type"
- >b</span
- ></a
- ><span
- > </span
- ><span class="hs-glyph"
- >-&gt;</span
- ><span
- > </span
- ><a href="#"
- ><span class="hs-identifier hs-type"
- >a</span
- ></a
- ><span class="hs-special"
- >)</span
+ ><span id="local-6989586621679043505"
+ ><span id="local-6989586621679043506"
+ ><span id="plugh"
+ ><span class="annot"
+ ><a href="Classes.html#plugh"
+ ><span class="hs-identifier hs-type"
+ >plugh</span
+ ></a
+ ></span
+ ></span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >p</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >p</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >p</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ></span
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ></span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="annot"
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ></span
+ ><span class="hs-special"
+ >)</span
+ ></span
+ ></span
><span
>
</span
- ><a name="line-33"
- ></a
+ ><span id="line-33"
+ ></span
><span
>
</span
- ><a name="line-34"
- ></a
+ ><span id="line-34"
+ ></span
><span class="hs-keyword"
>instance</span
><span
> </span
+ ><span class="annot"
><a href="Classes.html#Plugh"
- ><span class="hs-identifier hs-type"
- >Plugh</span
- ></a
+ ><span class="hs-identifier hs-type"
+ >Plugh</span
+ ></a
+ ></span
><span
> </span
+ ><span class="annot"
><span class="hs-identifier hs-type"
- >Either</span
+ >Either</span
+ ></span
><span
> </span
><span class="hs-keyword"
@@ -848,30 +1097,42 @@
><span
>
</span
- ><a name="line-35"
- ></a
+ ><span id="line-35"
+ ></span
><span
> </span
- ><a name=""
- ><a href="Classes.html#plugh"
- ><span class="hs-identifier"
- >plugh</span
- ></a
- ></a
+ ><span id="local-6989586621679043454"
+ ><span class="annot"
+ ><span class="annottext"
+ >plugh :: Either a a -&gt; Either b b -&gt; Either (a -&gt; b) (b -&gt; a)
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var hs-var hs-var hs-var"
+ >plugh</span
+ ></a
+ ></span
+ ></span
><span
> </span
><span class="hs-special"
>(</span
- ><span class="hs-identifier hs-var"
- >Left</span
+ ><span class="annot"
+ ><span class="hs-identifier hs-type"
+ >Left</span
+ ></span
><span
> </span
- ><a name=""
- ><a href="#"
- ><span class="hs-identifier"
- >a</span
- ></a
- ></a
+ ><span id="local-6989586621679043453"
+ ><span class="annot"
+ ><span class="annottext"
+ >a :: a
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >a</span
+ ></a
+ ></span
+ ></span
><span class="hs-special"
>)</span
><span
@@ -884,45 +1145,80 @@
>=</span
><span
> </span
- ><span class="hs-identifier hs-var"
- >Right</span
+ ><span class="annot"
+ ><span class="annottext"
+ >(b -&gt; a) -&gt; Either (a -&gt; b) (b -&gt; a)
+forall a b. b -&gt; Either a b
+</span
+ ><span class="hs-identifier hs-var"
+ >Right</span
+ ></span
><span
> </span
- ><span class="hs-operator hs-var"
- >$</span
+ ><span class="annot"
+ ><span class="annottext"
+ >((b -&gt; a) -&gt; Either (a -&gt; b) (b -&gt; a))
+-&gt; (b -&gt; a) -&gt; Either (a -&gt; b) (b -&gt; a)
+forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span
+ ><span class="hs-operator hs-var"
+ >$</span
+ ></span
><span
> </span
- ><span class="hs-identifier hs-var"
- >const</span
+ ><span class="annot"
+ ><span class="annottext"
+ >a -&gt; b -&gt; a
+forall a b. a -&gt; b -&gt; a
+</span
+ ><span class="hs-identifier hs-var"
+ >const</span
+ ></span
><span
> </span
- ><a href="#"
- ><span class="hs-identifier hs-var"
- >a</span
- ></a
+ ><span class="annot"
+ ><span class="annottext"
+ >a
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >a</span
+ ></a
+ ></span
><span
>
</span
- ><a name="line-36"
- ></a
+ ><span id="line-36"
+ ></span
><span
> </span
- ><span class="hs-identifier"
- >plugh</span
+ ><span class="annot"
+ ><a href="Classes.html#plugh"
+ ><span class="hs-identifier hs-var"
+ >plugh</span
+ ></a
+ ></span
><span
> </span
><span class="hs-special"
>(</span
- ><span class="hs-identifier hs-var"
- >Right</span
+ ><span class="annot"
+ ><span class="hs-identifier hs-type"
+ >Right</span
+ ></span
><span
> </span
- ><a name=""
- ><a href="#"
- ><span class="hs-identifier"
- >a</span
- ></a
- ></a
+ ><span id="local-6989586621679043451"
+ ><span class="annot"
+ ><span class="annottext"
+ >a :: a
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >a</span
+ ></a
+ ></span
+ ></span
><span class="hs-special"
>)</span
><span
@@ -935,31 +1231,59 @@
>=</span
><span
> </span
- ><span class="hs-identifier hs-var"
- >Right</span
+ ><span class="annot"
+ ><span class="annottext"
+ >(b -&gt; a) -&gt; Either (a -&gt; b) (b -&gt; a)
+forall a b. b -&gt; Either a b
+</span
+ ><span class="hs-identifier hs-var"
+ >Right</span
+ ></span
><span
> </span
- ><span class="hs-operator hs-var"
- >$</span
+ ><span class="annot"
+ ><span class="annottext"
+ >((b -&gt; a) -&gt; Either (a -&gt; b) (b -&gt; a))
+-&gt; (b -&gt; a) -&gt; Either (a -&gt; b) (b -&gt; a)
+forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span
+ ><span class="hs-operator hs-var"
+ >$</span
+ ></span
><span
> </span
- ><span class="hs-identifier hs-var"
- >const</span
+ ><span class="annot"
+ ><span class="annottext"
+ >a -&gt; b -&gt; a
+forall a b. a -&gt; b -&gt; a
+</span
+ ><span class="hs-identifier hs-var"
+ >const</span
+ ></span
><span
> </span
- ><a href="#"
- ><span class="hs-identifier hs-var"
- >a</span
- ></a
+ ><span class="annot"
+ ><span class="annottext"
+ >a
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >a</span
+ ></a
+ ></span
><span
>
</span
- ><a name="line-37"
- ></a
+ ><span id="line-37"
+ ></span
><span
> </span
- ><span class="hs-identifier"
- >plugh</span
+ ><span class="annot"
+ ><a href="Classes.html#plugh"
+ ><span class="hs-identifier hs-var"
+ >plugh</span
+ ></a
+ ></span
><span
> </span
><span class="hs-identifier"
@@ -968,16 +1292,23 @@
> </span
><span class="hs-special"
>(</span
- ><span class="hs-identifier hs-var"
- >Left</span
+ ><span class="annot"
+ ><span class="hs-identifier hs-type"
+ >Left</span
+ ></span
><span
> </span
- ><a name=""
- ><a href="#"
- ><span class="hs-identifier"
- >b</span
- ></a
- ></a
+ ><span id="local-6989586621679043450"
+ ><span class="annot"
+ ><span class="annottext"
+ >b :: b
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >b</span
+ ></a
+ ></span
+ ></span
><span class="hs-special"
>)</span
><span
@@ -986,31 +1317,59 @@
>=</span
><span
> </span
- ><span class="hs-identifier hs-var"
- >Left</span
+ ><span class="annot"
+ ><span class="annottext"
+ >(a -&gt; b) -&gt; Either (a -&gt; b) (b -&gt; a)
+forall a b. a -&gt; Either a b
+</span
+ ><span class="hs-identifier hs-var"
+ >Left</span
+ ></span
><span
> </span
- ><span class="hs-operator hs-var"
- >$</span
+ ><span class="annot"
+ ><span class="annottext"
+ >((a -&gt; b) -&gt; Either (a -&gt; b) (b -&gt; a))
+-&gt; (a -&gt; b) -&gt; Either (a -&gt; b) (b -&gt; a)
+forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span
+ ><span class="hs-operator hs-var"
+ >$</span
+ ></span
><span
> </span
- ><span class="hs-identifier hs-var"
- >const</span
+ ><span class="annot"
+ ><span class="annottext"
+ >b -&gt; a -&gt; b
+forall a b. a -&gt; b -&gt; a
+</span
+ ><span class="hs-identifier hs-var"
+ >const</span
+ ></span
><span
> </span
- ><a href="#"
- ><span class="hs-identifier hs-var"
- >b</span
- ></a
+ ><span class="annot"
+ ><span class="annottext"
+ >b
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >b</span
+ ></a
+ ></span
><span
>
</span
- ><a name="line-38"
- ></a
+ ><span id="line-38"
+ ></span
><span
> </span
- ><span class="hs-identifier"
- >plugh</span
+ ><span class="annot"
+ ><a href="Classes.html#plugh"
+ ><span class="hs-identifier hs-var"
+ >plugh</span
+ ></a
+ ></span
><span
> </span
><span class="hs-identifier"
@@ -1019,16 +1378,23 @@
> </span
><span class="hs-special"
>(</span
- ><span class="hs-identifier hs-var"
- >Right</span
+ ><span class="annot"
+ ><span class="hs-identifier hs-type"
+ >Right</span
+ ></span
><span
> </span
- ><a name=""
- ><a href="#"
- ><span class="hs-identifier"
- >b</span
- ></a
- ></a
+ ><span id="local-6989586621679043449"
+ ><span class="annot"
+ ><span class="annottext"
+ >b :: b
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >b</span
+ ></a
+ ></span
+ ></span
><span class="hs-special"
>)</span
><span
@@ -1037,27 +1403,51 @@
>=</span
><span
> </span
- ><span class="hs-identifier hs-var"
- >Left</span
+ ><span class="annot"
+ ><span class="annottext"
+ >(a -&gt; b) -&gt; Either (a -&gt; b) (b -&gt; a)
+forall a b. a -&gt; Either a b
+</span
+ ><span class="hs-identifier hs-var"
+ >Left</span
+ ></span
><span
> </span
- ><span class="hs-operator hs-var"
- >$</span
+ ><span class="annot"
+ ><span class="annottext"
+ >((a -&gt; b) -&gt; Either (a -&gt; b) (b -&gt; a))
+-&gt; (a -&gt; b) -&gt; Either (a -&gt; b) (b -&gt; a)
+forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span
+ ><span class="hs-operator hs-var"
+ >$</span
+ ></span
><span
> </span
- ><span class="hs-identifier hs-var"
- >const</span
+ ><span class="annot"
+ ><span class="annottext"
+ >b -&gt; a -&gt; b
+forall a b. a -&gt; b -&gt; a
+</span
+ ><span class="hs-identifier hs-var"
+ >const</span
+ ></span
><span
> </span
- ><a href="#"
- ><span class="hs-identifier hs-var"
- >b</span
- ></a
+ ><span class="annot"
+ ><span class="annottext"
+ >b
+</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >b</span
+ ></a
+ ></span
><span
>
</span
- ><a name="line-39"
- ></a
+ ><span id="line-39"
+ ></span
></pre
></body
></html