<HTML>


<FONT FACE="MS Shell Dlg" DEFAULT="FACE"><FONT SIZE="1" POINTSIZE="8" DEFAULT="SIZE">Hello,<BR>

<BR>

See this message:<BR>

<BR>

http://article.gmane.org/gmane.comp.lang.haskell.general/13145/<BR>

<BR>

Your (initial) program should work in GHC 6.2. I actually find this feature useful, <BR>

but Simon apparently changed this when moving to GHC 6.4 and nobody complained...<BR>

Apparently not many people use this feature.<BR>

<BR>

Cheers,<BR>

<BR>

Bruno<BR>

<BR>

On Sat, 08 Apr 2006 18:31:03 +0000, C Rodrigues wrote:<BR>

<BR>

&gt;This counterintuitive typechecking result came up when I wrote a wrapper <BR>

&gt;around runST.  Is there some limitation of HM with respect to type checking <BR>

&gt;pattern matching?<BR>

&gt;<BR>

&gt;data X a b = X (a -&gt; a)<BR>

&gt;run :: forall a. (forall b. X a b) -&gt; a -&gt; a<BR>

&gt;-- This definition doesn't pass the typechecker<BR>

&gt;run (X f) = f<BR>

&gt;-- But this definition works<BR>

&gt;run x = (\(X f) -&gt; f) x<BR>

&gt;<BR>

&gt;<BR>

&gt;_______________________________________________<BR>

&gt;Haskell-Cafe mailing list<BR>

&gt;<FONT COLOR=0000ff><U>Haskell-Cafe@haskell.org<FONT COLOR=000000 DEFAULT="COLOR"></U><BR>

&gt;<FONT COLOR=0000ff><U>http://www.haskell.org/mailman/listinfo/haskell-cafe<FONT COLOR=000000 DEFAULT="COLOR"></U><BR>

<BR>


</HTML>