On Wed, Apr 9, 2008 at 8:53 AM, Martin Sulzmann <<a href="mailto:martin.sulzmann@gmail.com">martin.sulzmann@gmail.com</a>> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Lennart, you said<div class="Ih2E3d"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
(It's also pretty easy to fix the problem.)<br>
</blockquote>
<br></div>
What do you mean? Easy to fix the type checker, or easy to fix the program by inserting annotations<br>
to guide the type checker?<br>
<br>
Martin<br>
</blockquote><div> </div></div>I'm referring to the situation where the type inferred by the type checker is illegal for me to put into the program.<br>In our example we can fix this in two ways, by making foo' illegal even when it has no signature, or making foo' legal even when it has a signature.<br>
<br>To make it illegal: If foo' has no type signature, infer a type for foo', insert this type as a signature and type check again. If this fails, foo' is illegal.<br><br>To make it legal: If foo' with a type signature doesn't type check, try to infer a type without a signature. If this succeeds then check that the type that was inferred is alpha-convertible to the original signature. If it is, accept foo'; the signature doesn't add any information.<br>
<br>Either of these two option would be much preferable to the current (broken) situation where the inferred signature is illegal.<br><br> -- Lennart<br><br>