<div dir="ltr">On Wed, Jan 4, 2012 at 08:41, Yves Parès <span dir="ltr">&lt;<a href="mailto:limestrael@gmail.com">limestrael@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">Would you try:</div><br>f :: a -&gt; a<br>f x = undefined :: a<br>

<br>And tell me if it works? IMO it doesn&#39;t.</blockquote><div><br></div><div>It won&#39;t; a will be a new type variable unrelated to the one in the signature, in the absence of ScopedTypeVariables and an explicit forall in the signature.</div>
<div><br></div><div>As I understand it, without ScopedTypeVariables the scope of type variables in the signature is exactly the signature; with ScopedTypeVariables *and* an explicit forall, the scope includes the equation.</div>
<div><br></div><div>Also, I should mention that the extensions-free way to do this kind of thing is judicious use of asTypeOf.</div><div><br></div></div>-- <br>brandon s allbery                                      <a href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a><br>
wandering unix systems administrator (available)     (412) 475-9364 vm/sms<br><br>
</div>