If GHC handles the explicit &quot;forall&quot; in constructor &quot;T1&quot; in the same way as it does for function &quot;f&quot;, we have:<br><br><blockquote type="cite"><pre style="text-align:left;margin-bottom:0px;margin-top:0px">
<span style="font-size:13px;color:rgb(57,116,96)">data</span><font size="3"> </font><span style="font-size:13px;color:rgb(79,67,113)">T</span><font size="3"> </font><span style="font-size:13px;color:rgb(51,51,51)">a</span><font size="3"> </font><span style="font-size:13px;color:rgb(57,116,96)">where</span><font size="3"> </font><span style="font-size:13px;color:rgb(79,67,113)">T1</span><font size="3"> </font><span style="font-size:13px">::</span><font size="3"> </font><span style="font-size:13px">(</span><span style="font-size:13px;color:rgb(57,116,96)">forall</span><font size="3"> </font><span style="font-size:13px;color:rgb(51,51,51)">b</span><span style="font-size:13px;color:rgb(51,51,51)">.</span><font size="3"> </font><span style="font-size:13px;color:rgb(51,51,51)">b</span><font size="3"> </font><span style="font-size:13px">-&gt;</span><font size="3"> </font><span style="font-size:13px;color:rgb(51,51,51)">b</span><span style="font-size:13px">)</span><font size="3"> </font><span style="font-size:13px">-&gt;</span><font size="3"> </font><span style="font-size:13px;color:rgb(79,67,113)">Int</span><font size="3"> </font><span style="font-size:13px">-&gt;</span><font size="3"> </font><span style="font-size:13px;color:rgb(79,67,113)">T</span><font size="3"> </font><span style="color:rgb(51,51,51)"><font size="3">a
</font></span></pre></blockquote><br><div class="gmail_quote">Which is totally fine! The main question is then why the &quot;forall&quot;s are handled differently?<br><br></div><div class="gmail_quote">On Tue, Jul 31, 2012 at 9:07 PM, MigMit <span dir="ltr">&lt;<a href="mailto:miguelimo38@yandex.ru" target="_blank">miguelimo38@yandex.ru</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF"><div>It really seems to me that the error message you&#39;ve got explains everything quite clear.<br>
<br>Отправлено с iPad</div><div><br>31.07.2012, в 22:59, Shayan Najd Javadipour &lt;<a href="mailto:sh.najd@gmail.com" target="_blank">sh.najd@gmail.com</a>&gt; написал(а):<br><br></div><div><div class="h5"><div></div><blockquote type="cite">
<div>Hi, <br><br>I wonder why the following code doesn&#39;t typecheck in GHC 7.4.1:<br><br><div><pre style="text-align:left;margin-bottom:0px;margin-top:0px"><span style="font-size:13px;color:rgb(85,85,85)">{-# LANGUAGE GADTs,RankNTypes #-}</span><font size="3">
</font><span style="font-size:13px;color:rgb(57,116,96)">data</span><font size="3"> </font><span style="font-size:13px;color:rgb(79,67,113)">T</span><font size="3"> </font><span style="font-size:13px;color:rgb(51,51,51)">a</span><font size="3"> </font><span style="font-size:13px;color:rgb(57,116,96)">where</span><font size="3"> </font><span style="font-size:13px;color:rgb(79,67,113)">T1</span><font size="3"> </font><span style="font-size:13px">::</span><font size="3"> </font><span style="font-size:13px">(</span><span style="font-size:13px;color:rgb(57,116,96)">forall</span><font size="3"> </font><span style="font-size:13px;color:rgb(51,51,51)">b</span><span style="font-size:13px;color:rgb(51,51,51)">.</span><font size="3"> </font><span style="font-size:13px;color:rgb(51,51,51)">b</span><font size="3"> </font><span style="font-size:13px">-&gt;</span><font size="3"> </font><span style="font-size:13px;color:rgb(51,51,51)">b</span><span style="font-size:13px">)</span><font size="3"> </font><span style="font-size:13px">-&gt;</span><font size="3"> </font><span style="font-size:13px">(</span><span style="font-size:13px;color:rgb(57,116,96)">forall</span><font size="3"> </font><span style="font-size:13px;color:rgb(51,51,51)">a</span><span style="font-size:13px;color:rgb(51,51,51)">.</span><font size="3"> </font><span style="font-size:13px;color:rgb(79,67,113)">Int</span><font size="3"> </font><span style="font-size:13px">-&gt;</span><font size="3"> </font><span style="font-size:13px;color:rgb(79,67,113)">T</span><font size="3"> </font><span style="font-size:13px;color:rgb(51,51,51)">a</span><span style="font-size:13px">)</span><font size="3">

</font><font color="#555555" style="font-size:13px">{- Error:
Data constructor `T1&#39; returns type `forall a. Int -&gt; T a&#39;
      instead of an instance of its parent type `T a&#39;
    In the definition of data constructor `T1&#39;
    In the data type declaration for `T&#39;
Failed, modules loaded: none. -}

</font><font size="3">While:

</font><pre style="font-size:13px;margin-bottom:0px;margin-top:0px"><span style="color:rgb(85,85,85)">{-# LANGUAGE GADTs,RankNTypes #-}</span>

<span>f</span> <span>::</span> <span>(</span><span style="color:rgb(57,116,96)">forall</span> <span style="color:rgb(51,51,51)">b</span><span style="color:rgb(51,51,51)">.</span> <span style="color:rgb(51,51,51)">b</span> <span>-&gt;</span> <span style="color:rgb(51,51,51)">b</span><span>)</span> <span>-&gt;</span> <span>(</span><span style="color:rgb(57,116,96)">forall</span> <span style="color:rgb(51,51,51)">a</span><span style="color:rgb(51,51,51)">.</span> <span style="color:rgb(79,67,113)">Int</span> <span>-&gt;</span> <span style="color:rgb(79,67,113)">Maybe</span> <span style="color:rgb(51,51,51)">a</span><span>)</span>
<span>f</span> <span>=</span> <span style="color:rgb(51,51,51)">undefined</span>

<span style="color:rgb(85,85,85)">{- 
ghci&gt; :t f
f :: (forall b. b -&gt; b) -&gt; Int -&gt; Maybe a
-}</span> </pre><pre style="font-size:13px;margin-bottom:0px;margin-top:0px"><br></pre><pre style="font-size:13px;margin-bottom:0px;margin-top:0px">Thanks, 
 Shayan</pre></pre></div>
</div></blockquote></div></div><blockquote type="cite"><div><span>_______________________________________________</span><br><span>Haskell-Cafe mailing list</span><br><span><a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a></span><br>
<span><a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a></span><br></div></blockquote></div></blockquote></div><br>