[project @ 2002-08-01 12:49:06 by simonpj]
authorsimonpj <unknown>
Thu, 1 Aug 2002 12:49:06 +0000 (12:49 +0000)
committersimonpj <unknown>
Thu, 1 Aug 2002 12:49:06 +0000 (12:49 +0000)
More documentation about hoisting

ghc/docs/users_guide/glasgow_exts.sgml

index 5af7633..43191f4 100644 (file)
@@ -1570,6 +1570,18 @@ valid way to write <literal>g</literal>'s type signature:
   g :: Int -> Int -> forall b. b -> Int
 </programlisting>
 </para>
+<para>
+When doing this hoisting operation, GHC eliminates duplicate constraints.  For
+example:
+<programlisting>
+  type Foo a = (?x::Int) => Bool -> a
+  g :: Foo (Foo Int)
+</programlisting>
+means
+<programlisting>
+  g :: (?x::Int) => Bool -> Bool -> Int
+</programlisting>
+</para>
 </sect2>