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/Constructors.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/Constructors.html')
-rw-r--r-- | hypsrc-test/ref/src/Constructors.html | 1268 |
1 files changed, 835 insertions, 433 deletions
diff --git a/hypsrc-test/ref/src/Constructors.html b/hypsrc-test/ref/src/Constructors.html index e35ca0b1..6cdf07db 100644 --- a/hypsrc-test/ref/src/Constructors.html +++ b/hypsrc-test/ref/src/Constructors.html @@ -19,375 +19,489 @@ ><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" >data</span ><span > </span - ><a name="Foo" - ><a href="Constructors.html#Foo" - ><span class="hs-identifier" - >Foo</span - ></a - ></a + ><span id="Foo" + ><span class="annot" + ><a href="Constructors.html#Foo" + ><span class="hs-identifier hs-var" + >Foo</span + ></a + ></span + ></span ><span > </span - ><a name="line-5" - ></a + ><span id="line-5" + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a name="Bar" - ><a href="Constructors.html#Bar" - ><span class="hs-identifier" - >Bar</span - ></a - ></a + ><span id="Bar" + ><span class="annot" + ><a href="Constructors.html#Bar" + ><span class="hs-identifier hs-var" + >Bar</span + ></a + ></span + ></span ><span > </span - ><a name="line-6" - ></a + ><span id="line-6" + ></span ><span > </span ><span class="hs-glyph" >|</span ><span > </span - ><a name="Baz" - ><a href="Constructors.html#Baz" - ><span class="hs-identifier" - >Baz</span - ></a - ></a + ><span id="Baz" + ><span class="annot" + ><a href="Constructors.html#Baz" + ><span class="hs-identifier hs-var" + >Baz</span + ></a + ></span + ></span ><span > </span - ><a name="line-7" - ></a + ><span id="line-7" + ></span ><span > </span ><span class="hs-glyph" >|</span ><span > </span - ><a name="Quux" - ><a href="Constructors.html#Quux" - ><span class="hs-identifier" - >Quux</span - ></a - ></a + ><span id="Quux" + ><span class="annot" + ><a href="Constructors.html#Quux" + ><span class="hs-identifier hs-var" + >Quux</span + ></a + ></span + ></span ><span > </span + ><span class="annot" ><a href="Constructors.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 - ><a name="line-8" - ></a + ><span id="line-8" + ></span ><span > </span - ><a name="line-9" - ></a + ><span id="line-9" + ></span ><span class="hs-keyword" >newtype</span ><span > </span - ><a name="Norf" - ><a href="Constructors.html#Norf" - ><span class="hs-identifier" - >Norf</span - ></a - ></a + ><span id="Norf" + ><span class="annot" + ><a href="Constructors.html#Norf" + ><span class="hs-identifier hs-var" + >Norf</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a name="Norf" - ><a href="Constructors.html#Norf" - ><span class="hs-identifier" - >Norf</span - ></a - ></a + ><span id="Norf" + ><span class="annot" + ><a href="Constructors.html#Norf" + ><span class="hs-identifier hs-var" + >Norf</span + ></a + ></span + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Constructors.html#Foo" - ><span class="hs-identifier hs-type" - >Foo</span - ></a + ><span class="hs-identifier hs-type" + >Foo</span + ></a + ></span ><span class="hs-special" >,</span ><span > </span ><span class="hs-special" >[</span + ><span class="annot" ><a href="Constructors.html#Foo" - ><span class="hs-identifier hs-type" - >Foo</span - ></a + ><span class="hs-identifier hs-type" + >Foo</span + ></a + ></span ><span class="hs-special" >]</span ><span class="hs-special" >,</span ><span > </span + ><span class="annot" ><a href="Constructors.html#Foo" - ><span class="hs-identifier hs-type" - >Foo</span - ></a + ><span class="hs-identifier hs-type" + >Foo</span + ></a + ></span ><span class="hs-special" >)</span ><span > </span - ><a name="line-10" - ></a + ><span id="line-10" + ></span ><span > </span - ><a name="line-11" - ></a + ><span id="line-11" + ></span ><span > </span - ><a name="line-12" - ></a - ><span class="hs-identifier" - >bar</span + ><span id="line-12" + ></span + ><span class="annot" + ><a href="Constructors.html#bar" + ><span class="hs-identifier hs-type" + >bar</span + ></a + ></span ><span class="hs-special" >,</span ><span > </span - ><span class="hs-identifier" - >baz</span + ><span class="annot" + ><a href="Constructors.html#baz" + ><span class="hs-identifier hs-type" + >baz</span + ></a + ></span ><span class="hs-special" >,</span ><span > </span - ><span class="hs-identifier" - >quux</span + ><span class="annot" + ><a href="Constructors.html#quux" + ><span class="hs-identifier hs-type" + >quux</span + ></a + ></span ><span > </span ><span class="hs-glyph" >::</span ><span > </span + ><span class="annot" ><a href="Constructors.html#Foo" - ><span class="hs-identifier hs-type" - >Foo</span - ></a + ><span class="hs-identifier hs-type" + >Foo</span + ></a + ></span ><span > </span - ><a name="line-13" - ></a - ><a name="bar" - ><a href="Constructors.html#bar" - ><span class="hs-identifier" - >bar</span - ></a - ></a + ><span id="line-13" + ></span + ><span id="bar" + ><span class="annot" + ><span class="annottext" + >bar :: Foo +</span + ><a href="Constructors.html#bar" + ><span class="hs-identifier hs-var hs-var" + >bar</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="Constructors.html#Bar" - ><span class="hs-identifier hs-var" - >Bar</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo +</span + ><a href="Constructors.html#Bar" + ><span class="hs-identifier hs-var" + >Bar</span + ></a + ></span ><span > </span - ><a name="line-14" - ></a - ><a name="baz" - ><a href="Constructors.html#baz" - ><span class="hs-identifier" - >baz</span - ></a - ></a + ><span id="line-14" + ></span + ><span id="baz" + ><span class="annot" + ><span class="annottext" + >baz :: Foo +</span + ><a href="Constructors.html#baz" + ><span class="hs-identifier hs-var hs-var" + >baz</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="Constructors.html#Baz" - ><span class="hs-identifier hs-var" - >Baz</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo +</span + ><a href="Constructors.html#Baz" + ><span class="hs-identifier hs-var" + >Baz</span + ></a + ></span ><span > </span - ><a name="line-15" - ></a - ><a name="quux" - ><a href="Constructors.html#quux" - ><span class="hs-identifier" - >quux</span - ></a - ></a + ><span id="line-15" + ></span + ><span id="quux" + ><span class="annot" + ><span class="annottext" + >quux :: Foo +</span + ><a href="Constructors.html#quux" + ><span class="hs-identifier hs-var hs-var" + >quux</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="Constructors.html#Quux" - ><span class="hs-identifier hs-var" - >Quux</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo -> Int -> Foo +</span + ><a href="Constructors.html#Quux" + ><span class="hs-identifier hs-var" + >Quux</span + ></a + ></span ><span > </span - ><a href="Constructors.html#quux" - ><span class="hs-identifier hs-var" - >quux</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo +</span + ><a href="Constructors.html#quux" + ><span class="hs-identifier hs-var" + >quux</span + ></a + ></span ><span > </span + ><span class="annot" ><span class="hs-number" - >0</span + >0</span + ></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 > </span - ><a name="line-18" - ></a - ><span class="hs-identifier" - >unfoo</span + ><span id="line-18" + ></span + ><span class="annot" + ><a href="Constructors.html#unfoo" + ><span class="hs-identifier hs-type" + >unfoo</span + ></a + ></span ><span > </span ><span class="hs-glyph" >::</span ><span > </span + ><span class="annot" ><a href="Constructors.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="hs-glyph" >-></span ><span > </span + ><span class="annot" ><span class="hs-identifier hs-type" - >Int</span + >Int</span + ></span ><span > </span - ><a name="line-19" - ></a - ><a name="unfoo" - ><a href="Constructors.html#unfoo" - ><span class="hs-identifier" - >unfoo</span - ></a - ></a + ><span id="line-19" + ></span + ><span id="unfoo" + ><span class="annot" + ><span class="annottext" + >unfoo :: Foo -> Int +</span + ><a href="Constructors.html#unfoo" + ><span class="hs-identifier hs-var hs-var" + >unfoo</span + ></a + ></span + ></span ><span > </span + ><span class="annot" ><a href="Constructors.html#Bar" - ><span class="hs-identifier hs-var" - >Bar</span - ></a + ><span class="hs-identifier hs-type" + >Bar</span + ></a + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >0</span + >0</span + ></span ><span > </span - ><a name="line-20" - ></a - ><span class="hs-identifier" - >unfoo</span + ><span id="line-20" + ></span + ><span class="annot" + ><a href="Constructors.html#unfoo" + ><span class="hs-identifier hs-var" + >unfoo</span + ></a + ></span ><span > </span + ><span class="annot" ><a href="Constructors.html#Baz" - ><span class="hs-identifier hs-var" - >Baz</span - ></a + ><span class="hs-identifier hs-type" + >Baz</span + ></a + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >0</span + >0</span + ></span ><span > </span - ><a name="line-21" - ></a - ><span class="hs-identifier" - >unfoo</span + ><span id="line-21" + ></span + ><span class="annot" + ><a href="Constructors.html#unfoo" + ><span class="hs-identifier hs-var" + >unfoo</span + ></a + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Constructors.html#Quux" - ><span class="hs-identifier hs-var" - >Quux</span - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >foo</span + ><span class="hs-identifier hs-type" + >Quux</span ></a - ></a + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >n</span - ></a - ></a + ><span id="local-6989586621679043545" + ><span class="annot" + ><span class="annottext" + >foo :: Foo +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >foo</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043544" + ><span class="annot" + ><span class="annottext" + >n :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >n</span + ></a + ></span + ></span ><span class="hs-special" >)</span ><span @@ -396,61 +510,96 @@ >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >42</span + >42</span + ></span ><span > </span - ><span class="hs-operator hs-var" - >*</span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +forall a. Num a => a -> a -> a +</span + ><span class="hs-operator hs-var" + >*</span + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >n</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >n</span + ></a + ></span ><span > </span - ><span class="hs-operator hs-var" - >+</span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +forall a. Num a => a -> a -> a +</span + ><span class="hs-operator hs-var" + >+</span + ></span ><span > </span - ><a href="Constructors.html#unfoo" - ><span class="hs-identifier hs-var" - >unfoo</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo -> Int +</span + ><a href="Constructors.html#unfoo" + ><span class="hs-identifier hs-var" + >unfoo</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >foo</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >foo</span + ></a + ></span ><span > </span - ><a name="line-22" - ></a + ><span id="line-22" + ></span ><span > </span - ><a name="line-23" - ></a + ><span id="line-23" + ></span ><span > </span - ><a name="line-24" - ></a - ><span class="hs-identifier" - >unnorf</span + ><span id="line-24" + ></span + ><span class="annot" + ><a href="Constructors.html#unnorf" + ><span class="hs-identifier hs-type" + >unnorf</span + ></a + ></span ><span > </span ><span class="hs-glyph" >::</span ><span > </span + ><span class="annot" ><a href="Constructors.html#Norf" - ><span class="hs-identifier hs-type" - >Norf</span - ></a + ><span class="hs-identifier hs-type" + >Norf</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -459,57 +608,75 @@ > </span ><span class="hs-special" >[</span + ><span class="annot" ><a href="Constructors.html#Foo" - ><span class="hs-identifier hs-type" - >Foo</span - ></a + ><span class="hs-identifier hs-type" + >Foo</span + ></a + ></span ><span class="hs-special" >]</span ><span > </span - ><a name="line-25" - ></a - ><a name="unnorf" - ><a href="Constructors.html#unnorf" - ><span class="hs-identifier" - >unnorf</span - ></a - ></a + ><span id="line-25" + ></span + ><span id="unnorf" + ><span class="annot" + ><span class="annottext" + >unnorf :: Norf -> [Foo] +</span + ><a href="Constructors.html#unnorf" + ><span class="hs-identifier hs-var hs-var" + >unnorf</span + ></a + ></span + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Constructors.html#Norf" - ><span class="hs-identifier hs-var" - >Norf</span - ></a + ><span class="hs-identifier hs-type" + >Norf</span + ></a + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Constructors.html#Bar" - ><span class="hs-identifier hs-var" - >Bar</span - ></a + ><span class="hs-identifier hs-type" + >Bar</span + ></a + ></span ><span class="hs-special" >,</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >xs</span - ></a - ></a + ><span id="local-6989586621679043540" + ><span class="annot" + ><span class="annottext" + >xs :: [Foo] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >xs</span + ></a + ></span + ></span ><span class="hs-special" >,</span ><span > </span + ><span class="annot" ><a href="Constructors.html#Bar" - ><span class="hs-identifier hs-var" - >Bar</span - ></a + ><span class="hs-identifier hs-type" + >Bar</span + ></a + ></span ><span class="hs-special" >)</span ><span class="hs-special" @@ -520,51 +687,71 @@ >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >xs</span - ></a + ><span class="annot" + ><span class="annottext" + >[Foo] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >xs</span + ></a + ></span ><span > </span - ><a name="line-26" - ></a - ><span class="hs-identifier" - >unnorf</span + ><span id="line-26" + ></span + ><span class="annot" + ><a href="Constructors.html#unnorf" + ><span class="hs-identifier hs-var" + >unnorf</span + ></a + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Constructors.html#Norf" - ><span class="hs-identifier hs-var" - >Norf</span - ></a + ><span class="hs-identifier hs-type" + >Norf</span + ></a + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Constructors.html#Baz" - ><span class="hs-identifier hs-var" - >Baz</span - ></a + ><span class="hs-identifier hs-type" + >Baz</span + ></a + ></span ><span class="hs-special" >,</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >xs</span - ></a - ></a + ><span id="local-6989586621679043539" + ><span class="annot" + ><span class="annottext" + >xs :: [Foo] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >xs</span + ></a + ></span + ></span ><span class="hs-special" >,</span ><span > </span + ><span class="annot" ><a href="Constructors.html#Baz" - ><span class="hs-identifier hs-var" - >Baz</span - ></a + ><span class="hs-identifier hs-type" + >Baz</span + ></a + ></span ><span class="hs-special" >)</span ><span class="hs-special" @@ -575,21 +762,36 @@ >=</span ><span > </span - ><span class="hs-identifier hs-var" - >reverse</span + ><span class="annot" + ><span class="annottext" + >[Foo] -> [Foo] +forall a. [a] -> [a] +</span + ><span class="hs-identifier hs-var" + >reverse</span + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >xs</span - ></a + ><span class="annot" + ><span class="annottext" + >[Foo] +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >xs</span + ></a + ></span ><span > </span - ><a name="line-27" - ></a - ><span class="hs-identifier" - >unnorf</span + ><span id="line-27" + ></span + ><span class="annot" + ><a href="Constructors.html#unnorf" + ><span class="hs-identifier hs-var" + >unnorf</span + ></a + ></span ><span > </span ><span class="hs-identifier" @@ -600,100 +802,138 @@ >=</span ><span > </span - ><span class="hs-identifier hs-var" - >undefined</span + ><span class="annot" + ><span class="annottext" + >[Foo] +forall a. HasCallStack => a +</span + ><span class="hs-identifier hs-var" + >undefined</span + ></span ><span > </span - ><a name="line-28" - ></a + ><span id="line-28" + ></span ><span > </span - ><a name="line-29" - ></a + ><span id="line-29" + ></span ><span > </span - ><a name="line-30" - ></a - ><span class="hs-identifier" - >unnorf'</span + ><span id="line-30" + ></span + ><span class="annot" + ><a href="Constructors.html#unnorf%27" + ><span class="hs-identifier hs-type" + >unnorf'</span + ></a + ></span ><span > </span ><span class="hs-glyph" >::</span ><span > </span + ><span class="annot" ><a href="Constructors.html#Norf" - ><span class="hs-identifier hs-type" - >Norf</span - ></a + ><span class="hs-identifier hs-type" + >Norf</span + ></a + ></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 - ><a name="line-31" - ></a - ><a name="unnorf%27" - ><a href="Constructors.html#unnorf%27" - ><span class="hs-identifier" - >unnorf'</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a + ><span id="line-31" + ></span + ><span id="unnorf%27" + ><span class="annot" + ><span class="annottext" + >unnorf' :: Norf -> Int +</span + ><a href="Constructors.html#unnorf%27" + ><span class="hs-identifier hs-var hs-var" + >unnorf'</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043535" + ><span class="annot" + ><span class="annottext" + >x :: Norf +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ></span ><span class="hs-glyph" >@</span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Constructors.html#Norf" - ><span class="hs-identifier hs-var" - >Norf</span - ></a + ><span class="hs-identifier hs-type" + >Norf</span + ></a + ></span ><span > </span ><span class="hs-special" >(</span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >f1</span - ></a - ></a + ><span id="local-6989586621679043534" + ><span class="annot" + ><span class="annottext" + >f1 :: Foo +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f1</span + ></a + ></span + ></span ><span class="hs-glyph" >@</span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Constructors.html#Quux" - ><span class="hs-identifier hs-var" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</span + ></a + ></span ><span > </span ><span class="hs-identifier" >_</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >n</span - ></a - ></a + ><span id="local-6989586621679043533" + ><span class="annot" + ><span class="annottext" + >n :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >n</span + ></a + ></span + ></span ><span class="hs-special" >)</span ><span class="hs-special" @@ -706,28 +946,40 @@ >,</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >f2</span - ></a - ></a + ><span id="local-6989586621679043532" + ><span class="annot" + ><span class="annottext" + >f2 :: Foo +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f2</span + ></a + ></span + ></span ><span class="hs-glyph" >@</span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Constructors.html#Quux" - ><span class="hs-identifier hs-var" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</span + ></a + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >f3</span - ></a - ></a + ><span id="local-6989586621679043531" + ><span class="annot" + ><span class="annottext" + >f3 :: Foo +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f3</span + ></a + ></span + ></span ><span > </span ><span class="hs-identifier" @@ -745,61 +997,109 @@ ><span > </span - ><a name="line-32" - ></a + ><span id="line-32" + ></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 > </span - ><span class="hs-operator hs-var" - >+</span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +forall a. Num a => a -> a -> a +</span + ><span class="hs-operator hs-var" + >+</span + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >n</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >n</span + ></a + ></span ><span > </span - ><span class="hs-operator hs-var" - >*</span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +forall a. Num a => a -> a -> a +</span + ><span class="hs-operator hs-var" + >*</span + ></span ><span > </span - ><a href="Constructors.html#unfoo" - ><span class="hs-identifier hs-var" - >unfoo</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo -> Int +</span + ><a href="Constructors.html#unfoo" + ><span class="hs-identifier hs-var" + >unfoo</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >f1</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f1</span + ></a + ></span ><span > </span - ><span class="hs-operator hs-var" - >+</span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +forall a. Num a => a -> a -> a +</span + ><span class="hs-operator hs-var" + >+</span + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >aux</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo -> Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >aux</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >f3</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f3</span + ></a + ></span ><span > </span - ><a name="line-33" - ></a + ><span id="line-33" + ></span ><span > </span ><span class="hs-keyword" @@ -807,132 +1107,234 @@ ><span > </span - ><a name="line-34" - ></a + ><span id="line-34" + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >aux</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >fx</span - ></a - ></a + ><span id="local-6989586621679043529" + ><span class="annot" + ><span class="annottext" + >aux :: Foo -> Int +</span + ><a href="#" + ><span class="hs-identifier hs-var hs-var" + >aux</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043528" + ><span class="annot" + ><span class="annottext" + >fx :: Foo +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >fx</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="Constructors.html#unfoo" - ><span class="hs-identifier hs-var" - >unfoo</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo -> Int +</span + ><a href="Constructors.html#unfoo" + ><span class="hs-identifier hs-var" + >unfoo</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >f2</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f2</span + ></a + ></span ><span > </span - ><span class="hs-operator hs-var" - >*</span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +forall a. Num a => a -> a -> a +</span + ><span class="hs-operator hs-var" + >*</span + ></span ><span > </span - ><a href="Constructors.html#unfoo" - ><span class="hs-identifier hs-var" - >unfoo</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo -> Int +</span + ><a href="Constructors.html#unfoo" + ><span class="hs-identifier hs-var" + >unfoo</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >fx</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >fx</span + ></a + ></span ><span > </span - ><span class="hs-operator hs-var" - >*</span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +forall a. Num a => a -> a -> a +</span + ><span class="hs-operator hs-var" + >*</span + ></span ><span > </span - ><a href="Constructors.html#unfoo" - ><span class="hs-identifier hs-var" - >unfoo</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo -> Int +</span + ><a href="Constructors.html#unfoo" + ><span class="hs-identifier hs-var" + >unfoo</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >f3</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f3</span + ></a + ></span ><span > </span - ><a name="line-35" - ></a + ><span id="line-35" + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x'</span - ></a - ></a + ><span id="local-6989586621679043530" + ><span class="annot" + ><span class="annottext" + >x' :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var hs-var" + >x'</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] -> Int +forall (t :: * -> *) a. (Foldable t, Num a) => t a -> a +</span + ><span class="hs-identifier hs-var" + >sum</span + ></span ><span > </span - ><span class="hs-operator hs-var" - >.</span + ><span class="annot" + ><span class="annottext" + >([Int] -> Int) -> (Norf -> [Int]) -> Norf -> Int +forall b c a. (b -> c) -> (a -> b) -> a -> c +</span + ><span class="hs-operator hs-var" + >.</span + ></span ><span > </span - ><span class="hs-identifier hs-var" - >map</span + ><span class="annot" + ><span class="annottext" + >(Foo -> Int) -> [Foo] -> [Int] +forall a b. (a -> b) -> [a] -> [b] +</span + ><span class="hs-identifier hs-var" + >map</span + ></span ><span > </span - ><a href="Constructors.html#unfoo" - ><span class="hs-identifier hs-var" - >unfoo</span - ></a + ><span class="annot" + ><span class="annottext" + >Foo -> Int +</span + ><a href="Constructors.html#unfoo" + ><span class="hs-identifier hs-var" + >unfoo</span + ></a + ></span ><span > </span - ><span class="hs-operator hs-var" - >.</span + ><span class="annot" + ><span class="annottext" + >([Foo] -> [Int]) -> (Norf -> [Foo]) -> Norf -> [Int] +forall b c a. (b -> c) -> (a -> b) -> a -> c +</span + ><span class="hs-operator hs-var" + >.</span + ></span ><span > </span - ><a href="Constructors.html#unnorf" - ><span class="hs-identifier hs-var" - >unnorf</span - ></a + ><span class="annot" + ><span class="annottext" + >Norf -> [Foo] +</span + ><a href="Constructors.html#unnorf" + ><span class="hs-identifier hs-var" + >unnorf</span + ></a + ></span ><span > </span - ><span class="hs-operator hs-var" - >$</span + ><span class="annot" + ><span class="annottext" + >(Norf -> Int) -> Norf -> Int +forall a b. (a -> b) -> a -> b +</span + ><span class="hs-operator hs-var" + >$</span + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >x</span - ></a + ><span class="annot" + ><span class="annottext" + >Norf +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span ><span > </span - ><a name="line-36" - ></a + ><span id="line-36" + ></span ></pre ></body ></html |