diff options
author | Alec Theriault <alec.theriault@gmail.com> | 2019-01-31 01:37:25 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-31 01:37:25 -0800 |
commit | 1b26460fb3b5df5215cc1e6715661cbc7c950085 (patch) | |
tree | 0b5ac6285ecf432021e8365567d48eeb6249f44b /hypsrc-test/ref/src/Operators.html | |
parent | 4c02498a24e6ceb775528bed043b66340296ad06 (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/Operators.html')
-rw-r--r-- | hypsrc-test/ref/src/Operators.html | 1540 |
1 files changed, 924 insertions, 616 deletions
diff --git a/hypsrc-test/ref/src/Operators.html b/hypsrc-test/ref/src/Operators.html index 8ce0b9ce..403954cf 100644 --- a/hypsrc-test/ref/src/Operators.html +++ b/hypsrc-test/ref/src/Operators.html @@ -19,311 +19,414 @@ ><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 class="hs-special" - >(</span - ><span class="hs-operator" - >+++</span - ><span class="hs-special" - >)</span - ><span - > </span - ><span class="hs-glyph" - >::</span + ><span id="line-4" + ></span + ><span id="local-6989586621679043657" + ><span class="annot" + ><a href="Operators.html#%2B%2B%2B" + ><span class="hs-operator hs-type" + >(+++)</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >::</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-glyph" + >-></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-glyph" + >-></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-special" - >[</span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span class="hs-special" - >]</span - ><span - > </span - ><span class="hs-glyph" - >-></span - ><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 id="line-5" + ></span + ><span id="local-6989586621679043655" + ><span class="annot" + ><span class="annottext" + >a :: [a] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >a</span + ></a + ></span + ></span + ><span + > </span + ><span id="%2B%2B%2B" + ><span class="annot" + ><span class="annottext" + >+++ :: [a] -> [a] -> [a] +</span + ><a href="Operators.html#%2B%2B%2B" + ><span class="hs-operator hs-var hs-var" + >+++</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043654" + ><span class="annot" + ><span class="annottext" + >b :: [a] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >b</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" - >-></span + >=</span ><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 class="annot" + ><span class="annottext" + >[a] </span - ><a name="line-5" - ></a - ><a name="" - ><a href="#" - ><span class="hs-identifier" + ><a href="#" + ><span class="hs-identifier hs-var" >a</span ></a - ></a + ></span ><span > </span - ><a name="%2B%2B%2B" - ><a href="Operators.html#%2B%2B%2B" - ><span class="hs-operator" - >+++</span - ></a - ></a + ><span class="annot" + ><span class="annottext" + >[a] -> [a] -> [a] +forall a. [a] -> [a] -> [a] +</span + ><span class="hs-operator hs-var" + >++</span + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" + ><span class="annot" + ><span class="annottext" + >[a] +</span + ><a href="#" + ><span class="hs-identifier hs-var" >b</span ></a - ></a - ><span - > </span - ><span class="hs-glyph" - >=</span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >a</span - ></a - ><span - > </span - ><span class="hs-operator hs-var" - >++</span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >b</span - ></a + ></span ><span > </span - ><span class="hs-operator hs-var" - >++</span + ><span class="annot" + ><span class="annottext" + >[a] -> [a] -> [a] +forall a. [a] -> [a] -> [a] +</span + ><span class="hs-operator hs-var" + >++</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-6" - ></a + ><span id="line-6" + ></span ><span > </span - ><a name="line-7" - ></a - ><span class="hs-special" - >(</span - ><span class="hs-operator" - >$$$</span - ><span class="hs-special" - >)</span - ><span - > </span - ><span class="hs-glyph" - >::</span + ><span id="line-7" + ></span + ><span id="local-6989586621679043653" + ><span class="annot" + ><a href="Operators.html#%24%24%24" + ><span class="hs-operator hs-type" + >($$$)</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >::</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-glyph" + >-></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-glyph" + >-></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-special" - >[</span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span class="hs-special" - >]</span - ><span - > </span - ><span class="hs-glyph" - >-></span - ><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 id="line-8" + ></span + ><span id="local-6989586621679043651" + ><span class="annot" + ><span class="annottext" + >a :: [a] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >a</span + ></a + ></span + ></span + ><span + > </span + ><span id="%24%24%24" + ><span class="annot" + ><span class="annottext" + >$$$ :: [a] -> [a] -> [a] +</span + ><a href="Operators.html#%24%24%24" + ><span class="hs-operator hs-var hs-var" + >$$$</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043650" + ><span class="annot" + ><span class="annottext" + >b :: [a] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >b</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" - >-></span + >=</span ><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 class="annot" + ><span class="annottext" + >[a] </span - ><a name="line-8" - ></a - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span + ><a href="#" + ><span class="hs-identifier hs-var" + >b</span ></a - ></a + ></span ><span > </span - ><a name="%24%24%24" - ><a href="Operators.html#%24%24%24" - ><span class="hs-operator" - >$$$</span + ><span class="annot" + ><span class="annottext" + >[a] -> [a] -> [a] +forall a. [a] -> [a] -> [a] +</span + ><a href="Operators.html#%2B%2B%2B" + ><span class="hs-operator hs-var" + >+++</span ></a - ></a + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >b</span + ><span class="annot" + ><span class="annottext" + >[a] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >a</span ></a - ></a - ><span - > </span - ><span class="hs-glyph" - >=</span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >b</span - ></a - ><span - > </span - ><a href="Operators.html#%2B%2B%2B" - ><span class="hs-operator hs-var" - >+++</span - ></a - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >a</span - ></a + ></span ><span > </span - ><a name="line-9" - ></a + ><span id="line-9" + ></span ><span > </span - ><a name="line-10" - ></a - ><span class="hs-special" - >(</span - ><span class="hs-operator" - >***</span - ><span class="hs-special" - >)</span - ><span - > </span - ><span class="hs-glyph" - >::</span - ><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-glyph" - >-></span - ><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-glyph" - >-></span - ><span - > </span - ><span class="hs-special" - >[</span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span class="hs-special" - >]</span + ><span id="line-10" + ></span + ><span id="local-6989586621679043649" + ><span class="annot" + ><a href="Operators.html#%2A%2A%2A" + ><span class="hs-operator hs-type" + >(***)</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >::</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-glyph" + >-></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-glyph" + >-></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 - ><a name="line-11" - ></a - ><span class="hs-special" - >(</span - ><a name="%2A%2A%2A" - ><a href="Operators.html#%2A%2A%2A" - ><span class="hs-operator" - >***</span - ></a - ></a - ><span class="hs-special" - >)</span - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a + ><span id="line-11" + ></span + ><span id="%2A%2A%2A" + ><span class="annot" + ><span class="annottext" + >*** :: [a] -> [a] -> [a] +</span + ><a href="Operators.html#%2A%2A%2A" + ><span class="hs-operator hs-var hs-var" + >(***)</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043647" + ><span class="annot" + ><span class="annottext" + >a :: [a] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >a</span + ></a + ></span + ></span ><span > </span ><span class="hs-special" @@ -336,43 +439,60 @@ >=</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-12" - ></a - ><span class="hs-special" - >(</span - ><span class="hs-operator" - >***</span - ><span class="hs-special" - >)</span + ><span id="line-12" + ></span + ><span class="annot" + ><a href="Operators.html#%2A%2A%2A" + ><span class="hs-operator hs-var" + >(***)</span + ></a + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a + ><span id="local-6989586621679043646" + ><span class="annot" + ><span class="annottext" + >a :: [a] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >a</span + ></a + ></span + ></span ><span > </span ><span class="hs-special" >(</span ><span class="hs-identifier" >_</span - ><span class="hs-glyph" - >:</span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >b</span - ></a - ></a + ><span class="annot" + ><span class="hs-glyph hs-type" + >:</span + ></span + ><span id="local-6989586621679043645" + ><span class="annot" + ><span class="annottext" + >b :: [a] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >b</span + ></a + ></span + ></span ><span class="hs-special" >)</span ><span @@ -381,455 +501,643 @@ >=</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 href="Operators.html#%2B%2B%2B" - ><span class="hs-operator hs-var" - >+++</span - ></a + ><span class="annot" + ><span class="annottext" + >[a] -> [a] -> [a] +forall a. [a] -> [a] -> [a] +</span + ><a href="Operators.html#%2B%2B%2B" + ><span class="hs-operator hs-var" + >+++</span + ></a + ></span ><span > </span ><span class="hs-special" >(</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 href="Operators.html#%2A%2A%2A" - ><span class="hs-operator hs-var" - >***</span - ></a + ><span class="annot" + ><span class="annottext" + >[a] -> [a] -> [a] +forall a. [a] -> [a] -> [a] +</span + ><a href="Operators.html#%2A%2A%2A" + ><span class="hs-operator hs-var" + >***</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >b</span - ></a + ><span class="annot" + ><span class="annottext" + >[a] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >b</span + ></a + ></span ><span class="hs-special" >)</span ><span > </span - ><a name="line-13" - ></a + ><span id="line-13" + ></span ><span > </span - ><a name="line-14" - ></a - ><span class="hs-special" - >(</span - ><span class="hs-operator" - >*/\*</span - ><span class="hs-special" - >)</span - ><span - > </span - ><span class="hs-glyph" - >::</span - ><span - > </span - ><span class="hs-special" - >[</span - ><span class="hs-special" - >[</span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span class="hs-special" - >]</span - ><span class="hs-special" - >]</span - ><span - > </span - ><span class="hs-glyph" - >-></span - ><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-glyph" - >-></span - ><span - > </span - ><span class="hs-special" - >[</span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span class="hs-special" - >]</span + ><span id="line-14" + ></span + ><span id="local-6989586621679043666" + ><span class="annot" + ><a href="Operators.html#%2A%2F%5C%2A" + ><span class="hs-operator hs-type" + >(*/\*)</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >::</span + ><span + > </span + ><span class="hs-special" + >[</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 class="hs-special" + >]</span + ><span + > </span + ><span class="hs-glyph" + >-></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-glyph" + >-></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 - ><a name="line-15" - ></a - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a - ><span - > </span - ><a name="%2A%2F%5C%2A" - ><a href="Operators.html#%2A%2F%5C%2A" - ><span class="hs-operator" - >*/\*</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >b</span - ></a - ></a + ><span id="line-15" + ></span + ><span id="local-6989586621679043643" + ><span class="annot" + ><span class="annottext" + >a :: [[a]] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >a</span + ></a + ></span + ></span + ><span + > </span + ><span id="%2A%2F%5C%2A" + ><span class="annot" + ><span class="annottext" + >*/\* :: [[a]] -> [a] -> [a] +</span + ><a href="Operators.html#%2A%2F%5C%2A" + ><span class="hs-operator hs-var hs-var" + >*/\*</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043642" + ><span class="annot" + ><span class="annottext" + >b :: [a] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >b</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><span class="hs-identifier hs-var" - >concatMap</span + ><span class="annot" + ><span class="annottext" + >([a] -> [a]) -> [[a]] -> [a] +forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b] +</span + ><span class="hs-identifier hs-var" + >concatMap</span + ></span ><span > </span ><span class="hs-special" >(</span - ><a href="Operators.html#%2A%2A%2A" - ><span class="hs-operator hs-var" - >***</span - ></a + ><span class="annot" + ><span class="annottext" + >[a] -> [a] -> [a] +forall a. [a] -> [a] -> [a] +</span + ><a href="Operators.html#%2A%2A%2A" + ><span class="hs-operator hs-var" + >***</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >b</span - ></a + ><span class="annot" + ><span class="annottext" + >[a] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >b</span + ></a + ></span ><span class="hs-special" >)</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-16" - ></a + ><span id="line-16" + ></span ><span > </span - ><a name="line-17" - ></a - ><span class="hs-special" - >(</span - ><span class="hs-operator" - >**/\**</span - ><span class="hs-special" - >)</span + ><span id="line-17" + ></span + ><span id="local-6989586621679043640" + ><span class="annot" + ><a href="Operators.html#%2A%2A%2F%5C%2A%2A" + ><span class="hs-operator hs-type" + >(**/\**)</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >::</span + ><span + > </span + ><span class="hs-special" + >[</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 class="hs-special" + >]</span + ><span + > </span + ><span class="hs-glyph" + >-></span + ><span + > </span + ><span class="hs-special" + >[</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 class="hs-special" + >]</span + ><span + > </span + ><span class="hs-glyph" + >-></span + ><span + > </span + ><span class="hs-special" + >[</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 class="hs-special" + >]</span + ></span ><span - > </span - ><span class="hs-glyph" - >::</span - ><span - > </span - ><span class="hs-special" - >[</span - ><span class="hs-special" - >[</span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span class="hs-special" - >]</span - ><span class="hs-special" - >]</span + > +</span + ><span id="line-18" + ></span + ><span id="local-6989586621679043638" + ><span class="annot" + ><span class="annottext" + >a :: [[a]] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >a</span + ></a + ></span + ></span + ><span + > </span + ><span id="%2A%2A%2F%5C%2A%2A" + ><span class="annot" + ><span class="annottext" + >**/\** :: [[a]] -> [[a]] -> [[a]] +</span + ><a href="Operators.html#%2A%2A%2F%5C%2A%2A" + ><span class="hs-operator hs-var hs-var" + >**/\**</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043637" + ><span class="annot" + ><span class="annottext" + >b :: [[a]] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >b</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" - >-></span + >=</span ><span > </span - ><span class="hs-special" - >[</span - ><span class="hs-special" - >[</span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span class="hs-special" - >]</span - ><span class="hs-special" - >]</span + ><span class="annot" + ><span class="annottext" + >([[a]] -> [a] -> [a]) -> [[[a]]] -> [[a]] -> [[a]] +forall a b c. (a -> b -> c) -> [a] -> [b] -> [c] +</span + ><span class="hs-identifier hs-var" + >zipWith</span + ></span ><span > </span - ><span class="hs-glyph" - >-></span + ><span class="annot" + ><span class="annottext" + >[[a]] -> [a] -> [a] +forall a. [[a]] -> [a] -> [a] +</span + ><a href="Operators.html#%2A%2F%5C%2A" + ><span class="hs-operator hs-var" + >(*/\*)</span + ></a + ></span ><span > </span ><span class="hs-special" >[</span - ><span class="hs-special" - >[</span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span class="hs-special" - >]</span - ><span class="hs-special" - >]</span - ><span - > + ><span class="annot" + ><span class="annottext" + >[[a]] </span - ><a name="line-18" - ></a - ><a name="" - ><a href="#" - ><span class="hs-identifier" + ><a href="#" + ><span class="hs-identifier hs-var" >a</span ></a - ></a + ></span ><span > </span - ><a name="%2A%2A%2F%5C%2A%2A" - ><a href="Operators.html#%2A%2A%2F%5C%2A%2A" - ><span class="hs-operator" - >**/\**</span + ><span class="annot" + ><span class="annottext" + >[[a]] -> [[a]] -> [[a]] +forall a. [a] -> [a] -> [a] +</span + ><a href="Operators.html#%2B%2B%2B" + ><span class="hs-operator hs-var" + >+++</span ></a - ></a + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" + ><span class="annot" + ><span class="annottext" + >[[a]] +</span + ><a href="#" + ><span class="hs-identifier hs-var" >b</span ></a - ></a - ><span - > </span - ><span class="hs-glyph" - >=</span - ><span - > </span - ><span class="hs-identifier hs-var" - >zipWith</span - ><span - > </span - ><span class="hs-special" - >(</span - ><a href="Operators.html#%2A%2F%5C%2A" - ><span class="hs-operator hs-var" - >*/\*</span - ></a - ><span class="hs-special" - >)</span - ><span - > </span - ><span class="hs-special" - >[</span - ><a href="#" - ><span class="hs-identifier hs-var" - >a</span - ></a - ><span - > </span - ><a href="Operators.html#%2B%2B%2B" - ><span class="hs-operator hs-var" - >+++</span - ></a - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >b</span - ></a + ></span ><span class="hs-special" >]</span ><span > </span ><span class="hs-special" >(</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 href="Operators.html#%24%24%24" - ><span class="hs-operator hs-var" - >$$$</span - ></a + ><span class="annot" + ><span class="annottext" + >[[a]] -> [[a]] -> [[a]] +forall a. [a] -> [a] -> [a] +</span + ><a href="Operators.html#%24%24%24" + ><span class="hs-operator hs-var" + >$$$</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >b</span - ></a + ><span class="annot" + ><span class="annottext" + >[[a]] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >b</span + ></a + ></span ><span class="hs-special" >)</span ><span > </span - ><a name="line-19" - ></a + ><span id="line-19" + ></span ><span > </span - ><a name="line-20" - ></a + ><span id="line-20" + ></span ><span > </span - ><a name="line-21" - ></a - ><span class="hs-special" - >(</span - ><span class="hs-operator" - >#.#</span - ><span class="hs-special" - >)</span - ><span - > </span - ><span class="hs-glyph" - >::</span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span - > </span - ><span class="hs-glyph" - >-></span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >b</span - ></a - ><span - > </span - ><span class="hs-glyph" - >-></span - ><span - > </span - ><span class="hs-special" - >(</span - ><a href="#" - ><span class="hs-identifier hs-type" - >c</span - ></a - ><span - > </span - ><span class="hs-glyph" - >-></span - ><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 - ><a href="#" - ><span class="hs-identifier hs-type" - >b</span - ></a - ><span class="hs-special" - >)</span - ><span class="hs-special" - >)</span + ><span id="line-21" + ></span + ><span id="local-6989586621679043633" + ><span id="local-6989586621679043634" + ><span id="local-6989586621679043635" + ><span class="annot" + ><a href="Operators.html#%23.%23" + ><span class="hs-operator hs-type" + >(#.#)</span + ></a + ></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 + ><span + > </span + ><span class="hs-glyph" + >-></span + ><span + > </span + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >-></span + ><span + > </span + ><span class="hs-special" + >(</span + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >c</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >-></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="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span + ><span class="hs-special" + >)</span + ><span class="hs-special" + >)</span + ></span + ></span + ></span ><span > </span - ><a name="line-22" - ></a - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a - ><span - > </span - ><a name="%23.%23" - ><a href="Operators.html#%23.%23" - ><span class="hs-operator" - >#.#</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >b</span - ></a - ></a + ><span id="line-22" + ></span + ><span id="local-6989586621679043631" + ><span class="annot" + ><span class="annottext" + >a :: a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >a</span + ></a + ></span + ></span + ><span + > </span + ><span id="%23.%23" + ><span class="annot" + ><span class="annottext" + >#.# :: a -> b -> c -> (a, b) +</span + ><a href="Operators.html#%23.%23" + ><span class="hs-operator hs-var hs-var" + >#.#</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043630" + ><span class="annot" + ><span class="annottext" + >b :: b +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >b</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><span class="hs-identifier hs-var" - >const</span + ><span class="annot" + ><span class="annottext" + >(a, b) -> c -> (a, b) +forall a b. a -> b -> a +</span + ><span class="hs-identifier hs-var" + >const</span + ></span ><span > </span - ><span class="hs-operator hs-var" - >$</span + ><span class="annot" + ><span class="annottext" + >((a, b) -> c -> (a, b)) -> (a, b) -> c -> (a, b) +forall a b. (a -> b) -> a -> b +</span + ><span class="hs-operator hs-var" + >$</span + ></span ><span > </span ><span class="hs-special" >(</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 class="hs-special" >,</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 class="hs-special" >)</span ><span > </span - ><a name="line-23" - ></a + ><span id="line-23" + ></span ></pre ></body ></html |