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 | |
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')
-rw-r--r-- | hypsrc-test/ref/src/CPP.html | 197 | ||||
-rw-r--r-- | hypsrc-test/ref/src/ClangCppBug.html | 306 | ||||
-rw-r--r-- | hypsrc-test/ref/src/Classes.html | 1652 | ||||
-rw-r--r-- | hypsrc-test/ref/src/Constructors.html | 1268 | ||||
-rw-r--r-- | hypsrc-test/ref/src/Identifiers.html | 1485 | ||||
-rw-r--r-- | hypsrc-test/ref/src/LinkingIdentifiers.html | 572 | ||||
-rw-r--r-- | hypsrc-test/ref/src/Literals.html | 433 | ||||
-rw-r--r-- | hypsrc-test/ref/src/Operators.html | 1540 | ||||
-rw-r--r-- | hypsrc-test/ref/src/Polymorphism.html | 3047 | ||||
-rw-r--r-- | hypsrc-test/ref/src/PositionPragmas.html | 172 | ||||
-rw-r--r-- | hypsrc-test/ref/src/Records.html | 1346 | ||||
-rw-r--r-- | hypsrc-test/ref/src/Types.html | 1022 | ||||
-rw-r--r-- | hypsrc-test/src/ClangCppBug.hs | 21 | ||||
-rw-r--r-- | hypsrc-test/src/LinkingIdentifiers.hs | 14 | ||||
-rw-r--r-- | hypsrc-test/src/PositionPragmas.hs | 12 |
15 files changed, 8624 insertions, 4463 deletions
diff --git a/hypsrc-test/ref/src/CPP.html b/hypsrc-test/ref/src/CPP.html index fb85bd2f..2ebcae90 100644 --- a/hypsrc-test/ref/src/CPP.html +++ b/hypsrc-test/ref/src/CPP.html @@ -11,8 +11,8 @@ ><span > </span - ><a name="line-2" - ></a + ><span id="line-2" + ></span ><span class="hs-keyword" >module</span ><span @@ -23,45 +23,48 @@ > </span ><span class="hs-keyword" >where</span - ><span - > -</span - ><a name="line-3" - ></a - ><span - > -</span - ><a name="line-4" - ></a ><span class="hs-cpp" - >#define SOMETHING1 + > + +#define SOMETHING1 </span ><span > </span - ><a name="line-6" - ></a - ><span class="hs-identifier" - >foo</span + ><span id="line-6" + ></span + ><span class="annot" + ><a href="CPP.html#foo" + ><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" - >String</span + >String</span + ></span ><span > </span - ><a name="line-7" - ></a - ><a name="foo" - ><a href="CPP.html#foo" - ><span class="hs-identifier" - >foo</span - ></a - ></a + ><span id="line-7" + ></span + ><span id="foo" + ><span class="annot" + ><span class="annottext" + >foo :: String +</span + ><a href="CPP.html#foo" + ><span class="hs-identifier hs-var hs-var" + >foo</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" @@ -74,142 +77,150 @@ -}</span ><span > </span + ><span class="annot" ><span class="hs-string" - >"foo"</span - ><span - > -</span - ><a name="line-10" - ></a - ><span - > -</span - ><a name="line-11" - ></a + >"foo"</span + ></span ><span class="hs-cpp" - >#define SOMETHING2 + > + +#define SOMETHING2 </span ><span > </span - ><a name="line-13" - ></a - ><span class="hs-identifier" - >bar</span + ><span id="line-13" + ></span + ><span class="annot" + ><a href="CPP.html#bar" + ><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-identifier hs-type" - >String</span + >String</span + ></span ><span > </span - ><a name="line-14" - ></a - ><a name="bar" - ><a href="CPP.html#bar" - ><span class="hs-identifier" - >bar</span - ></a - ></a + ><span id="line-14" + ></span + ><span id="bar" + ><span class="annot" + ><span class="annottext" + >bar :: String +</span + ><a href="CPP.html#bar" + ><span class="hs-identifier hs-var hs-var" + >bar</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span + ><span class="annot" ><span class="hs-string" - >"block comment in a string is not a comment {- "</span - ><span - > -</span - ><a name="line-15" - ></a - ><span - > -</span - ><a name="line-16" - ></a + >"block comment in a string is not a comment {- "</span + ></span ><span class="hs-cpp" - >#define SOMETHING3 + > + +#define SOMETHING3 </span ><span > </span - ><a name="line-18" - ></a + ><span id="line-18" + ></span ><span class="hs-comment" >-- " single quotes are fine in line comments</span ><span > </span - ><a name="line-19" - ></a + ><span id="line-19" + ></span ><span class="hs-comment" >-- {- unclosed block comments are fine in line comments</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 class="hs-comment" >-- Multiline CPP is also fine</span - ><span - > -</span - ><a name="line-22" - ></a ><span class="hs-cpp" - >#define FOO\ + > +#define FOO\ 1 </span ><span > </span - ><a name="line-25" - ></a - ><span class="hs-identifier" - >baz</span + ><span id="line-25" + ></span + ><span class="annot" + ><a href="CPP.html#baz" + ><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-identifier hs-type" - >String</span + >String</span + ></span ><span > </span - ><a name="line-26" - ></a - ><a name="baz" - ><a href="CPP.html#baz" - ><span class="hs-identifier" - >baz</span - ></a - ></a + ><span id="line-26" + ></span + ><span id="baz" + ><span class="annot" + ><span class="annottext" + >baz :: String +</span + ><a href="CPP.html#baz" + ><span class="hs-identifier hs-var hs-var" + >baz</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span + ><span class="annot" ><span class="hs-string" - >"line comment in a string is not a comment --"</span + >"line comment in a string is not a comment --"</span + ></span ><span > </span - ><a name="line-27" - ></a + ><span id="line-27" + ></span ></pre ></body ></html diff --git a/hypsrc-test/ref/src/ClangCppBug.html b/hypsrc-test/ref/src/ClangCppBug.html new file mode 100644 index 00000000..42d0cfc0 --- /dev/null +++ b/hypsrc-test/ref/src/ClangCppBug.html @@ -0,0 +1,306 @@ +<html xmlns="http://www.w3.org/1999/xhtml" +><head + ><link rel="stylesheet" type="text/css" href="style.css" + /><script type="text/javascript" src="highlight.js" + ></script + ></head + ><body + ><pre + ><span class="hs-pragma" + >{-# LANGUAGE CPP #-}</span + ><span + > +</span + ><span id="line-2" + ></span + ><span class="hs-keyword" + >module</span + ><span + > </span + ><span class="hs-identifier" + >ClangCppBug</span + ><span + > </span + ><span class="hs-keyword" + >where</span + ><span + > +</span + ><span id="line-3" + ></span + ><span + > +</span + ><span id="line-4" + ></span + ><span class="annot" + ><a href="ClangCppBug.html#foo" + ><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 + ></span + ><span + > +</span + ><span id="line-5" + ></span + ><span id="foo" + ><span class="annot" + ><span class="annottext" + >foo :: Int +</span + ><a href="ClangCppBug.html#foo" + ><span class="hs-identifier hs-var hs-var" + >foo</span + ></a + ></span + ></span + ><span + > </span + ><span class="hs-glyph" + >=</span + ><span + > </span + ><span class="annot" + ><span class="hs-number" + >1</span + ></span + ><span + > +</span + ><span id="line-6" + ></span + ><span + > +</span + ><span id="line-7" + ></span + ><span class="hs-comment" + >-- Clang doesn't mind these:</span + ><span class="hs-cpp" + > +#define BAX 2 +</span + ><span class="hs-pragma" + >{-# INLINE</span + ><span + > </span + ><span class="annot" + ><a href="ClangCppBug.html#bar" + ><span class="hs-pragma hs-type" + >bar</span + ></a + ></span + ><span + > </span + ><span class="hs-pragma" + >#-}</span + ><span + > +</span + ><span id="line-10" + ></span + ><span + > +</span + ><span id="line-11" + ></span + ><span class="annot" + ><a href="ClangCppBug.html#bar" + ><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-identifier hs-type" + >Int</span + ></span + ><span + > +</span + ><span id="line-12" + ></span + ><span id="bar" + ><span class="annot" + ><span class="annottext" + >bar :: Int +</span + ><a href="ClangCppBug.html#bar" + ><span class="hs-identifier hs-var hs-var" + >bar</span + ></a + ></span + ></span + ><span + > </span + ><span class="hs-glyph" + >=</span + ><span + > </span + ><span class="annot" + ><span class="hs-number" + >3</span + ></span + ><span + > +</span + ><span id="line-13" + ></span + ><span + > +</span + ><span id="line-14" + ></span + ><span class="hs-comment" + >-- But it doesn't like this:</span + ><span + > +</span + ><span id="line-15" + ></span + ><span class="hs-pragma" + >{-# RULES</span + ><span + > +</span + ><span id="line-16" + ></span + ><span class="annot" + ><span class="hs-pragma" + >"bar/qux"</span + ></span + ><span + > </span + ><span class="annot" + ><a href="ClangCppBug.html#bar" + ><span class="hs-pragma hs-type" + >bar</span + ></a + ></span + ><span + > </span + ><span class="hs-pragma" + >=</span + ><span + > </span + ><span class="annot" + ><a href="ClangCppBug.html#qux" + ><span class="hs-pragma hs-type" + >qux</span + ></a + ></span + ><span + > +</span + ><span id="line-17" + ></span + ><span class="annot" + ><span class="hs-pragma" + >"qux/foo"</span + ></span + ><span + > </span + ><span class="annot" + ><a href="ClangCppBug.html#qux" + ><span class="hs-pragma hs-type" + >qux</span + ></a + ></span + ><span + > </span + ><span class="hs-pragma" + >=</span + ><span + > </span + ><span class="annot" + ><a href="ClangCppBug.html#foo" + ><span class="hs-pragma hs-type" + >foo</span + ></a + ></span + ><span + > +</span + ><span id="line-18" + ></span + ><span + > </span + ><span class="hs-pragma" + >#-}</span + ><span + > +</span + ><span id="line-20" + ></span + ><span + > +</span + ><span id="line-21" + ></span + ><span class="annot" + ><a href="ClangCppBug.html#qux" + ><span class="hs-identifier hs-type" + >qux</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >::</span + ><span + > </span + ><span class="annot" + ><span class="hs-identifier hs-type" + >Int</span + ></span + ><span + > +</span + ><span id="line-22" + ></span + ><span id="qux" + ><span class="annot" + ><span class="annottext" + >qux :: Int +</span + ><a href="ClangCppBug.html#qux" + ><span class="hs-identifier hs-var hs-var" + >qux</span + ></a + ></span + ></span + ><span + > </span + ><span class="hs-glyph" + >=</span + ><span + > </span + ><span class="annot" + ><span class="hs-number" + >88</span + ></span + ><span + > +</span + ><span id="line-23" + ></span + ></pre + ></body + ></html +>
\ No newline at end of file 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" >-></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 -> 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 -> Int +forall a. a -> 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 -> (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] -> 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] -> Int +forall (t :: * -> *) a. Foldable t => t a -> 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 -> ([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" >=></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 @@ >-></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] -> a +forall a. Foo' a => [a] -> 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 @@ >-></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) -> a +forall a. Foo' a => (a, a) -> 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) -> a) -> ([a] -> (a, a)) -> [a] -> a +forall b c a. (b -> c) -> (a -> b) -> a -> c +</span + ><span class="hs-operator hs-var" + >.</span + ></span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >Int -> (a, a) +forall a. Foo a => Int -> (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 -> (a, a)) -> ([a] -> Int) -> [a] -> (a, a) +forall b c a. (b -> c) -> (a -> b) -> a -> c +</span + ><span class="hs-operator hs-var" + >.</span + ></span + ><span + > </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="annot" + ><span class="annottext" + >([Int] -> Int) -> ([a] -> [Int]) -> [a] -> Int +forall b c a. (b -> c) -> (a -> b) -> a -> c +</span + ><span class="hs-operator hs-var" + >.</span + ></span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >(a -> Int) -> [a] -> [Int] +forall a b. (a -> b) -> [a] -> [b] +</span + ><span class="hs-identifier hs-var" + >map</span + ></span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >a -> Int +forall a. Foo a => a -> 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] -> 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] -> Int +forall (t :: * -> *) a. (Foldable t, Num a) => t a -> 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]) -> [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] -> [a] -> [a]) -> ([a], [a]) -> [a] +forall a b c. (a -> b -> c) -> (a, b) -> c +</span + ><span class="hs-identifier hs-var" + >uncurry</span + ></span + ><span + > </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 > </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" - >-></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" - >-></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" - >-></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" - >-></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" + >-></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" + >-></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" + >-></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" + >-></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 -> Either b b -> Either (a -> b) (b -> 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 -> a) -> Either (a -> b) (b -> a) +forall a b. b -> 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 -> a) -> Either (a -> b) (b -> a)) +-> (b -> a) -> Either (a -> b) (b -> a) +forall a b. (a -> b) -> a -> 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 -> b -> a +forall a b. a -> b -> 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 -> a) -> Either (a -> b) (b -> a) +forall a b. b -> 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 -> a) -> Either (a -> b) (b -> a)) +-> (b -> a) -> Either (a -> b) (b -> a) +forall a b. (a -> b) -> a -> 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 -> b -> a +forall a b. a -> b -> 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 -> b) -> Either (a -> b) (b -> a) +forall a b. a -> 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 -> b) -> Either (a -> b) (b -> a)) +-> (a -> b) -> Either (a -> b) (b -> a) +forall a b. (a -> b) -> a -> 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 -> a -> b +forall a b. a -> b -> 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 -> b) -> Either (a -> b) (b -> a) +forall a b. a -> 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 -> b) -> Either (a -> b) (b -> a)) +-> (a -> b) -> Either (a -> b) (b -> a) +forall a b. (a -> b) -> a -> 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 -> a -> b +forall a b. a -> b -> 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 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 diff --git a/hypsrc-test/ref/src/Identifiers.html b/hypsrc-test/ref/src/Identifiers.html index ce69ad37..301761c1 100644 --- a/hypsrc-test/ref/src/Identifiers.html +++ b/hypsrc-test/ref/src/Identifiers.html @@ -19,641 +19,1040 @@ ><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-identifier" - >foo</span + ><span id="line-4" + ></span + ><span class="annot" + ><a href="Identifiers.html#foo" + ><span class="hs-identifier hs-type" + >foo</span + ></a + ></span ><span class="hs-special" >,</span ><span > </span - ><span class="hs-identifier" - >bar</span + ><span class="annot" + ><a href="Identifiers.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="Identifiers.html#baz" + ><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-identifier hs-type" - >Int</span + >Int</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" >-></span ><span > </span + ><span class="annot" ><span class="hs-identifier hs-type" - >Int</span + >Int</span + ></span ><span > </span - ><a name="line-5" - ></a - ><a name="foo" - ><a href="Identifiers.html#foo" - ><span class="hs-identifier" - >foo</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >y</span - ></a - ></a + ><span id="line-5" + ></span + ><span id="foo" + ><span class="annot" + ><span class="annottext" + >foo :: Int -> Int -> Int +</span + ><a href="Identifiers.html#foo" + ><span class="hs-identifier hs-var hs-var" + >foo</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043592" + ><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 id="local-6989586621679043591" + ><span class="annot" + ><span class="annottext" + >y :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >x</span - ></a - ><span - > </span - ><span class="hs-operator hs-var" - >+</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="Identifiers.html#bar" - ><span class="hs-identifier hs-var" - >bar</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >y</span - ></a + ><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" - >x</span - ></a + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +</span + ><a href="Identifiers.html#bar" + ><span class="hs-identifier hs-var" + >bar</span + ></a + ></span ><span > </span - ><span class="hs-operator hs-var" - >*</span + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >y</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" - >y</span - ></a - ><span - > + ><span class="annot" + ><span class="annottext" + >Int </span - ><a name="line-6" - ></a - ><a name="bar" - ><a href="Identifiers.html#bar" - ><span class="hs-identifier" - >bar</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span ></a - ></a + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a + ><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 name="" - ><a href="#" - ><span class="hs-identifier" + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" >y</span ></a - ></a + ></span + ><span + > +</span + ><span id="line-6" + ></span + ><span id="bar" + ><span class="annot" + ><span class="annottext" + >bar :: Int -> Int -> Int +</span + ><a href="Identifiers.html#bar" + ><span class="hs-identifier hs-var hs-var" + >bar</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043588" + ><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 id="local-6989586621679043587" + ><span class="annot" + ><span class="annottext" + >y :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >y</span - ></a - ><span - > </span - ><span class="hs-operator hs-var" - >+</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" + >y</span + ></a + ></span ><span > </span - ><span class="hs-glyph" - >-</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="Identifiers.html#baz" - ><span class="hs-identifier hs-var" - >baz</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >x</span - ></a + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +forall a. Num a => a -> a -> a +</span + ><span class="hs-glyph hs-var" + >-</span + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +</span + ><a href="Identifiers.html#baz" + ><span class="hs-identifier hs-var" + >baz</span + ></a + ></span ><span > </span - ><span class="hs-glyph" - >-</span + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></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" + >y</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-glyph hs-var" + >-</span + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >y</span - ></a - ><span - > + ><span class="annot" + ><span class="annottext" + >Int </span - ><a name="line-7" - ></a - ><a name="baz" - ><a href="Identifiers.html#baz" - ><span class="hs-identifier" - >baz</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span ></a - ></a + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a + ><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 name="" - ><a href="#" - ><span class="hs-identifier" + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" >y</span ></a - ></a + ></span + ><span + > +</span + ><span id="line-7" + ></span + ><span id="baz" + ><span class="annot" + ><span class="annottext" + >baz :: Int -> Int -> Int +</span + ><a href="Identifiers.html#baz" + ><span class="hs-identifier hs-var hs-var" + >baz</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043586" + ><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 id="local-6989586621679043585" + ><span class="annot" + ><span class="annottext" + >y :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</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" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</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" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</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" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</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" - >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 - ><a name="line-8" - ></a + ><span id="line-8" + ></span ><span > </span - ><a name="line-9" - ></a - ><span class="hs-identifier" - >quux</span + ><span id="line-9" + ></span + ><span class="annot" + ><a href="Identifiers.html#quux" + ><span class="hs-identifier hs-type" + >quux</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 ><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-10" - ></a - ><a name="quux" - ><a href="Identifiers.html#quux" - ><span class="hs-identifier" - >quux</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a + ><span id="line-10" + ></span + ><span id="quux" + ><span class="annot" + ><span class="annottext" + >quux :: Int -> Int +</span + ><a href="Identifiers.html#quux" + ><span class="hs-identifier hs-var hs-var" + >quux</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043583" + ><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" >=</span ><span > </span - ><a href="Identifiers.html#foo" - ><span class="hs-identifier hs-var" - >foo</span - ></a + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +</span + ><a href="Identifiers.html#foo" + ><span class="hs-identifier hs-var" + >foo</span + ></a + ></span ><span > </span ><span class="hs-special" >(</span - ><a href="Identifiers.html#bar" - ><span class="hs-identifier hs-var" - >bar</span - ></a + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +</span + ><a href="Identifiers.html#bar" + ><span class="hs-identifier hs-var" + >bar</span + ></a + ></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 - ><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 ><span class="hs-special" >(</span - ><a href="Identifiers.html#bar" - ><span class="hs-identifier hs-var" - >bar</span - ></a + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +</span + ><a href="Identifiers.html#bar" + ><span class="hs-identifier hs-var" + >bar</span + ></a + ></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 - ><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 class="hs-identifier" - >norf</span + ><span id="line-12" + ></span + ><span class="annot" + ><a href="Identifiers.html#norf" + ><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 ><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" >-></span ><span > </span + ><span class="annot" ><span class="hs-identifier hs-type" - >Int</span + >Int</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 - ><a name="line-13" - ></a - ><a name="norf" - ><a href="Identifiers.html#norf" - ><span class="hs-identifier" - >norf</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >y</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >z</span - ></a - ></a + ><span id="line-13" + ></span + ><span id="norf" + ><span class="annot" + ><span class="annottext" + >norf :: Int -> Int -> Int -> Int +</span + ><a href="Identifiers.html#norf" + ><span class="hs-identifier hs-var hs-var" + >norf</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043581" + ><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 id="local-6989586621679043580" + ><span class="annot" + ><span class="annottext" + >y :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043579" + ><span class="annot" + ><span class="annottext" + >z :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >z</span + ></a + ></span + ></span ><span > </span - ><a name="line-14" - ></a + ><span id="line-14" + ></span ><span > </span ><span class="hs-glyph" >|</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 -> Bool +forall a. Ord a => a -> a -> Bool +</span + ><span class="hs-operator hs-var" + ><</span + ></span ><span > </span + ><span class="annot" ><span class="hs-number" - >0</span + >0</span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="Identifiers.html#quux" - ><span class="hs-identifier hs-var" - >quux</span - ></a + ><span class="annot" + ><span class="annottext" + >Int -> Int +</span + ><a href="Identifiers.html#quux" + ><span class="hs-identifier hs-var" + >quux</span + ></a + ></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 - ><a name="line-15" - ></a + ><span id="line-15" + ></span ><span > </span ><span class="hs-glyph" >|</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span ><span > </span - ><span class="hs-operator hs-var" - ><</span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Bool +forall a. Ord a => a -> a -> Bool +</span + ><span class="hs-operator hs-var" + ><</span + ></span ><span > </span + ><span class="annot" ><span class="hs-number" - >0</span + >0</span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="Identifiers.html#quux" - ><span class="hs-identifier hs-var" - >quux</span - ></a + ><span class="annot" + ><span class="annottext" + >Int -> Int +</span + ><a href="Identifiers.html#quux" + ><span class="hs-identifier hs-var" + >quux</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span ><span > </span - ><a name="line-16" - ></a + ><span id="line-16" + ></span ><span > </span ><span class="hs-glyph" >|</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >z</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >z</span + ></a + ></span ><span > </span - ><span class="hs-operator hs-var" - ><</span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Bool +forall a. Ord a => a -> a -> Bool +</span + ><span class="hs-operator hs-var" + ><</span + ></span ><span > </span + ><span class="annot" ><span class="hs-number" - >0</span + >0</span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="Identifiers.html#quux" - ><span class="hs-identifier hs-var" - >quux</span - ></a + ><span class="annot" + ><span class="annottext" + >Int -> Int +</span + ><a href="Identifiers.html#quux" + ><span class="hs-identifier hs-var" + >quux</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >z</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >z</span + ></a + ></span ><span > </span - ><a name="line-17" - ></a + ><span id="line-17" + ></span ><span > </span ><span class="hs-glyph" >|</span ><span > </span - ><span class="hs-identifier hs-var" - >otherwise</span + ><span class="annot" + ><span class="annottext" + >Bool +</span + ><span class="hs-identifier hs-var" + >otherwise</span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="Identifiers.html#norf" - ><span class="hs-identifier hs-var" - >norf</span - ></a + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int -> Int +</span + ><a href="Identifiers.html#norf" + ><span class="hs-identifier hs-var" + >norf</span + ></a + ></span ><span > </span ><span class="hs-special" >(</span ><span class="hs-glyph" >-</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 @@ -662,10 +1061,15 @@ >(</span ><span class="hs-glyph" >-</span - ><a href="#" - ><span class="hs-identifier hs-var" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span ><span class="hs-special" >)</span ><span @@ -674,37 +1078,48 @@ >(</span ><span class="hs-glyph" >-</span - ><a href="#" - ><span class="hs-identifier hs-var" - >z</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >z</span + ></a + ></span ><span class="hs-special" >)</span ><span > </span - ><a name="line-18" - ></a + ><span id="line-18" + ></span ><span > </span - ><a name="line-19" - ></a + ><span id="line-19" + ></span ><span > </span - ><a name="line-20" - ></a - ><span class="hs-identifier" - >main</span + ><span id="line-20" + ></span + ><span class="annot" + ><a href="Identifiers.html#main" + ><span class="hs-identifier hs-type" + >main</span + ></a + ></span ><span > </span ><span class="hs-glyph" >::</span ><span > </span + ><span class="annot" ><span class="hs-identifier hs-type" - >IO</span + >IO</span + ></span ><span > </span ><span class="hs-special" @@ -714,14 +1129,19 @@ ><span > </span - ><a name="line-21" - ></a - ><a name="main" - ><a href="Identifiers.html#main" - ><span class="hs-identifier" - >main</span - ></a - ></a + ><span id="line-21" + ></span + ><span id="main" + ><span class="annot" + ><span class="annottext" + >main :: IO () +</span + ><a href="Identifiers.html#main" + ><span class="hs-identifier hs-var hs-var" + >main</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" @@ -733,125 +1153,239 @@ ><span > </span - ><a name="line-22" - ></a + ><span id="line-22" + ></span ><span > </span - ><span class="hs-identifier hs-var" - >putStrLn</span + ><span class="annot" + ><span class="annottext" + >String -> IO () +</span + ><span class="hs-identifier hs-var" + >putStrLn</span + ></span ><span > </span - ><span class="hs-operator hs-var" - >.</span + ><span class="annot" + ><span class="annottext" + >(String -> IO ()) -> (Int -> String) -> Int -> IO () +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" - >show</span + ><span class="annot" + ><span class="annottext" + >Int -> String +forall a. Show a => a -> String +</span + ><span class="hs-identifier hs-var" + >show</span + ></span ><span > </span - ><span class="hs-operator hs-var" - >$</span + ><span class="annot" + ><span class="annottext" + >(Int -> IO ()) -> Int -> IO () +forall a b. (a -> b) -> a -> b +</span + ><span class="hs-operator hs-var" + >$</span + ></span ><span > </span - ><a href="Identifiers.html#foo" - ><span class="hs-identifier hs-var" - >foo</span - ></a + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +</span + ><a href="Identifiers.html#foo" + ><span class="hs-identifier hs-var" + >foo</span + ></a + ></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 - ><a href="#" - ><span class="hs-identifier hs-var" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span ><span > </span - ><a name="line-23" - ></a + ><span id="line-23" + ></span ><span > </span - ><span class="hs-identifier hs-var" - >putStrLn</span + ><span class="annot" + ><span class="annottext" + >String -> IO () +</span + ><span class="hs-identifier hs-var" + >putStrLn</span + ></span ><span > </span - ><span class="hs-operator hs-var" - >.</span + ><span class="annot" + ><span class="annottext" + >(String -> IO ()) -> (Int -> String) -> Int -> IO () +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" - >show</span + ><span class="annot" + ><span class="annottext" + >Int -> String +forall a. Show a => a -> String +</span + ><span class="hs-identifier hs-var" + >show</span + ></span ><span > </span - ><span class="hs-operator hs-var" - >$</span + ><span class="annot" + ><span class="annottext" + >(Int -> IO ()) -> Int -> IO () +forall a b. (a -> b) -> a -> b +</span + ><span class="hs-operator hs-var" + >$</span + ></span ><span > </span - ><a href="Identifiers.html#quux" - ><span class="hs-identifier hs-var" - >quux</span - ></a + ><span class="annot" + ><span class="annottext" + >Int -> Int +</span + ><a href="Identifiers.html#quux" + ><span class="hs-identifier hs-var" + >quux</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >z</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >z</span + ></a + ></span ><span > </span - ><a name="line-24" - ></a + ><span id="line-24" + ></span ><span > </span - ><span class="hs-identifier hs-var" - >putStrLn</span + ><span class="annot" + ><span class="annottext" + >String -> IO () +</span + ><span class="hs-identifier hs-var" + >putStrLn</span + ></span ><span > </span - ><span class="hs-operator hs-var" - >.</span + ><span class="annot" + ><span class="annottext" + >(String -> IO ()) -> (Int -> String) -> Int -> IO () +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" - >show</span + ><span class="annot" + ><span class="annottext" + >Int -> String +forall a. Show a => a -> String +</span + ><span class="hs-identifier hs-var" + >show</span + ></span ><span > </span - ><span class="hs-operator hs-var" - >$</span + ><span class="annot" + ><span class="annottext" + >(Int -> IO ()) -> Int -> IO () +forall a b. (a -> b) -> a -> b +</span + ><span class="hs-operator hs-var" + >$</span + ></span ><span > </span - ><a href="Identifiers.html#norf" - ><span class="hs-identifier hs-var" - >Identifiers.norf</span - ></a + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int -> Int +</span + ><a href="Identifiers.html#norf" + ><span class="hs-identifier hs-var" + >Identifiers.norf</span + ></a + ></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 - ><a href="#" - ><span class="hs-identifier hs-var" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >z</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >z</span + ></a + ></span ><span > </span - ><a name="line-25" - ></a + ><span id="line-25" + ></span ><span > </span ><span class="hs-keyword" @@ -859,72 +1393,93 @@ ><span > </span - ><a name="line-26" - ></a + ><span id="line-26" + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a + ><span id="local-6989586621679043573" + ><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="annot" ><span class="hs-number" - >10</span + >10</span + ></span ><span > </span - ><a name="line-27" - ></a + ><span id="line-27" + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >y</span - ></a - ></a + ><span id="local-6989586621679043572" + ><span class="annot" + ><span class="annottext" + >y :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var hs-var" + >y</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >20</span + >20</span + ></span ><span > </span - ><a name="line-28" - ></a + ><span id="line-28" + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >z</span - ></a - ></a + ><span id="local-6989586621679043571" + ><span class="annot" + ><span class="annottext" + >z :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var hs-var" + >z</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >30</span + >30</span + ></span ><span > </span - ><a name="line-29" - ></a + ><span id="line-29" + ></span ></pre ></body ></html -> +>
\ No newline at end of file diff --git a/hypsrc-test/ref/src/LinkingIdentifiers.html b/hypsrc-test/ref/src/LinkingIdentifiers.html new file mode 100644 index 00000000..2ef590bd --- /dev/null +++ b/hypsrc-test/ref/src/LinkingIdentifiers.html @@ -0,0 +1,572 @@ +<html xmlns="http://www.w3.org/1999/xhtml" +><head + ><link rel="stylesheet" type="text/css" href="style.css" + /><script type="text/javascript" src="highlight.js" + ></script + ></head + ><body + ><pre + ><span class="hs-comment" + >-- Tests that the identifers/operators are properly linked even when:</span + ><span + > +</span + ><span id="line-2" + ></span + ><span class="hs-comment" + >--</span + ><span + > +</span + ><span id="line-3" + ></span + ><span class="hs-comment" + >-- * backquoted, parenthesized, vanilla</span + ><span + > +</span + ><span id="line-4" + ></span + ><span class="hs-comment" + >-- * qualified, not-qualified</span + ><span + > +</span + ><span id="line-5" + ></span + ><span class="hs-comment" + >--</span + ><span + > +</span + ><span id="line-6" + ></span + ><span class="hs-keyword" + >module</span + ><span + > </span + ><span class="hs-identifier" + >LinkingIdentifiers</span + ><span + > </span + ><span class="hs-keyword" + >where</span + ><span + > +</span + ><span id="line-7" + ></span + ><span + > +</span + ><span id="line-8" + ></span + ><span class="annot" + ><a href="LinkingIdentifiers.html#ident" + ><span class="hs-identifier hs-type" + >ident</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >::</span + ><span + > </span + ><span class="annot" + ><span class="hs-identifier hs-type" + >Int</span + ></span + ><span + > </span + ><span class="hs-glyph" + >-></span + ><span + > </span + ><span class="annot" + ><span class="hs-identifier hs-type" + >Int</span + ></span + ><span + > </span + ><span class="hs-glyph" + >-></span + ><span + > </span + ><span class="annot" + ><span class="hs-identifier hs-type" + >Int</span + ></span + ><span + > +</span + ><span id="line-9" + ></span + ><span id="local-6989586621679043611" + ><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 id="ident" + ><span class="annot" + ><span class="annottext" + >ident :: Int -> Int -> Int +</span + ><a href="LinkingIdentifiers.html#ident" + ><span class="hs-operator hs-var hs-var" + >`ident`</span + ></a + ></span + ></span + ><span + > </span + ><span class="hs-number" + >2</span + ><span + > </span + ><span class="hs-glyph" + >=</span + ><span + > </span + ><span class="hs-special" + >(</span + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +</span + ><a href="LinkingIdentifiers.html#ident" + ><span class="hs-operator hs-var" + >`ident`</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="hs-number" + >2</span + ></span + ><span class="hs-special" + >)</span + ><span + > </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 + ><span class="hs-special" + >(</span + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +</span + ><a href="LinkingIdentifiers.html#ident" + ><span class="hs-operator hs-var" + >`LinkingIdentifiers.ident`</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="hs-number" + >2</span + ></span + ><span class="hs-special" + >)</span + ><span + > +</span + ><span id="line-10" + ></span + ><span class="annot" + ><a href="LinkingIdentifiers.html#ident" + ><span class="hs-identifier hs-var" + >ident</span + ></a + ></span + ><span + > </span + ><span id="local-6989586621679043609" + ><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-number" + >2</span + ><span + > </span + ><span class="hs-glyph" + >=</span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +</span + ><a href="LinkingIdentifiers.html#ident" + ><span class="hs-identifier hs-var" + >ident</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="hs-number" + >2</span + ></span + ><span + > </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 + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +</span + ><a href="LinkingIdentifiers.html#ident" + ><span class="hs-identifier hs-var" + >LinkingIdentifiers.ident</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="hs-number" + >2</span + ></span + ><span + > +</span + ><span id="line-11" + ></span + ><span + > +</span + ><span id="line-12" + ></span + ><span class="annot" + ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B" + ><span class="hs-operator hs-type" + >(++:++)</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >::</span + ><span + > </span + ><span class="annot" + ><span class="hs-identifier hs-type" + >Int</span + ></span + ><span + > </span + ><span class="hs-glyph" + >-></span + ><span + > </span + ><span class="annot" + ><span class="hs-identifier hs-type" + >Int</span + ></span + ><span + > </span + ><span class="hs-glyph" + >-></span + ><span + > </span + ><span class="annot" + ><span class="hs-identifier hs-type" + >Int</span + ></span + ><span + > +</span + ><span id="line-13" + ></span + ><span id="local-6989586621679043607" + ><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 id="%2B%2B%3A%2B%2B" + ><span class="annot" + ><span class="annottext" + >++:++ :: Int -> Int -> Int +</span + ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B" + ><span class="hs-operator hs-var hs-var" + >++:++</span + ></a + ></span + ></span + ><span + > </span + ><span class="hs-number" + >2</span + ><span + > </span + ><span class="hs-glyph" + >=</span + ><span + > </span + ><span class="hs-special" + >(</span + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +</span + ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B" + ><span class="hs-operator hs-var" + >++:++</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="hs-number" + >2</span + ></span + ><span class="hs-special" + >)</span + ><span + > </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 + ><span class="hs-special" + >(</span + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +</span + ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B" + ><span class="hs-operator hs-var" + >LinkingIdentifiers.++:++</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="hs-number" + >2</span + ></span + ><span class="hs-special" + >)</span + ><span + > +</span + ><span id="line-14" + ></span + ><span class="annot" + ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B" + ><span class="hs-operator hs-var" + >(++:++)</span + ></a + ></span + ><span + > </span + ><span id="local-6989586621679043606" + ><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-number" + >2</span + ><span + > </span + ><span class="hs-glyph" + >=</span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +</span + ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B" + ><span class="hs-operator hs-var" + >(++:++)</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="hs-number" + >2</span + ></span + ><span + > </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 + ><span class="annot" + ><span class="annottext" + >Int -> Int -> Int +</span + ><a href="LinkingIdentifiers.html#%2B%2B%3A%2B%2B" + ><span class="hs-operator hs-var" + >(LinkingIdentifiers.++:++)</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><span class="hs-number" + >2</span + ></span + ><span + > +</span + ><span id="line-15" + ></span + ></pre + ></body + ></html +>
\ No newline at end of file diff --git a/hypsrc-test/ref/src/Literals.html b/hypsrc-test/ref/src/Literals.html index dfcefc97..62ea32dd 100644 --- a/hypsrc-test/ref/src/Literals.html +++ b/hypsrc-test/ref/src/Literals.html @@ -19,238 +19,334 @@ ><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-identifier" - >str</span + ><span id="line-4" + ></span + ><span class="annot" + ><a href="Literals.html#str" + ><span class="hs-identifier hs-type" + >str</span + ></a + ></span ><span > </span ><span class="hs-glyph" >::</span ><span > </span + ><span class="annot" ><span class="hs-identifier hs-type" - >String</span + >String</span + ></span ><span > </span - ><a name="line-5" - ></a - ><a name="str" - ><a href="Literals.html#str" - ><span class="hs-identifier" - >str</span - ></a - ></a + ><span id="line-5" + ></span + ><span id="str" + ><span class="annot" + ><span class="annottext" + >str :: String +</span + ><a href="Literals.html#str" + ><span class="hs-identifier hs-var hs-var" + >str</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span + ><span class="annot" ><span class="hs-string" - >"str literal"</span + >"str literal"</span + ></span ><span > </span - ><a name="line-6" - ></a + ><span id="line-6" + ></span ><span > </span - ><a name="line-7" - ></a - ><span class="hs-identifier" - >num</span - ><span - > </span - ><span class="hs-glyph" - >::</span - ><span - > </span - ><span class="hs-identifier hs-type" - >Num</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" - >a</span - ></a + ><span id="line-7" + ></span + ><span id="local-6989586621679043622" + ><span class="annot" + ><a href="Literals.html#num" + ><span class="hs-identifier hs-type" + >num</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >::</span + ><span + > </span + ><span class="annot" + ><span class="hs-identifier hs-type" + >Num</span + ></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" + >a</span + ></a + ></span + ></span ><span > </span - ><a name="line-8" - ></a - ><a name="num" - ><a href="Literals.html#num" - ><span class="hs-identifier" - >num</span - ></a - ></a + ><span id="line-8" + ></span + ><span id="num" + ><span class="annot" + ><span class="annottext" + >num :: a +</span + ><a href="Literals.html#num" + ><span class="hs-identifier hs-var hs-var" + >num</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >0</span + >0</span + ></span ><span > </span - ><span class="hs-operator hs-var" - >+</span + ><span class="annot" + ><span class="annottext" + >a -> a -> a +forall a. Num a => a -> a -> a +</span + ><span class="hs-operator hs-var" + >+</span + ></span ><span > </span + ><span class="annot" ><span class="hs-number" - >1</span + >1</span + ></span ><span > </span - ><span class="hs-operator hs-var" - >+</span + ><span class="annot" + ><span class="annottext" + >a -> a -> a +forall a. Num a => a -> a -> a +</span + ><span class="hs-operator hs-var" + >+</span + ></span ><span > </span + ><span class="annot" ><span class="hs-number" - >1010011</span + >1010011</span + ></span ><span > </span - ><span class="hs-operator hs-var" - >*</span + ><span class="annot" + ><span class="annottext" + >a -> a -> a +forall a. Num a => a -> a -> a +</span + ><span class="hs-operator hs-var" + >*</span + ></span ><span > </span + ><span class="annot" ><span class="hs-number" - >41231</span + >41231</span + ></span ><span > </span - ><span class="hs-operator hs-var" - >+</span + ><span class="annot" + ><span class="annottext" + >a -> a -> a +forall a. Num a => a -> a -> a +</span + ><span class="hs-operator hs-var" + >+</span + ></span ><span > </span + ><span class="annot" ><span class="hs-number" - >12131</span + >12131</span + ></span ><span > </span - ><a name="line-9" - ></a + ><span id="line-9" + ></span ><span > </span - ><a name="line-10" - ></a - ><span class="hs-identifier" - >frac</span - ><span - > </span - ><span class="hs-glyph" - >::</span - ><span - > </span - ><span class="hs-identifier hs-type" - >Fractional</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" - >a</span - ></a + ><span id="line-10" + ></span + ><span id="local-6989586621679043618" + ><span class="annot" + ><a href="Literals.html#frac" + ><span class="hs-identifier hs-type" + >frac</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >::</span + ><span + > </span + ><span class="annot" + ><span class="hs-identifier hs-type" + >Fractional</span + ></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" + >a</span + ></a + ></span + ></span ><span > </span - ><a name="line-11" - ></a - ><a name="frac" - ><a href="Literals.html#frac" - ><span class="hs-identifier" - >frac</span - ></a - ></a + ><span id="line-11" + ></span + ><span id="frac" + ><span class="annot" + ><span class="annottext" + >frac :: a +</span + ><a href="Literals.html#frac" + ><span class="hs-identifier hs-var hs-var" + >frac</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >42.0000001</span + >42.0000001</span + ></span ><span > </span - ><a name="line-12" - ></a + ><span id="line-12" + ></span ><span > </span - ><a name="line-13" - ></a - ><span class="hs-identifier" - >list</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 - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span class="hs-special" - >]</span - ><span class="hs-special" - >]</span - ><span class="hs-special" - >]</span - ><span class="hs-special" - >]</span + ><span id="line-13" + ></span + ><span id="local-6989586621679043616" + ><span class="annot" + ><a href="Literals.html#list" + ><span class="hs-identifier hs-type" + >list</span + ></a + ></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 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 class="hs-special" + >]</span + ><span class="hs-special" + >]</span + ></span ><span > </span - ><a name="line-14" - ></a - ><a name="list" - ><a href="Literals.html#list" - ><span class="hs-identifier" - >list</span - ></a - ></a + ><span id="line-14" + ></span + ><span id="list" + ><span class="annot" + ><span class="annottext" + >list :: [[[[a]]]] +</span + ><a href="Literals.html#list" + ><span class="hs-identifier hs-var hs-var" + >list</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" @@ -296,15 +392,19 @@ ><span > </span - ><a name="line-15" - ></a + ><span id="line-15" + ></span ><span > </span - ><a name="line-16" - ></a - ><span class="hs-identifier" - >pair</span + ><span id="line-16" + ></span + ><span class="annot" + ><a href="Literals.html#pair" + ><span class="hs-identifier hs-type" + >pair</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -358,14 +458,19 @@ ><span > </span - ><a name="line-17" - ></a - ><a name="pair" - ><a href="Literals.html#pair" - ><span class="hs-identifier" - >pair</span - ></a - ></a + ><span id="line-17" + ></span + ><span id="pair" + ><span class="annot" + ><span class="annottext" + >pair :: ((), ((), (), ()), ()) +</span + ><a href="Literals.html#pair" + ><span class="hs-identifier hs-var hs-var" + >pair</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" @@ -419,8 +524,8 @@ ><span > </span - ><a name="line-18" - ></a + ><span id="line-18" + ></span ></pre ></body ></html 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 diff --git a/hypsrc-test/ref/src/Polymorphism.html b/hypsrc-test/ref/src/Polymorphism.html index 602246e0..91f8bd33 100644 --- a/hypsrc-test/ref/src/Polymorphism.html +++ b/hypsrc-test/ref/src/Polymorphism.html @@ -11,25 +11,25 @@ ><span > </span - ><a name="line-2" - ></a + ><span id="line-2" + ></span ><span class="hs-pragma" >{-# LANGUAGE ScopedTypeVariables #-}</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 > </span - ><a name="line-5" - ></a + ><span id="line-5" + ></span ><span class="hs-keyword" >module</span ><span @@ -43,81 +43,108 @@ ><span > </span - ><a name="line-6" - ></a - ><span - > -</span - ><a name="line-7" - ></a - ><span - > -</span - ><a name="line-8" - ></a - ><span class="hs-identifier" - >foo</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" - >a</span - ></a - ><span - > </span - ><span class="hs-glyph" - >-></span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span - > -</span - ><a name="line-9" - ></a - ><a name="foo" - ><a href="Polymorphism.html#foo" - ><span class="hs-identifier" - >foo</span - ></a - ></a + ><span id="line-6" + ></span + ><span + > +</span + ><span id="line-7" + ></span + ><span + > +</span + ><span id="line-8" + ></span + ><span id="local-6989586621679043738" + ><span class="annot" + ><a href="Polymorphism.html#foo" + ><span class="hs-identifier hs-type" + >foo</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" + >a</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 + ><span id="line-9" + ></span + ><span id="foo" + ><span class="annot" + ><span class="annottext" + >foo :: a -> a -> a +</span + ><a href="Polymorphism.html#foo" + ><span class="hs-identifier hs-var hs-var" + >foo</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><span class="hs-identifier hs-var" - >undefined</span + ><span class="annot" + ><span class="annottext" + >a -> a -> a +forall a. HasCallStack => a +</span + ><span class="hs-identifier hs-var" + >undefined</span + ></span ><span > </span - ><a name="line-10" - ></a + ><span id="line-10" + ></span ><span > </span - ><a name="line-11" - ></a - ><span class="hs-identifier" - >foo'</span + ><span id="line-11" + ></span + ><span class="annot" + ><a href="Polymorphism.html#foo%27" + ><span class="hs-identifier hs-type" + >foo'</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -128,144 +155,194 @@ >forall</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a + ><span id="local-6989586621679043734" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span ><span class="hs-operator" >.</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" >-></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" >-></span ><span > </span + ><span class="annot" ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span - > -</span - ><a name="line-12" - ></a - ><a name="foo%27" - ><a href="Polymorphism.html#foo%27" - ><span class="hs-identifier" - >foo'</span + ><span class="hs-identifier hs-type" + >a</span ></a - ></a - ><span - > </span - ><span class="hs-glyph" - >=</span - ><span - > </span - ><span class="hs-identifier hs-var" - >undefined</span + ></span ><span > </span - ><a name="line-13" - ></a - ><span - > + ><span id="line-12" + ></span + ><span id="foo%27" + ><span class="annot" + ><span class="annottext" + >foo' :: a -> a -> a </span - ><a name="line-14" - ></a - ><span class="hs-identifier" - >bar</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 + ><a href="Polymorphism.html#foo%27" + ><span class="hs-identifier hs-var hs-var" + >foo'</span + ></a + ></span + ></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 - ><a href="#" - ><span class="hs-identifier hs-type" - >b</span - ></a - ><span class="hs-special" - >)</span - ><span - > -</span - ><a name="line-15" - ></a - ><a name="bar" - ><a href="Polymorphism.html#bar" - ><span class="hs-identifier" - >bar</span - ></a - ></a + ><span class="annot" + ><span class="annottext" + >a -> a -> a +forall a. HasCallStack => a +</span + ><span class="hs-identifier hs-var" + >undefined</span + ></span + ><span + > +</span + ><span id="line-13" + ></span + ><span + > +</span + ><span id="line-14" + ></span + ><span id="local-6989586621679043732" + ><span id="local-6989586621679043733" + ><span class="annot" + ><a href="Polymorphism.html#bar" + ><span class="hs-identifier hs-type" + >bar</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" + >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 + ></span + ><span + > +</span + ><span id="line-15" + ></span + ><span id="bar" + ><span class="annot" + ><span class="annottext" + >bar :: a -> b -> (a, b) +</span + ><a href="Polymorphism.html#bar" + ><span class="hs-identifier hs-var hs-var" + >bar</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><span class="hs-identifier hs-var" - >undefined</span + ><span class="annot" + ><span class="annottext" + >a -> b -> (a, b) +forall a. HasCallStack => a +</span + ><span class="hs-identifier hs-var" + >undefined</span + ></span ><span > </span - ><a name="line-16" - ></a + ><span id="line-16" + ></span ><span > </span - ><a name="line-17" - ></a - ><span class="hs-identifier" - >bar'</span + ><span id="line-17" + ></span + ><span class="annot" + ><a href="Polymorphism.html#bar%27" + ><span class="hs-identifier hs-type" + >bar'</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -276,38 +353,46 @@ >forall</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >b</span - ></a - ></a + ><span id="local-6989586621679043729" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043728" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span + ></span ><span class="hs-operator" >.</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" >-></span ><span > </span + ><span class="annot" ><a href="#" - ><span class="hs-identifier hs-type" - >b</span - ></a + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -316,150 +401,200 @@ > </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" - >b</span - ></a + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span ><span class="hs-special" >)</span ><span > </span - ><a name="line-18" - ></a - ><a name="bar%27" - ><a href="Polymorphism.html#bar%27" - ><span class="hs-identifier" - >bar'</span - ></a - ></a - ><span - > </span - ><span class="hs-glyph" - >=</span - ><span - > </span - ><span class="hs-identifier hs-var" - >undefined</span - ><span - > -</span - ><a name="line-19" - ></a - ><span - > + ><span id="line-18" + ></span + ><span id="bar%27" + ><span class="annot" + ><span class="annottext" + >bar' :: a -> b -> (a, b) </span - ><a name="line-20" - ></a - ><span class="hs-identifier" - >baz</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 - ><span class="hs-special" - >(</span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a + ><a href="Polymorphism.html#bar%27" + ><span class="hs-identifier hs-var hs-var" + >bar'</span + ></a + ></span + ></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 - > </span - ><span class="hs-glyph" - >-></span - ><span - > </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 - ><a href="#" - ><span class="hs-identifier hs-type" - >b</span - ></a - ><span class="hs-special" - >)</span + >=</span ><span > </span - ><span class="hs-glyph" - >-></span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >b</span - ></a - ><span - > -</span - ><a name="line-21" - ></a - ><a name="baz" - ><a href="Polymorphism.html#baz" - ><span class="hs-identifier" - >baz</span - ></a - ></a + ><span class="annot" + ><span class="annottext" + >a -> b -> (a, b) +forall a. HasCallStack => a +</span + ><span class="hs-identifier hs-var" + >undefined</span + ></span + ><span + > +</span + ><span id="line-19" + ></span + ><span + > +</span + ><span id="line-20" + ></span + ><span id="local-6989586621679043726" + ><span id="local-6989586621679043727" + ><span class="annot" + ><a href="Polymorphism.html#baz" + ><span class="hs-identifier hs-type" + >baz</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="hs-special" + >(</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="hs-special" + >[</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" + >a</span + ></a + ></span + ><span class="hs-special" + >]</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 class="hs-special" + >)</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 + > +</span + ><span id="line-21" + ></span + ><span id="baz" + ><span class="annot" + ><span class="annottext" + >baz :: a -> (a -> [a -> a] -> b) -> b +</span + ><a href="Polymorphism.html#baz" + ><span class="hs-identifier hs-var hs-var" + >baz</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><span class="hs-identifier hs-var" - >undefined</span + ><span class="annot" + ><span class="annottext" + >a -> (a -> [a -> a] -> b) -> b +forall a. HasCallStack => a +</span + ><span class="hs-identifier hs-var" + >undefined</span + ></span ><span > </span - ><a name="line-22" - ></a + ><span id="line-22" + ></span ><span > </span - ><a name="line-23" - ></a - ><span class="hs-identifier" - >baz'</span + ><span id="line-23" + ></span + ><span class="annot" + ><a href="Polymorphism.html#baz%27" + ><span class="hs-identifier hs-type" + >baz'</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -470,28 +605,34 @@ >forall</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >b</span - ></a - ></a + ><span id="local-6989586621679043723" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043722" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span + ></span ><span class="hs-operator" >.</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" @@ -500,10 +641,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 > </span ><span class="hs-glyph" @@ -512,20 +655,24 @@ > </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 > </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 class="hs-special" >]</span ><span @@ -534,10 +681,12 @@ >-></span ><span > </span + ><span class="annot" ><a href="#" - ><span class="hs-identifier hs-type" - >b</span - ></a + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span ><span class="hs-special" >)</span ><span @@ -546,154 +695,213 @@ >-></span ><span > </span + ><span class="annot" ><a href="#" - ><span class="hs-identifier hs-type" - >b</span - ></a - ><span - > -</span - ><a name="line-24" - ></a - ><a name="baz%27" - ><a href="Polymorphism.html#baz%27" - ><span class="hs-identifier" - >baz'</span + ><span class="hs-identifier hs-type" + >b</span ></a - ></a - ><span - > </span - ><span class="hs-glyph" - >=</span - ><span - > </span - ><span class="hs-identifier hs-var" - >undefined</span + ></span ><span > </span - ><a name="line-25" - ></a - ><span - > + ><span id="line-24" + ></span + ><span id="baz%27" + ><span class="annot" + ><span class="annottext" + >baz' :: a -> (a -> [a -> a] -> b) -> b </span - ><a name="line-26" - ></a - ><span class="hs-identifier" - >quux</span + ><a href="Polymorphism.html#baz%27" + ><span class="hs-identifier hs-var hs-var" + >baz'</span + ></a + ></span + ></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 - ><span class="hs-special" - >(</span - ><span class="hs-keyword" - >forall</span - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a - ><span class="hs-operator" - >.</span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span - > </span - ><span class="hs-glyph" - >-></span + >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span class="hs-special" - >)</span + ><span class="annot" + ><span class="annottext" + >a -> (a -> [a -> a] -> b) -> b +forall a. HasCallStack => a +</span + ><span class="hs-identifier hs-var" + >undefined</span + ></span + ><span + > +</span + ><span id="line-25" + ></span + ><span + > +</span + ><span id="line-26" + ></span + ><span id="local-6989586621679043721" + ><span class="annot" + ><a href="Polymorphism.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="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >-></span + ><span + > </span + ><span class="hs-special" + >(</span + ><span class="hs-keyword" + >forall</span + ><span + > </span + ><span id="local-6989586621679043756" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span + ><span class="hs-operator" + >.</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" + >a</span + ></a + ></span + ><span class="hs-special" + >)</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 + ><span id="line-27" + ></span + ><span id="quux" + ><span class="annot" + ><span class="annottext" + >quux :: a -> (forall a. a -> a) -> a +</span + ><a href="Polymorphism.html#quux" + ><span class="hs-identifier hs-var hs-var" + >quux</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043719" + ><span class="annot" + ><span class="annottext" + >x :: a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043718" + ><span class="annot" + ><span class="annottext" + >f :: forall a. a -> a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" - >-></span + >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span - > + ><span class="annot" + ><span class="annottext" + >a -> a +forall a. a -> a </span - ><a name="line-27" - ></a - ><a name="quux" - ><a href="Polymorphism.html#quux" - ><span class="hs-identifier" - >quux</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f</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" >x</span ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >f</span - ></a - ></a - ><span - > </span - ><span class="hs-glyph" - >=</span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >f</span - ></a - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >x</span - ></a + ></span ><span > </span - ><a name="line-28" - ></a + ><span id="line-28" + ></span ><span > </span - ><a name="line-29" - ></a - ><span class="hs-identifier" - >quux'</span + ><span id="line-29" + ></span + ><span class="annot" + ><a href="Polymorphism.html#quux%27" + ><span class="hs-identifier hs-type" + >quux'</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -704,20 +912,24 @@ >forall</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a + ><span id="local-6989586621679043716" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span ><span class="hs-operator" >.</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" @@ -730,30 +942,36 @@ >forall</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a + ><span id="local-6989586621679043715" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span ><span class="hs-operator" >.</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" >-></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 @@ -762,145 +980,204 @@ >-></span ><span > </span + ><span class="annot" ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span - > -</span - ><a name="line-30" - ></a - ><a name="quux%27" - ><a href="Polymorphism.html#quux%27" - ><span class="hs-identifier" - >quux'</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >f</span + ><span class="hs-identifier hs-type" + >a</span ></a - ></a - ><span - > </span - ><span class="hs-glyph" - >=</span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >f</span - ></a - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >x</span - ></a + ></span ><span > </span - ><a name="line-31" - ></a - ><span - > + ><span id="line-30" + ></span + ><span id="quux%27" + ><span class="annot" + ><span class="annottext" + >quux' :: a -> (forall a. a -> a) -> a </span - ><a name="line-32" - ></a - ><span - > -</span - ><a name="line-33" - ></a - ><span class="hs-identifier" - >num</span - ><span - > </span - ><span class="hs-glyph" - >::</span - ><span - > </span - ><span class="hs-identifier hs-type" - >Num</span + ><a href="Polymorphism.html#quux%27" + ><span class="hs-identifier hs-var hs-var" + >quux'</span + ></a + ></span + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span - > </span - ><span class="hs-glyph" - >=></span + ><span id="local-6989586621679043714" + ><span class="annot" + ><span class="annottext" + >x :: a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a + ><span id="local-6989586621679043713" + ><span class="annot" + ><span class="annottext" + >f :: forall a. a -> a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" - >-></span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a + >=</span ><span > </span - ><span class="hs-glyph" - >-></span + ><span class="annot" + ><span class="annottext" + >a -> a +forall a. a -> a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span - > + ><span class="annot" + ><span class="annottext" + >a </span - ><a name="line-34" - ></a - ><a name="num" - ><a href="Polymorphism.html#num" - ><span class="hs-identifier" - >num</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span ></a - ></a + ></span + ><span + > +</span + ><span id="line-31" + ></span + ><span + > +</span + ><span id="line-32" + ></span + ><span + > +</span + ><span id="line-33" + ></span + ><span id="local-6989586621679043712" + ><span class="annot" + ><a href="Polymorphism.html#num" + ><span class="hs-identifier hs-type" + >num</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >::</span + ><span + > </span + ><span class="annot" + ><span class="hs-identifier hs-type" + >Num</span + ></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" + >a</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" + >a</span + ></a + ></span + ></span + ><span + > +</span + ><span id="line-34" + ></span + ><span id="num" + ><span class="annot" + ><span class="annottext" + >num :: a -> a -> a +</span + ><a href="Polymorphism.html#num" + ><span class="hs-identifier hs-var hs-var" + >num</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><span class="hs-identifier hs-var" - >undefined</span + ><span class="annot" + ><span class="annottext" + >a -> a -> a +forall a. HasCallStack => a +</span + ><span class="hs-identifier hs-var" + >undefined</span + ></span ><span > </span - ><a name="line-35" - ></a + ><span id="line-35" + ></span ><span > </span - ><a name="line-36" - ></a - ><span class="hs-identifier" - >num'</span + ><span id="line-36" + ></span + ><span class="annot" + ><a href="Polymorphism.html#num%27" + ><span class="hs-identifier hs-type" + >num'</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -911,196 +1188,258 @@ >forall</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a + ><span id="local-6989586621679043709" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span ><span class="hs-operator" >.</span ><span > </span + ><span class="annot" ><span class="hs-identifier hs-type" - >Num</span + >Num</span + ></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" >=></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" >-></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" >-></span ><span > </span + ><span class="annot" ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span - > -</span - ><a name="line-37" - ></a - ><a name="num%27" - ><a href="Polymorphism.html#num%27" - ><span class="hs-identifier" - >num'</span + ><span class="hs-identifier hs-type" + >a</span ></a - ></a - ><span - > </span - ><span class="hs-glyph" - >=</span - ><span - > </span - ><span class="hs-identifier hs-var" - >undefined</span + ></span ><span > </span - ><a name="line-38" - ></a - ><span - > + ><span id="line-37" + ></span + ><span id="num%27" + ><span class="annot" + ><span class="annottext" + >num' :: a -> a -> a </span - ><a name="line-39" - ></a - ><span class="hs-identifier" - >eq</span - ><span - > </span - ><span class="hs-glyph" - >::</span - ><span - > </span - ><span class="hs-special" - >(</span - ><span class="hs-identifier hs-type" - >Eq</span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span class="hs-special" - >,</span - ><span - > </span - ><span class="hs-identifier hs-type" - >Eq</span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >b</span - ></a - ><span class="hs-special" - >)</span + ><a href="Polymorphism.html#num%27" + ><span class="hs-identifier hs-var hs-var" + >num'</span + ></a + ></span + ></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" - >b</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 - ><a href="#" - ><span class="hs-identifier hs-type" - >b</span - ></a - ><span class="hs-special" - >)</span - ><span - > -</span - ><a name="line-40" - ></a - ><a name="eq" - ><a href="Polymorphism.html#eq" - ><span class="hs-identifier" - >eq</span - ></a - ></a + ><span class="annot" + ><span class="annottext" + >a -> a -> a +forall a. HasCallStack => a +</span + ><span class="hs-identifier hs-var" + >undefined</span + ></span + ><span + > +</span + ><span id="line-38" + ></span + ><span + > +</span + ><span id="line-39" + ></span + ><span id="local-6989586621679043707" + ><span id="local-6989586621679043708" + ><span class="annot" + ><a href="Polymorphism.html#eq" + ><span class="hs-identifier hs-type" + >eq</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >::</span + ><span + > </span + ><span class="hs-special" + >(</span + ><span class="annot" + ><span class="hs-identifier hs-type" + >Eq</span + ></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 class="annot" + ><span class="hs-identifier hs-type" + >Eq</span + ></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-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" + >b</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="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span + ><span class="hs-special" + >)</span + ></span + ></span + ><span + > +</span + ><span id="line-40" + ></span + ><span id="eq" + ><span class="annot" + ><span class="annottext" + >eq :: [a] -> [b] -> (a, b) +</span + ><a href="Polymorphism.html#eq" + ><span class="hs-identifier hs-var hs-var" + >eq</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><span class="hs-identifier hs-var" - >undefined</span + ><span class="annot" + ><span class="annottext" + >[a] -> [b] -> (a, b) +forall a. HasCallStack => a +</span + ><span class="hs-identifier hs-var" + >undefined</span + ></span ><span > </span - ><a name="line-41" - ></a + ><span id="line-41" + ></span ><span > </span - ><a name="line-42" - ></a - ><span class="hs-identifier" - >eq'</span + ><span id="line-42" + ></span + ><span class="annot" + ><a href="Polymorphism.html#eq%27" + ><span class="hs-identifier hs-type" + >eq'</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -1111,46 +1450,58 @@ >forall</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >b</span - ></a - ></a + ><span id="local-6989586621679043704" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043703" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span + ></span ><span class="hs-operator" >.</span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><span class="hs-identifier hs-type" - >Eq</span + >Eq</span + ></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 + ><span class="annot" ><span class="hs-identifier hs-type" - >Eq</span + >Eq</span + ></span ><span > </span + ><span class="annot" ><a href="#" - ><span class="hs-identifier hs-type" - >b</span - ></a + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span ><span class="hs-special" >)</span ><span @@ -1161,10 +1512,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 @@ -1175,10 +1528,12 @@ > </span ><span class="hs-special" >[</span + ><span class="annot" ><a href="#" - ><span class="hs-identifier hs-type" - >b</span - ></a + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span ><span class="hs-special" >]</span ><span @@ -1189,142 +1544,194 @@ > </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" - >b</span - ></a + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span ><span class="hs-special" >)</span ><span > </span - ><a name="line-43" - ></a - ><a name="eq%27" - ><a href="Polymorphism.html#eq%27" - ><span class="hs-identifier" - >eq'</span - ></a - ></a - ><span - > </span - ><span class="hs-glyph" - >=</span - ><span - > </span - ><span class="hs-identifier hs-var" - >undefined</span - ><span - > -</span - ><a name="line-44" - ></a - ><span - > + ><span id="line-43" + ></span + ><span id="eq%27" + ><span class="annot" + ><span class="annottext" + >eq' :: [a] -> [b] -> (a, b) </span - ><a name="line-45" - ></a - ><span class="hs-identifier" - >mon</span - ><span - > </span - ><span class="hs-glyph" - >::</span - ><span - > </span - ><span class="hs-identifier hs-type" - >Monad</span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >m</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 + ><a href="Polymorphism.html#eq%27" + ><span class="hs-identifier hs-var hs-var" + >eq'</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" - >-></span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >m</span - ></a - ><span - > </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 - ><a href="#" - ><span class="hs-identifier hs-type" - >m</span - ></a + >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span - > -</span - ><a name="line-46" - ></a - ><a name="mon" - ><a href="Polymorphism.html#mon" - ><span class="hs-identifier" - >mon</span - ></a - ></a + ><span class="annot" + ><span class="annottext" + >[a] -> [b] -> (a, b) +forall a. HasCallStack => a +</span + ><span class="hs-identifier hs-var" + >undefined</span + ></span + ><span + > +</span + ><span id="line-44" + ></span + ><span + > +</span + ><span id="line-45" + ></span + ><span id="local-6989586621679043701" + ><span id="local-6989586621679043702" + ><span class="annot" + ><a href="Polymorphism.html#mon" + ><span class="hs-identifier hs-type" + >mon</span + ></a + ></span + ><span + > </span + ><span class="hs-glyph" + >::</span + ><span + > </span + ><span class="annot" + ><span class="hs-identifier hs-type" + >Monad</span + ></span + ><span + > </span + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >m</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 + > </span + ><span class="hs-glyph" + >-></span + ><span + > </span + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >m</span + ></a + ></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 class="hs-glyph" + >-></span + ><span + > </span + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >m</span + ></a + ></span + ><span + > </span + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span + ></span + ><span + > +</span + ><span id="line-46" + ></span + ><span id="mon" + ><span class="annot" + ><span class="annottext" + >mon :: (a -> m a) -> m a +</span + ><a href="Polymorphism.html#mon" + ><span class="hs-identifier hs-var hs-var" + >mon</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><span class="hs-identifier hs-var" - >undefined</span + ><span class="annot" + ><span class="annottext" + >(a -> m a) -> m a +forall a. HasCallStack => a +</span + ><span class="hs-identifier hs-var" + >undefined</span + ></span ><span > </span - ><a name="line-47" - ></a + ><span id="line-47" + ></span ><span > </span - ><a name="line-48" - ></a - ><span class="hs-identifier" - >mon'</span + ><span id="line-48" + ></span + ><span class="annot" + ><a href="Polymorphism.html#mon%27" + ><span class="hs-identifier hs-type" + >mon'</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -1335,32 +1742,40 @@ >forall</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >m</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a + ><span id="local-6989586621679043698" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >m</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043697" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span ><span class="hs-operator" >.</span ><span > </span + ><span class="annot" ><span class="hs-identifier hs-type" - >Monad</span + >Monad</span + ></span ><span > </span + ><span class="annot" ><a href="#" - ><span class="hs-identifier hs-type" - >m</span - ></a + ><span class="hs-identifier hs-type" + >m</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -1369,26 +1784,32 @@ > </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 > </span ><span class="hs-glyph" >-></span ><span > </span + ><span class="annot" ><a href="#" - ><span class="hs-identifier hs-type" - >m</span - ></a + ><span class="hs-identifier hs-type" + >m</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 class="hs-special" >)</span ><span @@ -1397,173 +1818,232 @@ >-></span ><span > </span + ><span class="annot" ><a href="#" - ><span class="hs-identifier hs-type" - >m</span - ></a + ><span class="hs-identifier hs-type" + >m</span + ></a + ></span ><span > </span + ><span class="annot" ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span - > -</span - ><a name="line-49" - ></a - ><a name="mon%27" - ><a href="Polymorphism.html#mon%27" - ><span class="hs-identifier" - >mon'</span + ><span class="hs-identifier hs-type" + >a</span ></a - ></a - ><span - > </span - ><span class="hs-glyph" - >=</span - ><span - > </span - ><span class="hs-identifier hs-var" - >undefined</span + ></span ><span > </span - ><a name="line-50" - ></a - ><span - > -</span - ><a name="line-51" - ></a - ><span - > + ><span id="line-49" + ></span + ><span id="mon%27" + ><span class="annot" + ><span class="annottext" + >mon' :: (a -> m a) -> m a </span - ><a name="line-52" - ></a - ><span class="hs-identifier" - >norf</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 - ><span class="hs-special" - >(</span - ><span class="hs-keyword" - >forall</span - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a - ><span class="hs-operator" - >.</span - ><span - > </span - ><span class="hs-identifier hs-type" - >Ord</span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a + ><a href="Polymorphism.html#mon%27" + ><span class="hs-identifier hs-var hs-var" + >mon'</span + ></a + ></span + ></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 > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span class="hs-special" - >)</span + ><span class="annot" + ><span class="annottext" + >(a -> m a) -> m a +forall a. HasCallStack => a +</span + ><span class="hs-identifier hs-var" + >undefined</span + ></span + ><span + > +</span + ><span id="line-50" + ></span + ><span + > +</span + ><span id="line-51" + ></span + ><span + > +</span + ><span id="line-52" + ></span + ><span id="local-6989586621679043696" + ><span class="annot" + ><a href="Polymorphism.html#norf" + ><span class="hs-identifier hs-type" + >norf</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="hs-special" + >(</span + ><span class="hs-keyword" + >forall</span + ><span + > </span + ><span id="local-6989586621679043743" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span + ><span class="hs-operator" + >.</span + ><span + > </span + ><span class="annot" + ><span class="hs-identifier hs-type" + >Ord</span + ></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" + >a</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 class="hs-special" + >)</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 + ><span id="line-53" + ></span + ><span id="norf" + ><span class="annot" + ><span class="annottext" + >norf :: a -> (forall a. Ord a => a -> a) -> a +</span + ><a href="Polymorphism.html#norf" + ><span class="hs-identifier hs-var hs-var" + >norf</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043694" + ><span class="annot" + ><span class="annottext" + >x :: a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043693" + ><span class="annot" + ><span class="annottext" + >f :: forall a. Ord a => a -> a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" - >-></span + >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-type" - >a</span - ></a - ><span - > + ><span class="annot" + ><span class="annottext" + >a </span - ><a name="line-53" - ></a - ><a name="norf" - ><a href="Polymorphism.html#norf" - ><span class="hs-identifier" - >norf</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" + ><a href="#" + ><span class="hs-identifier hs-var" >x</span ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >f</span - ></a - ></a - ><span - > </span - ><span class="hs-glyph" - >=</span - ><span - > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >x</span - ></a + ></span ><span > </span - ><a name="line-54" - ></a + ><span id="line-54" + ></span ><span > </span - ><a name="line-55" - ></a - ><span class="hs-identifier" - >norf'</span + ><span id="line-55" + ></span + ><span class="annot" + ><a href="Polymorphism.html#norf%27" + ><span class="hs-identifier hs-type" + >norf'</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -1574,20 +2054,24 @@ >forall</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a + ><span id="local-6989586621679043691" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span ><span class="hs-operator" >.</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" @@ -1600,44 +2084,54 @@ >forall</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a + ><span id="local-6989586621679043690" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span ><span class="hs-operator" >.</span ><span > </span + ><span class="annot" ><span class="hs-identifier hs-type" - >Ord</span + >Ord</span + ></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" >=></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" >-></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 @@ -1646,64 +2140,90 @@ >-></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-56" - ></a - ><a name="norf%27" - ><a href="Polymorphism.html#norf%27" - ><span class="hs-identifier" - >norf'</span - ></a - ></a + ><span id="line-56" + ></span + ><span id="norf%27" + ><span class="annot" + ><span class="annottext" + >norf' :: a -> (forall a. Ord a => a -> a) -> a +</span + ><a href="Polymorphism.html#norf%27" + ><span class="hs-identifier hs-var hs-var" + >norf'</span + ></a + ></span + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a + ><span id="local-6989586621679043689" + ><span class="annot" + ><span class="annottext" + >x :: a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >f</span - ></a - ></a + ><span id="local-6989586621679043688" + ><span class="annot" + ><span class="annottext" + >f :: forall a. Ord a => a -> a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >x</span - ></a + ><span class="annot" + ><span class="annottext" + >a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span ><span > </span - ><a name="line-57" - ></a + ><span id="line-57" + ></span ><span > </span - ><a name="line-58" - ></a + ><span id="line-58" + ></span ><span > </span - ><a name="line-59" - ></a - ><span class="hs-identifier" - >plugh</span + ><span id="line-59" + ></span + ><span class="annot" + ><a href="Polymorphism.html#plugh" + ><span class="hs-identifier hs-type" + >plugh</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -1714,81 +2234,108 @@ >forall</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a + ><span id="local-6989586621679043686" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span ><span class="hs-operator" >.</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" >-></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-60" - ></a - ><a name="plugh" - ><a href="Polymorphism.html#plugh" - ><span class="hs-identifier" - >plugh</span - ></a - ></a + ><span id="line-60" + ></span + ><span id="plugh" + ><span class="annot" + ><span class="annottext" + >plugh :: a -> a +</span + ><a href="Polymorphism.html#plugh" + ><span class="hs-identifier hs-var hs-var" + >plugh</span + ></a + ></span + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a + ><span id="local-6989586621679043685" + ><span class="annot" + ><span class="annottext" + >x :: a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >x</span - ></a + ><span class="annot" + ><span class="annottext" + >a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</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 class="hs-identifier hs-type" + >a</span + ></a + ></span ><span > </span - ><a name="line-61" - ></a + ><span id="line-61" + ></span ><span > </span - ><a name="line-62" - ></a - ><span class="hs-identifier" - >thud</span + ><span id="line-62" + ></span + ><span class="annot" + ><a href="Polymorphism.html#thud" + ><span class="hs-identifier hs-type" + >thud</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -1799,40 +2346,48 @@ >forall</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >b</span - ></a - ></a + ><span id="local-6989586621679043683" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043682" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span + ></span ><span class="hs-operator" >.</span ><span > </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 > </span ><span class="hs-glyph" >-></span ><span > </span + ><span class="annot" ><a href="#" - ><span class="hs-identifier hs-type" - >b</span - ></a + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span ><span class="hs-special" >)</span ><span @@ -1841,10 +2396,12 @@ >-></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" @@ -1853,47 +2410,66 @@ > </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" - >b</span - ></a + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span ><span class="hs-special" >)</span ><span > </span - ><a name="line-63" - ></a - ><a name="thud" - ><a href="Polymorphism.html#thud" - ><span class="hs-identifier" - >thud</span - ></a - ></a + ><span id="line-63" + ></span + ><span id="thud" + ><span class="annot" + ><span class="annottext" + >thud :: (a -> b) -> a -> (a, b) +</span + ><a href="Polymorphism.html#thud" + ><span class="hs-identifier hs-var hs-var" + >thud</span + ></a + ></span + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >f</span - ></a - ></a + ><span id="local-6989586621679043681" + ><span class="annot" + ><span class="annottext" + >f :: a -> b +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f</span + ></a + ></span + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a + ><span id="local-6989586621679043680" + ><span class="annot" + ><span class="annottext" + >x :: a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" @@ -1901,34 +2477,46 @@ ><span > </span - ><a name="line-64" - ></a + ><span id="line-64" + ></span ><span > </span ><span class="hs-special" >(</span - ><a href="#" - ><span class="hs-identifier hs-var" - >x</span - ></a + ><span class="annot" + ><span class="annottext" + >a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</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 class="hs-identifier hs-type" + >a</span + ></a + ></span ><span class="hs-special" >,</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >b +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span ><span class="hs-special" >)</span ><span @@ -1939,25 +2527,29 @@ > </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" - >b</span - ></a + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span ><span class="hs-special" >)</span ><span > </span - ><a name="line-65" - ></a + ><span id="line-65" + ></span ><span > </span ><span class="hs-keyword" @@ -1965,16 +2557,21 @@ ><span > </span - ><a name="line-66" - ></a + ><span id="line-66" + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >y</span - ></a - ></a + ><span id="local-6989586621679043679" + ><span class="annot" + ><span class="annottext" + >y :: b +</span + ><a href="#" + ><span class="hs-identifier hs-var hs-var" + >y</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" @@ -1983,53 +2580,69 @@ > </span ><span class="hs-special" >(</span - ><a href="#" - ><span class="hs-identifier hs-var" - >f</span - ></a + ><span class="annot" + ><span class="annottext" + >a -> b +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >f</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 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 class="hs-identifier hs-type" + >b</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" + >a +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</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 class="hs-identifier hs-type" + >b</span + ></a + ></span ><span > </span - ><a name="line-67" - ></a + ><span id="line-67" + ></span ></pre ></body ></html diff --git a/hypsrc-test/ref/src/PositionPragmas.html b/hypsrc-test/ref/src/PositionPragmas.html new file mode 100644 index 00000000..ddd73f31 --- /dev/null +++ b/hypsrc-test/ref/src/PositionPragmas.html @@ -0,0 +1,172 @@ +<html xmlns="http://www.w3.org/1999/xhtml" +><head + ><link rel="stylesheet" type="text/css" href="style.css" + /><script type="text/javascript" src="highlight.js" + ></script + ></head + ><body + ><pre + ><span class="hs-keyword" + >module</span + ><span + > </span + ><span class="hs-identifier" + >PositionPragmas</span + ><span + > </span + ><span class="hs-keyword" + >where</span + ><span + > +</span + ><span id="line-2" + ></span + ><span + > +</span + ><span id="line-3" + ></span + ><span class="hs-pragma" + >{-# LINE 8 "hypsrc-test/src/PositionPragmas.hs" #-}</span + ><span + > +</span + ><span id="line-8" + ></span + ><span + > +</span + ><span id="line-9" + ></span + ><span class="annot" + ><a href="PositionPragmas.html#foo" + ><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" + >String</span + ></span + ><span + > +</span + ><span id="line-10" + ></span + ><span id="foo" + ><span class="annot" + ><span class="annottext" + >foo :: String +</span + ><a href="PositionPragmas.html#foo" + ><span class="hs-identifier hs-var hs-var" + >foo</span + ></a + ></span + ></span + ><span + > </span + ><span class="hs-glyph" + >=</span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >String +</span + ><a href="PositionPragmas.html#bar" + ><span class="hs-identifier hs-var" + >bar</span + ></a + ></span + ><span + > +</span + ><span id="line-11" + ></span + ><span + > +</span + ><span id="line-12" + ></span + ><span class="hs-pragma" + >{-# LINE 23 "hypsrc-test/src/PositionPragmas.hs" #-}</span + ><span + > +</span + ><span id="line-23" + ></span + ><span + > +</span + ><span id="line-24" + ></span + ><span class="annot" + ><a href="PositionPragmas.html#bar" + ><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-identifier hs-type" + >String</span + ></span + ><span + > +</span + ><span id="line-25" + ></span + ><span id="bar" + ><span class="annot" + ><span class="annottext" + >bar :: String +</span + ><a href="PositionPragmas.html#bar" + ><span class="hs-identifier hs-var hs-var" + >bar</span + ></a + ></span + ></span + ><span + > </span + ><span class="hs-glyph" + >=</span + ><span + > </span + ><span class="annot" + ><span class="annottext" + >String +</span + ><a href="PositionPragmas.html#foo" + ><span class="hs-identifier hs-var" + >foo</span + ></a + ></span + ><span + > </span + ><span + > +</span + ><span id="line-26" + ></span + ><span + > +</span + ><span id="line-27" + ></span + ></pre + ></body + ></html +>
\ No newline at end of file diff --git a/hypsrc-test/ref/src/Records.html b/hypsrc-test/ref/src/Records.html index 7d23d114..bc99cc56 100644 --- a/hypsrc-test/ref/src/Records.html +++ b/hypsrc-test/ref/src/Records.html @@ -11,25 +11,25 @@ ><span > </span - ><a name="line-2" - ></a + ><span id="line-2" + ></span ><span class="hs-pragma" >{-# LANGUAGE RecordWildCards #-}</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 > </span - ><a name="line-5" - ></a + ><span id="line-5" + ></span ><span class="hs-keyword" >module</span ><span @@ -43,57 +43,66 @@ ><span > </span - ><a name="line-6" - ></a + ><span id="line-6" + ></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" >data</span ><span > </span - ><a name="Point" - ><a href="Records.html#Point" - ><span class="hs-identifier" - >Point</span - ></a - ></a + ><span id="Point" + ><span class="annot" + ><a href="Records.html#Point" + ><span class="hs-identifier hs-var" + >Point</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a name="Point" - ><a href="Records.html#Point" - ><span class="hs-identifier" - >Point</span - ></a - ></a + ><span id="Point" + ><span class="annot" + ><a href="Records.html#Point" + ><span class="hs-identifier hs-var" + >Point</span + ></a + ></span + ></span ><span > </span - ><a name="line-9" - ></a + ><span id="line-9" + ></span ><span > </span ><span class="hs-special" >{</span ><span > </span - ><a name="x" - ><a href="Records.html#x" - ><span class="hs-identifier" - >x</span - ></a - ></a + ><span id="x" + ><span class="annot" + ><span class="annottext" + >Point -> Int +</span + ><a href="Records.html#x" + ><span class="hs-identifier hs-var hs-var" + >x</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" @@ -102,25 +111,32 @@ > </span ><span class="hs-glyph" >!</span + ><span class="annot" ><span class="hs-identifier hs-type" - >Int</span + >Int</span + ></span ><span > </span - ><a name="line-10" - ></a + ><span id="line-10" + ></span ><span > </span ><span class="hs-special" >,</span ><span > </span - ><a name="y" - ><a href="Records.html#y" - ><span class="hs-identifier" - >y</span - ></a - ></a + ><span id="y" + ><span class="annot" + ><span class="annottext" + >Point -> Int +</span + ><a href="Records.html#y" + ><span class="hs-identifier hs-var hs-var" + >y</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" @@ -129,13 +145,15 @@ > </span ><span class="hs-glyph" >!</span + ><span class="annot" ><span class="hs-identifier hs-type" - >Int</span + >Int</span + ></span ><span > </span - ><a name="line-11" - ></a + ><span id="line-11" + ></span ><span > </span ><span class="hs-special" @@ -143,117 +161,171 @@ ><span > </span - ><a name="line-12" - ></a + ><span id="line-12" + ></span ><span > </span - ><a name="line-13" - ></a + ><span id="line-13" + ></span ><span > </span - ><a name="line-14" - ></a - ><span class="hs-identifier" - >point</span + ><span id="line-14" + ></span + ><span class="annot" + ><a href="Records.html#point" + ><span class="hs-identifier hs-type" + >point</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 ><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" >-></span ><span > </span + ><span class="annot" ><a href="Records.html#Point" - ><span class="hs-identifier hs-type" - >Point</span - ></a + ><span class="hs-identifier hs-type" + >Point</span + ></a + ></span ><span > </span - ><a name="line-15" - ></a - ><a name="point" - ><a href="Records.html#point" - ><span class="hs-identifier" - >point</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >y</span - ></a - ></a + ><span id="line-15" + ></span + ><span id="point" + ><span class="annot" + ><span class="annottext" + >point :: Int -> Int -> Point +</span + ><a href="Records.html#point" + ><span class="hs-identifier hs-var hs-var" + >point</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043799" + ><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 id="local-6989586621679043798" + ><span class="annot" + ><span class="annottext" + >y :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="Records.html#Point" - ><span class="hs-identifier hs-var" - >Point</span - ></a + ><span class="annot" + ><span class="annottext" + >$WPoint :: Int -> Int -> Point +</span + ><a href="Records.html#%24WPoint" + ><span class="hs-identifier hs-type hs-type" + >Point</span + ></a + ></span ><span > </span ><span class="hs-special" >{</span ><span > </span - ><span class="hs-identifier" - >x</span + ><span class="annot" + ><span class="annottext" + >x :: Int +</span + ><a href="Records.html#x" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span ><span > </span ><span class="hs-glyph" >=</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 - ><span class="hs-identifier" - >y</span + ><span class="annot" + ><span class="annottext" + >y :: Int +</span + ><a href="Records.html#y" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span ><span > </span ><span class="hs-special" @@ -261,95 +333,134 @@ ><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" - >lengthSqr</span + ><span id="line-18" + ></span + ><span class="annot" + ><a href="Records.html#lengthSqr" + ><span class="hs-identifier hs-type" + >lengthSqr</span + ></a + ></span ><span > </span ><span class="hs-glyph" >::</span ><span > </span + ><span class="annot" ><a href="Records.html#Point" - ><span class="hs-identifier hs-type" - >Point</span - ></a + ><span class="hs-identifier hs-type" + >Point</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="lengthSqr" - ><a href="Records.html#lengthSqr" - ><span class="hs-identifier" - >lengthSqr</span - ></a - ></a + ><span id="line-19" + ></span + ><span id="lengthSqr" + ><span class="annot" + ><span class="annottext" + >lengthSqr :: Point -> Int +</span + ><a href="Records.html#lengthSqr" + ><span class="hs-identifier hs-var hs-var" + >lengthSqr</span + ></a + ></span + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Records.html#Point" - ><span class="hs-identifier hs-var" - >Point</span - ></a + ><span class="hs-identifier hs-type" + >Point</span + ></a + ></span ><span > </span ><span class="hs-special" >{</span ><span > </span - ><span class="hs-identifier" - >x</span + ><span class="annot" + ><span class="annottext" + >x :: Point -> Int +</span + ><a href="Records.html#x" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a + ><span id="local-6989586621679043795" + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span + ></span ><span class="hs-special" >,</span ><span > </span - ><span class="hs-identifier" - >y</span + ><span class="annot" + ><span class="annottext" + >y :: Point -> Int +</span + ><a href="Records.html#y" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >y</span - ></a - ></a + ><span id="local-6989586621679043794" + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span + ></span ><span > </span ><span class="hs-special" @@ -362,111 +473,178 @@ >=</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" - >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" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</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" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span ><span > </span - ><a name="line-20" - ></a + ><span id="line-20" + ></span ><span > </span - ><a name="line-21" - ></a - ><span class="hs-identifier" - >lengthSqr'</span + ><span id="line-21" + ></span + ><span class="annot" + ><a href="Records.html#lengthSqr%27" + ><span class="hs-identifier hs-type" + >lengthSqr'</span + ></a + ></span ><span > </span ><span class="hs-glyph" >::</span ><span > </span + ><span class="annot" ><a href="Records.html#Point" - ><span class="hs-identifier hs-type" - >Point</span - ></a + ><span class="hs-identifier hs-type" + >Point</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-22" - ></a - ><a name="lengthSqr%27" - ><a href="Records.html#lengthSqr%27" - ><span class="hs-identifier" - >lengthSqr'</span - ></a - ></a + ><span id="line-22" + ></span + ><span id="lengthSqr%27" + ><span class="annot" + ><span class="annottext" + >lengthSqr' :: Point -> Int +</span + ><a href="Records.html#lengthSqr%27" + ><span class="hs-identifier hs-var hs-var" + >lengthSqr'</span + ></a + ></span + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Records.html#Point" - ><span class="hs-identifier hs-var" - >Point</span - ></a + ><span class="hs-identifier hs-type" + >Point</span + ></a + ></span ><span > </span ><span class="hs-special" >{</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a + ><span id="local-6989586621679043790" + ><span class="annot" + ><span class="annottext" + >Int +x :: Int +x :: Point -> Int +</span + ><a href="#" + ><span class="hs-identifier hs-var hs-var" + >x</span + ></a + ></span + ></span ><span class="hs-special" >,</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >y</span - ></a - ></a + ><span id="local-6989586621679043789" + ><span class="annot" + ><span class="annottext" + >Int +y :: Int +y :: Point -> Int +</span + ><a href="#" + ><span class="hs-identifier hs-var hs-var" + >y</span + ></a + ></span + ></span ><span > </span ><span class="hs-special" @@ -479,160 +657,262 @@ >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</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" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</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" - >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" - >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 - ><a name="line-23" - ></a + ><span id="line-23" + ></span ><span > </span - ><a name="line-24" - ></a + ><span id="line-24" + ></span ><span > </span - ><a name="line-25" - ></a - ><span class="hs-identifier" - >translateX</span + ><span id="line-25" + ></span + ><span class="annot" + ><a href="Records.html#translateX" + ><span class="hs-identifier hs-type" + >translateX</span + ></a + ></span ><span class="hs-special" >,</span ><span > </span - ><span class="hs-identifier" - >translateY</span + ><span class="annot" + ><a href="Records.html#translateY" + ><span class="hs-identifier hs-type" + >translateY</span + ></a + ></span ><span > </span ><span class="hs-glyph" >::</span ><span > </span + ><span class="annot" ><a href="Records.html#Point" - ><span class="hs-identifier hs-type" - >Point</span - ></a + ><span class="hs-identifier hs-type" + >Point</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 ><span class="hs-glyph" >-></span ><span > </span + ><span class="annot" ><a href="Records.html#Point" - ><span class="hs-identifier hs-type" - >Point</span - ></a + ><span class="hs-identifier hs-type" + >Point</span + ></a + ></span ><span > </span - ><a name="line-26" - ></a - ><a name="translateX" - ><a href="Records.html#translateX" - ><span class="hs-identifier" - >translateX</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >p</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >d</span - ></a - ></a + ><span id="line-26" + ></span + ><span id="translateX" + ><span class="annot" + ><span class="annottext" + >translateX :: Point -> Int -> Point +</span + ><a href="Records.html#translateX" + ><span class="hs-identifier hs-var hs-var" + >translateX</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043786" + ><span class="annot" + ><span class="annottext" + >p :: Point +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >p</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043785" + ><span class="annot" + ><span class="annottext" + >d :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >d</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >p</span - ></a + ><span class="annot" + ><span class="annottext" + >Point +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >p</span + ></a + ></span ><span > </span ><span class="hs-special" >{</span ><span > </span - ><span class="hs-identifier" - >x</span + ><span class="annot" + ><span class="annottext" + >x :: Int +</span + ><a href="Records.html#x" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><span class="hs-identifier" - >x</span + ><span class="annot" + ><span class="annottext" + >Point -> Int +</span + ><a href="Records.html#x" + ><span class="hs-identifier hs-var hs-var" + >x</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >p</span - ></a + ><span class="annot" + ><span class="annottext" + >Point +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >p</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" - >d</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >d</span + ></a + ></span ><span > </span ><span class="hs-special" @@ -640,72 +920,122 @@ ><span > </span - ><a name="line-27" - ></a - ><a name="translateY" - ><a href="Records.html#translateY" - ><span class="hs-identifier" - >translateY</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >p</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >d</span - ></a - ></a + ><span id="line-27" + ></span + ><span id="translateY" + ><span class="annot" + ><span class="annottext" + >translateY :: Point -> Int -> Point +</span + ><a href="Records.html#translateY" + ><span class="hs-identifier hs-var hs-var" + >translateY</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043784" + ><span class="annot" + ><span class="annottext" + >p :: Point +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >p</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043783" + ><span class="annot" + ><span class="annottext" + >d :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >d</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >p</span - ></a + ><span class="annot" + ><span class="annottext" + >Point +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >p</span + ></a + ></span ><span > </span ><span class="hs-special" >{</span ><span > </span - ><span class="hs-identifier" - >y</span + ><span class="annot" + ><span class="annottext" + >y :: Int +</span + ><a href="Records.html#y" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><span class="hs-identifier" - >y</span + ><span class="annot" + ><span class="annottext" + >Point -> Int +</span + ><a href="Records.html#y" + ><span class="hs-identifier hs-var hs-var" + >y</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >p</span - ></a + ><span class="annot" + ><span class="annottext" + >Point +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >p</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" - >d</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >d</span + ></a + ></span ><span > </span ><span class="hs-special" @@ -713,86 +1043,118 @@ ><span > </span - ><a name="line-28" - ></a + ><span id="line-28" + ></span ><span > </span - ><a name="line-29" - ></a - ><span class="hs-identifier" - >translate</span + ><span id="line-29" + ></span + ><span class="annot" + ><a href="Records.html#translate" + ><span class="hs-identifier hs-type" + >translate</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 ><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" >-></span ><span > </span + ><span class="annot" ><a href="Records.html#Point" - ><span class="hs-identifier hs-type" - >Point</span - ></a + ><span class="hs-identifier hs-type" + >Point</span + ></a + ></span ><span > </span ><span class="hs-glyph" >-></span ><span > </span + ><span class="annot" ><a href="Records.html#Point" - ><span class="hs-identifier hs-type" - >Point</span - ></a + ><span class="hs-identifier hs-type" + >Point</span + ></a + ></span ><span > </span - ><a name="line-30" - ></a - ><a name="translate" - ><a href="Records.html#translate" - ><span class="hs-identifier" - >translate</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >x</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >y</span - ></a - ></a - ><span - > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >p</span - ></a - ></a + ><span id="line-30" + ></span + ><span id="translate" + ><span class="annot" + ><span class="annottext" + >translate :: Int -> Int -> Point -> Point +</span + ><a href="Records.html#translate" + ><span class="hs-identifier hs-var hs-var" + >translate</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043781" + ><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 id="local-6989586621679043780" + ><span class="annot" + ><span class="annottext" + >y :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043779" + ><span class="annot" + ><span class="annottext" + >p :: Point +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >p</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" @@ -800,25 +1162,35 @@ ><span > </span - ><a name="line-31" - ></a + ><span id="line-31" + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >aux</span - ></a + ><span class="annot" + ><span class="annottext" + >Point -> Point +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >aux</span + ></a + ></span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >p</span - ></a + ><span class="annot" + ><span class="annottext" + >Point +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >p</span + ></a + ></span ><span > </span - ><a name="line-32" - ></a + ><span id="line-32" + ></span ><span > </span ><span class="hs-keyword" @@ -826,28 +1198,38 @@ ><span > </span - ><a name="line-33" - ></a + ><span id="line-33" + ></span ><span > </span ><span class="hs-special" >(</span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >dx</span - ></a - ></a + ><span id="local-6989586621679043777" + ><span class="annot" + ><span class="annottext" + >dx :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >dx</span + ></a + ></span + ></span ><span class="hs-special" >,</span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >dy</span - ></a - ></a + ><span id="local-6989586621679043776" + ><span class="annot" + ><span class="annottext" + >dy :: Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >dy</span + ></a + ></span + ></span ><span class="hs-special" >)</span ><span @@ -858,109 +1240,181 @@ > </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" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span ><span class="hs-special" >)</span ><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 href="Records.html#Point" - ><span class="hs-identifier hs-var" - >Point</span - ></a - ><span class="hs-special" - >{</span - ><span class="hs-glyph" - >..</span - ><span class="hs-special" - >}</span + ><span id="local-6989586621679043778" + ><span class="annot" + ><span class="annottext" + >aux :: Point -> Point +</span + ><a href="#" + ><span class="hs-identifier hs-var hs-var" + >aux</span + ></a + ></span + ></span + ><span + > </span + ><span id="local-6989586621679043774" + ><span id="local-6989586621679043775" + ><span class="annot" + ><a href="Records.html#Point" + ><span class="hs-identifier hs-type" + >Point</span + ></a + ></span + ><span class="hs-special" + >{</span + ><span class="hs-glyph" + >..</span + ><span class="hs-special" + >}</span + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >p</span - ></a + ><span class="annot" + ><span class="annottext" + >Point +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >p</span + ></a + ></span ><span > </span ><span class="hs-special" >{</span ><span > </span - ><span class="hs-identifier" - >x</span + ><span class="annot" + ><span class="annottext" + >x :: Int +</span + ><a href="Records.html#x" + ><span class="hs-identifier hs-var" + >x</span + ></a + ></span ><span > </span ><span class="hs-glyph" >=</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" - >dx</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >dx</span + ></a + ></span ><span class="hs-special" >,</span ><span > </span - ><span class="hs-identifier" - >y</span + ><span class="annot" + ><span class="annottext" + >y :: Int +</span + ><a href="Records.html#y" + ><span class="hs-identifier hs-var" + >y</span + ></a + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a href="#" - ><span class="hs-identifier hs-var" - >y</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >y</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" - >dy</span - ></a + ><span class="annot" + ><span class="annottext" + >Int +</span + ><a href="#" + ><span class="hs-identifier hs-var" + >dy</span + ></a + ></span ><span > </span ><span class="hs-special" @@ -968,8 +1422,8 @@ ><span > </span - ><a name="line-35" - ></a + ><span id="line-35" + ></span ></pre ></body ></html diff --git a/hypsrc-test/ref/src/Types.html b/hypsrc-test/ref/src/Types.html index a8be9e78..1258b8c1 100644 --- a/hypsrc-test/ref/src/Types.html +++ b/hypsrc-test/ref/src/Types.html @@ -11,18 +11,18 @@ ><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" >module</span ><span @@ -36,84 +36,94 @@ ><span > </span - ><a name="line-5" - ></a + ><span id="line-5" + ></span ><span > </span - ><a name="line-6" - ></a + ><span id="line-6" + ></span ><span > </span - ><a name="line-7" - ></a + ><span id="line-7" + ></span ><span class="hs-keyword" >data</span ><span > </span - ><a name="Quux" - ><a href="Types.html#Quux" - ><span class="hs-identifier" - >Quux</span - ></a - ></a + ><span id="Quux" + ><span class="annot" + ><a href="Types.html#Quux" + ><span class="hs-identifier hs-var" + >Quux</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a name="Bar" - ><a href="Types.html#Bar" - ><span class="hs-identifier" - >Bar</span - ></a - ></a + ><span id="Bar" + ><span class="annot" + ><a href="Types.html#Bar" + ><span class="hs-identifier hs-var" + >Bar</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >|</span ><span > </span - ><a name="Baz" - ><a href="Types.html#Baz" - ><span class="hs-identifier" - >Baz</span - ></a - ></a + ><span id="Baz" + ><span class="annot" + ><a href="Types.html#Baz" + ><span class="hs-identifier hs-var" + >Baz</span + ></a + ></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="Foo" - ><a href="Types.html#Foo" - ><span class="hs-identifier" - >Foo</span - ></a - ></a + ><span id="Foo" + ><span class="annot" + ><a href="Types.html#Foo" + ><span class="hs-identifier hs-var" + >Foo</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a name="Foo" - ><a href="Types.html#Foo" - ><span class="hs-identifier" - >Foo</span - ></a - ></a + ><span id="Foo" + ><span class="annot" + ><a href="Types.html#Foo" + ><span class="hs-identifier hs-var" + >Foo</span + ></a + ></span + ></span ><span > </span ><span class="hs-special" @@ -123,23 +133,25 @@ ><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 class="hs-keyword" >type</span ><span > </span - ><a name="FooQuux" - ><a href="Types.html#FooQuux" - ><span class="hs-identifier" - >FooQuux</span - ></a - ></a + ><span id="FooQuux" + ><span class="annot" + ><a href="Types.html#FooQuux" + ><span class="hs-identifier hs-var" + >FooQuux</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" @@ -148,35 +160,41 @@ > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Types.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="annot" ><a href="Types.html#Quux" - ><span class="hs-identifier hs-type" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</span + ></a + ></span ><span class="hs-special" >)</span ><span > </span - ><a name="line-12" - ></a + ><span id="line-12" + ></span ><span class="hs-keyword" >type</span ><span > </span - ><a name="QuuxFoo" - ><a href="Types.html#QuuxFoo" - ><span class="hs-identifier" - >QuuxFoo</span - ></a - ></a + ><span id="QuuxFoo" + ><span class="annot" + ><a href="Types.html#QuuxFoo" + ><span class="hs-identifier hs-var" + >QuuxFoo</span + ></a + ></span + ></span ><span > </span ><span class="hs-glyph" @@ -185,35 +203,39 @@ > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Types.html#Quux" - ><span class="hs-identifier hs-type" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</span + ></a + ></span ><span class="hs-special" >,</span ><span > </span + ><span class="annot" ><a href="Types.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-13" - ></a + ><span id="line-13" + ></span ><span > </span - ><a name="line-14" - ></a + ><span id="line-14" + ></span ><span > </span - ><a name="line-15" - ></a + ><span id="line-15" + ></span ><span class="hs-keyword" >data</span ><span @@ -222,38 +244,44 @@ >family</span ><span > </span - ><a name="Norf" - ><a href="Types.html#Norf" - ><span class="hs-identifier" - >Norf</span - ></a - ></a + ><span id="Norf" + ><span class="annot" + ><a href="Types.html#Norf" + ><span class="hs-identifier hs-var" + >Norf</span + ></a + ></span + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a + ><span id="local-6989586621679043815" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >b</span - ></a - ></a + ><span id="local-6989586621679043814" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >b</span + ></a + ></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 class="hs-keyword" >data</span ><span @@ -262,51 +290,65 @@ >instance</span ><span > </span - ><a href="Types.html#Norf" - ><span class="hs-identifier hs-type" - >Norf</span - ></a + ><span id="Norf" + ><span class="annot" + ><a href="Types.html#Norf" + ><span class="hs-identifier hs-var" + >Norf</span + ></a + ></span + ></span ><span > </span + ><span class="annot" ><a href="Types.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="Types.html#Quux" - ><span class="hs-identifier hs-type" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</span + ></a + ></span ><span > </span ><span class="hs-glyph" >=</span ><span > </span - ><a name="NFQ" - ><a href="Types.html#NFQ" - ><span class="hs-identifier" - >NFQ</span - ></a - ></a + ><span id="NFQ" + ><span class="annot" + ><a href="Types.html#NFQ" + ><span class="hs-identifier hs-var" + >NFQ</span + ></a + ></span + ></span ><span > </span + ><span class="annot" ><a href="Types.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="Types.html#Quux" - ><span class="hs-identifier hs-type" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</span + ></a + ></span ><span > </span - ><a name="line-18" - ></a + ><span id="line-18" + ></span ><span class="hs-keyword" >data</span ><span @@ -315,61 +357,75 @@ >instance</span ><span > </span - ><a href="Types.html#Norf" - ><span class="hs-identifier hs-type" - >Norf</span - ></a + ><span id="Norf" + ><span class="annot" + ><a href="Types.html#Norf" + ><span class="hs-identifier hs-var" + >Norf</span + ></a + ></span + ></span ><span > </span + ><span class="annot" ><a href="Types.html#Quux" - ><span class="hs-identifier hs-type" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</span + ></a + ></span ><span > </span + ><span class="annot" ><a href="Types.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 - ><a name="NQF" - ><a href="Types.html#NQF" - ><span class="hs-identifier" - >NQF</span - ></a - ></a + ><span id="NQF" + ><span class="annot" + ><a href="Types.html#NQF" + ><span class="hs-identifier hs-var" + >NQF</span + ></a + ></span + ></span ><span > </span + ><span class="annot" ><a href="Types.html#Quux" - ><span class="hs-identifier hs-type" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</span + ></a + ></span ><span > </span + ><span class="annot" ><a href="Types.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-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 id="line-21" + ></span ><span class="hs-keyword" >type</span ><span @@ -378,38 +434,44 @@ >family</span ><span > </span - ><a name="Norf%27" - ><a href="Types.html#Norf%27" - ><span class="hs-identifier" - >Norf'</span - ></a - ></a + ><span id="Norf%27" + ><span class="annot" + ><a href="Types.html#Norf%27" + ><span class="hs-identifier hs-var" + >Norf'</span + ></a + ></span + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >a</span - ></a - ></a + ><span id="local-6989586621679043811" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ></span + ></span ><span > </span - ><a name="" - ><a href="#" - ><span class="hs-identifier" - >b</span - ></a - ></a + ><span id="local-6989586621679043810" + ><span class="annot" + ><a href="#" + ><span class="hs-identifier hs-type" + >b</span + ></a + ></span + ></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 class="hs-keyword" >type</span ><span @@ -418,22 +480,30 @@ >instance</span ><span > </span - ><a href="Types.html#Norf%27" - ><span class="hs-identifier hs-type" - >Norf'</span - ></a + ><span id="Norf%27" + ><span class="annot" + ><a href="Types.html#Norf%27" + ><span class="hs-identifier hs-var" + >Norf'</span + ></a + ></span + ></span ><span > </span + ><span class="annot" ><a href="Types.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="Types.html#Quux" - ><span class="hs-identifier hs-type" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</span + ></a + ></span ><span > </span ><span class="hs-glyph" @@ -442,25 +512,29 @@ > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Types.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="annot" ><a href="Types.html#Quux" - ><span class="hs-identifier hs-type" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</span + ></a + ></span ><span class="hs-special" >)</span ><span > </span - ><a name="line-24" - ></a + ><span id="line-24" + ></span ><span class="hs-keyword" >type</span ><span @@ -469,22 +543,30 @@ >instance</span ><span > </span - ><a href="Types.html#Norf%27" - ><span class="hs-identifier hs-type" - >Norf'</span - ></a + ><span id="Norf%27" + ><span class="annot" + ><a href="Types.html#Norf%27" + ><span class="hs-identifier hs-var" + >Norf'</span + ></a + ></span + ></span ><span > </span + ><span class="annot" ><a href="Types.html#Quux" - ><span class="hs-identifier hs-type" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</span + ></a + ></span ><span > </span + ><span class="annot" ><a href="Types.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" @@ -493,94 +575,119 @@ > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Types.html#Quux" - ><span class="hs-identifier hs-type" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</span + ></a + ></span ><span class="hs-special" >,</span ><span > </span + ><span class="annot" ><a href="Types.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 + ><span id="line-25" + ></span ><span > </span - ><a name="line-26" - ></a + ><span id="line-26" + ></span ><span > </span - ><a name="line-27" - ></a - ><span class="hs-identifier" - >norf1</span + ><span id="line-27" + ></span + ><span class="annot" + ><a href="Types.html#norf1" + ><span class="hs-identifier hs-type" + >norf1</span + ></a + ></span ><span > </span ><span class="hs-glyph" >::</span ><span > </span + ><span class="annot" ><a href="Types.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="annot" ><a href="Types.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="Types.html#Quux" - ><span class="hs-identifier hs-type" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</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-28" - ></a - ><a name="norf1" - ><a href="Types.html#norf1" - ><span class="hs-identifier" - >norf1</span - ></a - ></a + ><span id="line-28" + ></span + ><span id="norf1" + ><span class="annot" + ><span class="annottext" + >norf1 :: Norf Foo Quux -> Int +</span + ><a href="Types.html#norf1" + ><span class="hs-identifier hs-var hs-var" + >norf1</span + ></a + ></span + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Types.html#NFQ" - ><span class="hs-identifier hs-var" - >NFQ</span - ></a + ><span class="hs-identifier hs-type" + >NFQ</span + ></a + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Types.html#Foo" - ><span class="hs-identifier hs-var" - >Foo</span - ></a + ><span class="hs-identifier hs-type" + >Foo</span + ></a + ></span ><span > </span ><span class="hs-special" @@ -591,10 +698,12 @@ >)</span ><span > </span + ><span class="annot" ><a href="Types.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 @@ -603,31 +712,41 @@ >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >0</span + >0</span + ></span ><span > </span - ><a name="line-29" - ></a - ><span class="hs-identifier" - >norf1</span + ><span id="line-29" + ></span + ><span class="annot" + ><a href="Types.html#norf1" + ><span class="hs-identifier hs-var" + >norf1</span + ></a + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Types.html#NFQ" - ><span class="hs-identifier hs-var" - >NFQ</span - ></a + ><span class="hs-identifier hs-type" + >NFQ</span + ></a + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Types.html#Foo" - ><span class="hs-identifier hs-var" - >Foo</span - ></a + ><span class="hs-identifier hs-type" + >Foo</span + ></a + ></span ><span > </span ><span class="hs-special" @@ -638,10 +757,12 @@ >)</span ><span > </span + ><span class="annot" ><a href="Types.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 @@ -650,83 +771,108 @@ >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >1</span + >1</span + ></span ><span > </span - ><a name="line-30" - ></a + ><span id="line-30" + ></span ><span > </span - ><a name="line-31" - ></a - ><span class="hs-identifier" - >norf2</span + ><span id="line-31" + ></span + ><span class="annot" + ><a href="Types.html#norf2" + ><span class="hs-identifier hs-type" + >norf2</span + ></a + ></span ><span > </span ><span class="hs-glyph" >::</span ><span > </span + ><span class="annot" ><a href="Types.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="annot" ><a href="Types.html#Quux" - ><span class="hs-identifier hs-type" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</span + ></a + ></span ><span > </span + ><span class="annot" ><a href="Types.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-32" - ></a - ><a name="norf2" - ><a href="Types.html#norf2" - ><span class="hs-identifier" - >norf2</span - ></a - ></a + ><span id="line-32" + ></span + ><span id="norf2" + ><span class="annot" + ><span class="annottext" + >norf2 :: Norf Quux Foo -> Int +</span + ><a href="Types.html#norf2" + ><span class="hs-identifier hs-var hs-var" + >norf2</span + ></a + ></span + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Types.html#NQF" - ><span class="hs-identifier hs-var" - >NQF</span - ></a + ><span class="hs-identifier hs-type" + >NQF</span + ></a + ></span ><span > </span + ><span class="annot" ><a href="Types.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-special" >(</span + ><span class="annot" ><a href="Types.html#Foo" - ><span class="hs-identifier hs-var" - >Foo</span - ></a + ><span class="hs-identifier hs-type" + >Foo</span + ></a + ></span ><span > </span ><span class="hs-special" @@ -743,37 +889,49 @@ >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >0</span + >0</span + ></span ><span > </span - ><a name="line-33" - ></a - ><span class="hs-identifier" - >norf2</span + ><span id="line-33" + ></span + ><span class="annot" + ><a href="Types.html#norf2" + ><span class="hs-identifier hs-var" + >norf2</span + ></a + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Types.html#NQF" - ><span class="hs-identifier hs-var" - >NQF</span - ></a + ><span class="hs-identifier hs-type" + >NQF</span + ></a + ></span ><span > </span + ><span class="annot" ><a href="Types.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-special" >(</span + ><span class="annot" ><a href="Types.html#Foo" - ><span class="hs-identifier hs-var" - >Foo</span - ></a + ><span class="hs-identifier hs-type" + >Foo</span + ></a + ></span ><span > </span ><span class="hs-special" @@ -790,74 +948,95 @@ >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >1</span + >1</span + ></span ><span > </span - ><a name="line-34" - ></a + ><span id="line-34" + ></span ><span > </span - ><a name="line-35" - ></a + ><span id="line-35" + ></span ><span > </span - ><a name="line-36" - ></a - ><span class="hs-identifier" - >norf1'</span + ><span id="line-36" + ></span + ><span class="annot" + ><a href="Types.html#norf1%27" + ><span class="hs-identifier hs-type" + >norf1'</span + ></a + ></span ><span > </span ><span class="hs-glyph" >::</span ><span > </span + ><span class="annot" ><a href="Types.html#Norf%27" - ><span class="hs-identifier hs-type" - >Norf'</span - ></a + ><span class="hs-identifier hs-type" + >Norf'</span + ></a + ></span ><span > </span + ><span class="annot" ><a href="Types.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="Types.html#Quux" - ><span class="hs-identifier hs-type" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</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-37" - ></a - ><a name="norf1%27" - ><a href="Types.html#norf1%27" - ><span class="hs-identifier" - >norf1'</span - ></a - ></a + ><span id="line-37" + ></span + ><span id="norf1%27" + ><span class="annot" + ><span class="annottext" + >norf1' :: Norf' Foo Quux -> Int +</span + ><a href="Types.html#norf1%27" + ><span class="hs-identifier hs-var hs-var" + >norf1'</span + ></a + ></span + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Types.html#Foo" - ><span class="hs-identifier hs-var" - >Foo</span - ></a + ><span class="hs-identifier hs-type" + >Foo</span + ></a + ></span ><span > </span ><span class="hs-special" @@ -868,10 +1047,12 @@ >,</span ><span > </span + ><span class="annot" ><a href="Types.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 @@ -880,23 +1061,31 @@ >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >0</span + >0</span + ></span ><span > </span - ><a name="line-38" - ></a - ><span class="hs-identifier" - >norf1'</span + ><span id="line-38" + ></span + ><span class="annot" + ><a href="Types.html#norf1%27" + ><span class="hs-identifier hs-var" + >norf1'</span + ></a + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Types.html#Foo" - ><span class="hs-identifier hs-var" - >Foo</span - ></a + ><span class="hs-identifier hs-type" + >Foo</span + ></a + ></span ><span > </span ><span class="hs-special" @@ -907,10 +1096,12 @@ >,</span ><span > </span + ><span class="annot" ><a href="Types.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 @@ -919,77 +1110,100 @@ >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >1</span + >1</span + ></span ><span > </span - ><a name="line-39" - ></a + ><span id="line-39" + ></span ><span > </span - ><a name="line-40" - ></a - ><span class="hs-identifier" - >norf2'</span + ><span id="line-40" + ></span + ><span class="annot" + ><a href="Types.html#norf2%27" + ><span class="hs-identifier hs-type" + >norf2'</span + ></a + ></span ><span > </span ><span class="hs-glyph" >::</span ><span > </span + ><span class="annot" ><a href="Types.html#Norf%27" - ><span class="hs-identifier hs-type" - >Norf'</span - ></a + ><span class="hs-identifier hs-type" + >Norf'</span + ></a + ></span ><span > </span + ><span class="annot" ><a href="Types.html#Quux" - ><span class="hs-identifier hs-type" - >Quux</span - ></a + ><span class="hs-identifier hs-type" + >Quux</span + ></a + ></span ><span > </span + ><span class="annot" ><a href="Types.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-41" - ></a - ><a name="norf2%27" - ><a href="Types.html#norf2%27" - ><span class="hs-identifier" - >norf2'</span - ></a - ></a + ><span id="line-41" + ></span + ><span id="norf2%27" + ><span class="annot" + ><span class="annottext" + >norf2' :: Norf' Quux Foo -> Int +</span + ><a href="Types.html#norf2%27" + ><span class="hs-identifier hs-var hs-var" + >norf2'</span + ></a + ></span + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Types.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 + ><span class="annot" ><a href="Types.html#Foo" - ><span class="hs-identifier hs-var" - >Foo</span - ></a + ><span class="hs-identifier hs-type" + >Foo</span + ></a + ></span ><span > </span ><span class="hs-special" @@ -1004,31 +1218,41 @@ >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >0</span + >0</span + ></span ><span > </span - ><a name="line-42" - ></a - ><span class="hs-identifier" - >norf2'</span + ><span id="line-42" + ></span + ><span class="annot" + ><a href="Types.html#norf2%27" + ><span class="hs-identifier hs-var" + >norf2'</span + ></a + ></span ><span > </span ><span class="hs-special" >(</span + ><span class="annot" ><a href="Types.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 + ><span class="annot" ><a href="Types.html#Foo" - ><span class="hs-identifier hs-var" - >Foo</span - ></a + ><span class="hs-identifier hs-type" + >Foo</span + ></a + ></span ><span > </span ><span class="hs-special" @@ -1043,13 +1267,15 @@ >=</span ><span > </span + ><span class="annot" ><span class="hs-number" - >1</span + >1</span + ></span ><span > </span - ><a name="line-43" - ></a + ><span id="line-43" + ></span ></pre ></body ></html diff --git a/hypsrc-test/src/ClangCppBug.hs b/hypsrc-test/src/ClangCppBug.hs new file mode 100644 index 00000000..4b0bc35f --- /dev/null +++ b/hypsrc-test/src/ClangCppBug.hs @@ -0,0 +1,21 @@ +{-# LANGUAGE CPP #-} +module ClangCppBug where + +foo :: Int +foo = 1 + +-- Clang doesn't mind these: +#define BAX 2 +{-# INLINE bar #-} + +bar :: Int +bar = 3 + +-- But it doesn't like this: +{-# RULES +"bar/qux" bar = qux +"qux/foo" qux = foo + #-} + +qux :: Int +qux = 88 diff --git a/hypsrc-test/src/LinkingIdentifiers.hs b/hypsrc-test/src/LinkingIdentifiers.hs new file mode 100644 index 00000000..4fff9776 --- /dev/null +++ b/hypsrc-test/src/LinkingIdentifiers.hs @@ -0,0 +1,14 @@ +-- Tests that the identifers/operators are properly linked even when: +-- +-- * backquoted, parenthesized, vanilla +-- * qualified, not-qualified +-- +module LinkingIdentifiers where + +ident :: Int -> Int -> Int +x `ident` 2 = (x `ident` 2) + (x `LinkingIdentifiers.ident` 2) +ident x 2 = ident x 2 + LinkingIdentifiers.ident x 2 + +(++:++) :: Int -> Int -> Int +x ++:++ 2 = (x ++:++ 2) + (x LinkingIdentifiers.++:++ 2) +(++:++) x 2 = (++:++) x 2 + (LinkingIdentifiers.++:++) x 2 diff --git a/hypsrc-test/src/PositionPragmas.hs b/hypsrc-test/src/PositionPragmas.hs new file mode 100644 index 00000000..907316fd --- /dev/null +++ b/hypsrc-test/src/PositionPragmas.hs @@ -0,0 +1,12 @@ +module PositionPragmas where + +{-# LINE 8 "hypsrc-test/src/PositionPragmas.hs" #-} + +foo :: String +foo = bar + +{-# LINE 23 "hypsrc-test/src/PositionPragmas.hs" #-} + +bar :: String +bar = foo + |