blob: 641ba5127b829f93748e71b2480d02fe15c2c949 (
plain) (
tree)
|
|
<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 Haskell2010 #-}</span
><span
>
</span
><span id="line-2"
></span
><span class="hs-pragma"
>{-# LANGUAGE TypeFamilies #-}</span
><span
>
</span
><span id="line-3"
></span
><span
>
</span
><span id="line-4"
></span
><span
>
</span
><span id="line-5"
></span
><span class="hs-keyword"
>module</span
><span
> </span
><span class="hs-identifier"
>Types</span
><span
> </span
><span class="hs-keyword"
>where</span
><span
>
</span
><span id="line-6"
></span
><span
>
</span
><span id="line-7"
></span
><span
>
</span
><span id="line-8"
></span
><span class="hs-keyword"
>data</span
><span
> </span
><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
><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
><span id="Baz"
><span class="annot"
><a href="Types.html#Baz"
><span class="hs-identifier hs-var"
>Baz</span
></a
></span
></span
><span
>
</span
><span id="line-9"
></span
><span
>
</span
><span id="line-10"
></span
><span class="hs-keyword"
>newtype</span
><span
> </span
><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
><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"
>(</span
><span class="hs-special"
>)</span
><span
>
</span
><span id="line-11"
></span
><span
>
</span
><span id="line-12"
></span
><span class="hs-keyword"
>type</span
><span
> </span
><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"
>=</span
><span
> </span
><span class="hs-special"
>(</span
><span class="annot"
><a href="Types.html#Foo"
><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
><span class="hs-special"
>)</span
><span
>
</span
><span id="line-13"
></span
><span class="hs-keyword"
>type</span
><span
> </span
><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"
>=</span
><span
> </span
><span class="hs-special"
>(</span
><span class="annot"
><a href="Types.html#Quux"
><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
><span class="hs-special"
>)</span
><span
>
</span
><span id="line-14"
></span
><span
>
</span
><span id="line-15"
></span
><span
>
</span
><span id="line-16"
></span
><span class="hs-keyword"
>data</span
><span
> </span
><span class="hs-keyword"
>family</span
><span
> </span
><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 id=""
><span class="annot"
><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
></span
></span
><span
> </span
><span id=""
><span class="annot"
><a href="#"
><span class="hs-identifier hs-type"
>b</span
></a
></span
></span
><span
>
</span
><span id="line-17"
></span
><span
>
</span
><span id="line-18"
></span
><span class="hs-keyword"
>data</span
><span
> </span
><span class="hs-keyword"
>instance</span
><span
> </span
><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
><span
> </span
><span class="annot"
><a href="Types.html#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
></span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><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
><span
> </span
><span class="annot"
><a href="Types.html#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
></span
><span
>
</span
><span id="line-19"
></span
><span class="hs-keyword"
>data</span
><span
> </span
><span class="hs-keyword"
>instance</span
><span
> </span
><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
><span
> </span
><span class="annot"
><a href="Types.html#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
></span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><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
><span
> </span
><span class="annot"
><a href="Types.html#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
></span
><span
>
</span
><span id="line-20"
></span
><span
>
</span
><span id="line-21"
></span
><span
>
</span
><span id="line-22"
></span
><span class="hs-keyword"
>type</span
><span
> </span
><span class="hs-keyword"
>family</span
><span
> </span
><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 id=""
><span class="annot"
><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
></span
></span
><span
> </span
><span id=""
><span class="annot"
><a href="#"
><span class="hs-identifier hs-type"
>b</span
></a
></span
></span
><span
>
</span
><span id="line-23"
></span
><span
>
</span
><span id="line-24"
></span
><span class="hs-keyword"
>type</span
><span
> </span
><span class="hs-keyword"
>instance</span
><span
> </span
><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
><span
> </span
><span class="annot"
><a href="Types.html#Quux"
><span class="hs-identifier hs-type"
>Quux</span
></a
></span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><span class="hs-special"
>(</span
><span class="annot"
><a href="Types.html#Foo"
><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
><span class="hs-special"
>)</span
><span
>
</span
><span id="line-25"
></span
><span class="hs-keyword"
>type</span
><span
> </span
><span class="hs-keyword"
>instance</span
><span
> </span
><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
><span
> </span
><span class="annot"
><a href="Types.html#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
></span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><span class="hs-special"
>(</span
><span class="annot"
><a href="Types.html#Quux"
><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
><span class="hs-special"
>)</span
><span
>
</span
><span id="line-26"
></span
><span
>
</span
><span id="line-27"
></span
><span
>
</span
><span id="line-28"
></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
><span
> </span
><span class="annot"
><a href="Types.html#Foo"
><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
><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-29"
></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-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-type"
>Foo</span
></a
></span
><span
> </span
><span class="hs-special"
>(</span
><span class="hs-special"
>)</span
><span class="hs-special"
>)</span
><span
> </span
><span class="annot"
><span class="annottext"
>Quux
</span
><a href="Types.html#Bar"
><span class="hs-identifier hs-var"
>Bar</span
></a
></span
><span class="hs-special"
>)</span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><span class="annot"
><span class="annottext"
>Int
</span
><span class="hs-number"
>0</span
></span
><span
>
</span
><span id="line-30"
></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-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-type"
>Foo</span
></a
></span
><span
> </span
><span class="hs-special"
>(</span
><span class="hs-special"
>)</span
><span class="hs-special"
>)</span
><span
> </span
><span class="annot"
><span class="annottext"
>Quux
</span
><a href="Types.html#Baz"
><span class="hs-identifier hs-var"
>Baz</span
></a
></span
><span class="hs-special"
>)</span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><span class="annot"
><span class="annottext"
>Int
</span
><span class="hs-number"
>1</span
></span
><span
>
</span
><span id="line-31"
></span
><span
>
</span
><span id="line-32"
></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
><span
> </span
><span class="annot"
><a href="Types.html#Quux"
><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
><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-33"
></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-type"
>NQF</span
></a
></span
><span
> </span
><span class="annot"
><span class="annottext"
>Quux
</span
><a href="Types.html#Bar"
><span class="hs-identifier hs-var"
>Bar</span
></a
></span
><span
> </span
><span class="hs-special"
>(</span
><span class="annot"
><a href="Types.html#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
></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-glyph"
>=</span
><span
> </span
><span class="annot"
><span class="annottext"
>Int
</span
><span class="hs-number"
>0</span
></span
><span
>
</span
><span id="line-34"
></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-type"
>NQF</span
></a
></span
><span
> </span
><span class="annot"
><span class="annottext"
>Quux
</span
><a href="Types.html#Baz"
><span class="hs-identifier hs-var"
>Baz</span
></a
></span
><span
> </span
><span class="hs-special"
>(</span
><span class="annot"
><a href="Types.html#Foo"
><span class="hs-identifier hs-type"
>Foo</span
></a
></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-glyph"
>=</span
><span
> </span
><span class="annot"
><span class="annottext"
>Int
</span
><span class="hs-number"
>1</span
></span
><span
>
</span
><span id="line-35"
></span
><span
>
</span
><span id="line-36"
></span
><span
>
</span
><span id="line-37"
></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
><span
> </span
><span class="annot"
><a href="Types.html#Foo"
><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
><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-38"
></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-type"
>Foo</span
></a
></span
><span
> </span
><span class="hs-special"
>(</span
><span class="hs-special"
>)</span
><span class="hs-special"
>,</span
><span
> </span
><span class="annot"
><span class="annottext"
>Quux
</span
><a href="Types.html#Bar"
><span class="hs-identifier hs-var"
>Bar</span
></a
></span
><span class="hs-special"
>)</span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><span class="annot"
><span class="annottext"
>Int
</span
><span class="hs-number"
>0</span
></span
><span
>
</span
><span id="line-39"
></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-type"
>Foo</span
></a
></span
><span
> </span
><span class="hs-special"
>(</span
><span class="hs-special"
>)</span
><span class="hs-special"
>,</span
><span
> </span
><span class="annot"
><span class="annottext"
>Quux
</span
><a href="Types.html#Baz"
><span class="hs-identifier hs-var"
>Baz</span
></a
></span
><span class="hs-special"
>)</span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><span class="annot"
><span class="annottext"
>Int
</span
><span class="hs-number"
>1</span
></span
><span
>
</span
><span id="line-40"
></span
><span
>
</span
><span id="line-41"
></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
><span
> </span
><span class="annot"
><a href="Types.html#Quux"
><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
><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-42"
></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"
><span class="annottext"
>Quux
</span
><a href="Types.html#Bar"
><span class="hs-identifier hs-var"
>Bar</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
><span
> </span
><span class="hs-special"
>(</span
><span class="hs-special"
>)</span
><span class="hs-special"
>)</span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><span class="annot"
><span class="annottext"
>Int
</span
><span class="hs-number"
>0</span
></span
><span
>
</span
><span id="line-43"
></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"
><span class="annottext"
>Quux
</span
><a href="Types.html#Baz"
><span class="hs-identifier hs-var"
>Baz</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
><span
> </span
><span class="hs-special"
>(</span
><span class="hs-special"
>)</span
><span class="hs-special"
>)</span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><span class="annot"
><span class="annottext"
>Int
</span
><span class="hs-number"
>1</span
></span
><span
>
</span
><span id="line-44"
></span
></pre
></body
></html
>
|