<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 RankNTypes #-}</span ><span > </span ><a name="line-2" ></a ><span class="hs-pragma" >{-# LANGUAGE ScopedTypeVariables #-}</span ><span > </span ><a name="line-3" ></a ><span > </span ><a name="line-4" ></a ><span > </span ><a name="line-5" ></a ><span class="hs-keyword" >module</span ><span > </span ><span class="hs-identifier" >Polymorphism</span ><span > </span ><span class="hs-keyword" >where</span ><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 > </span ><span class="hs-glyph" >=</span ><span > </span ><span class="hs-identifier hs-var" >undefined</span ><span > </span ><a name="line-10" ></a ><span > </span ><a name="line-11" ></a ><span class="hs-identifier" >foo'</span ><span > </span ><span class="hs-glyph" >::</span ><span > </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 ><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-12" ></a ><a name="foo%27" ><a href="Polymorphism.html#foo%27" ><span class="hs-identifier" >foo'</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-13" ></a ><span > </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 ><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 > </span ><a name="line-15" ></a ><a name="bar" ><a href="Polymorphism.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" >undefined</span ><span > </span ><a name="line-16" ></a ><span > </span ><a name="line-17" ></a ><span class="hs-identifier" >bar'</span ><span > </span ><span class="hs-glyph" >::</span ><span > </span ><span class="hs-keyword" >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 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 ><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" >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 > </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 ><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 ><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 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 > </span ><span class="hs-glyph" >=</span ><span > </span ><span class="hs-identifier hs-var" >undefined</span ><span > </span ><a name="line-22" ></a ><span > </span ><a name="line-23" ></a ><span class="hs-identifier" >baz'</span ><span > </span ><span class="hs-glyph" >::</span ><span > </span ><span class="hs-keyword" >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 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 class="hs-special" >(</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 ><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 class="hs-glyph" >-></span ><span > </span ><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 ></a ></a ><span > </span ><span class="hs-glyph" >=</span ><span > </span ><span class="hs-identifier hs-var" >undefined</span ><span > </span ><a name="line-25" ></a ><span > </span ><a name="line-26" ></a ><span class="hs-identifier" >quux</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 ><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" >a</span ></a ><span > </span ><a name="line-27" ></a ><a name="quux" ><a href="Polymorphism.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 > </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 ><a name="line-28" ></a ><span > </span ><a name="line-29" ></a ><span class="hs-identifier" >quux'</span ><span > </span ><span class="hs-glyph" >::</span ><span > </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 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 ><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" >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 ></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 ><a name="line-31" ></a ><span > </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 ><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 ><span class="hs-glyph" >-></span ><span > </span ><a href="#" ><span class="hs-identifier hs-type" >a</span ></a ><span > </span ><a name="line-34" ></a ><a name="num" ><a href="Polymorphism.html#num" ><span class="hs-identifier" >num</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-35" ></a ><span > </span ><a name="line-36" ></a ><span class="hs-identifier" >num'</span ><span > </span ><span class="hs-glyph" >::</span ><span > </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" >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 > </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-37" ></a ><a name="num%27" ><a href="Polymorphism.html#num%27" ><span class="hs-identifier" >num'</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-38" ></a ><span > </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 ><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 ><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 > </span ><span class="hs-glyph" >=</span ><span > </span ><span class="hs-identifier hs-var" >undefined</span ><span > </span ><a name="line-41" ></a ><span > </span ><a name="line-42" ></a ><span class="hs-identifier" >eq'</span ><span > </span ><span class="hs-glyph" >::</span ><span > </span ><span class="hs-keyword" >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 class="hs-operator" >.</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 ><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 ><a href="#" ><span class="hs-identifier hs-type" >b</span ></a ><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 ><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 ><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 ><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 > </span ><span class="hs-glyph" >=</span ><span > </span ><span class="hs-identifier hs-var" >undefined</span ><span > </span ><a name="line-47" ></a ><span > </span ><a name="line-48" ></a ><span class="hs-identifier" >mon'</span ><span > </span ><span class="hs-glyph" >::</span ><span > </span ><span class="hs-keyword" >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 class="hs-operator" >.</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 ><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 ><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 ></a ></a ><span > </span ><span class="hs-glyph" >=</span ><span > </span ><span class="hs-identifier hs-var" >undefined</span ><span > </span ><a name="line-50" ></a ><span > </span ><a name="line-51" ></a ><span > </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 ><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 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 ><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" >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 ><a name="line-54" ></a ><span > </span ><a name="line-55" ></a ><span class="hs-identifier" >norf'</span ><span > </span ><span class="hs-glyph" >::</span ><span > </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 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 ><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 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 ><a name="line-56" ></a ><a name="norf%27" ><a href="Polymorphism.html#norf%27" ><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" >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 ><a name="line-57" ></a ><span > </span ><a name="line-58" ></a ><span > </span ><a name="line-59" ></a ><span class="hs-identifier" >plugh</span ><span > </span ><span class="hs-glyph" >::</span ><span > </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 ><a href="#" ><span class="hs-identifier hs-type" >a</span ></a ><span > </span ><a name="line-60" ></a ><a name="plugh" ><a href="Polymorphism.html#plugh" ><span class="hs-identifier" >plugh</span ></a ></a ><span > </span ><a name="" ><a href="#" ><span class="hs-identifier" >x</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 class="hs-glyph" >::</span ><span > </span ><a href="#" ><span class="hs-identifier hs-type" >a</span ></a ><span > </span ><a name="line-61" ></a ><span > </span ><a name="line-62" ></a ><span class="hs-identifier" >thud</span ><span > </span ><span class="hs-glyph" >::</span ><span > </span ><span class="hs-keyword" >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 class="hs-operator" >.</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" >b</span ></a ><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 ><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 > </span ><a name="line-63" ></a ><a name="thud" ><a href="Polymorphism.html#thud" ><span class="hs-identifier" >thud</span ></a ></a ><span > </span ><a name="" ><a href="#" ><span class="hs-identifier" >f</span ></a ></a ><span > </span ><a name="" ><a href="#" ><span class="hs-identifier" >x</span ></a ></a ><span > </span ><span class="hs-glyph" >=</span ><span > </span ><a name="line-64" ></a ><span > </span ><span class="hs-special" >(</span ><a href="#" ><span class="hs-identifier hs-var" >x</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 ><a href="#" ><span class="hs-identifier hs-var" >y</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 ><a href="#" ><span class="hs-identifier hs-type" >b</span ></a ><span class="hs-special" >)</span ><span > </span ><a name="line-65" ></a ><span > </span ><span class="hs-keyword" >where</span ><span > </span ><a name="line-66" ></a ><span > </span ><a name="" ><a href="#" ><span class="hs-identifier" >y</span ></a ></a ><span > </span ><span class="hs-glyph" >=</span ><span > </span ><span class="hs-special" >(</span ><a href="#" ><span class="hs-identifier hs-var" >f</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" >b</span ></a ><span class="hs-special" >)</span ><span > </span ><a href="#" ><span class="hs-identifier hs-var" >x</span ></a ><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-67" ></a ></pre ></body ></html >