<listitem><para>A pattern type signature (<xref linkend="pattern-type-sigs"/>)</para></listitem>
<listitem><para>Class and instance declarations (<xref linkend="cls-inst-scoped-tyvars"/>)</para></listitem>
</itemizedlist>
-In addition, GHC supports result type signatures (<xref
-linkend="result-type-sigs"/>), although they never bind type variables.
</para>
<para>
In Haskell, a programmer-written type signature is implicitly quantifed over
</sect3>
+
+<!-- ==================== Commented out part about result type signatures
+
<sect3 id="result-type-sigs">
<title>Result type signatures</title>
The result type of a function, lambda, or case expression alternative can be given a signature, thus:
<programlisting>
- -- f assumes that 'a' is already in scope
+ {- f assumes that 'a' is already in scope -}
f x y :: [a] = [x,y,x]
g = \ x :: [Int] -> [3,4]
There are a couple of syntactic wrinkles. First, notice that all three
examples would parse quite differently with parentheses:
<programlisting>
- -- f assumes that 'a' is already in scope
+ {- f assumes that 'a' is already in scope -}
f x (y :: [a]) = [x,y,x]
g = \ (x :: [Int]) -> [3,4]
</para>
</sect3>
+ -->
+
<sect3 id="cls-inst-scoped-tyvars">
<title>Class and instance declarations</title>
<para>