<br><br><div class="gmail_quote">On Thu, Apr 10, 2008 at 4:20 AM, Manuel M T Chakravarty &lt;<a href="mailto:chak@cse.unsw.edu.au">chak@cse.unsw.edu.au</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Lennart Augustsson:<div class="Ih2E3d"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
On Wed, Apr 9, 2008 at 8:53 AM, Martin Sulzmann &lt;<a href="mailto:martin.sulzmann@gmail.com" target="_blank">martin.sulzmann@gmail.com</a>&gt; wrote:<br>
<br>
Lennart, you said<br>
<br>
(It&#39;s also pretty easy to fix the problem.)<br>
<br>
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>
<br>
I&#39;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&#39; illegal even when it has no signature, or making foo&#39; legal even when it has a signature.<br>
<br>
To make it illegal: &nbsp;If foo&#39; has no type signature, infer a type for foo&#39;, insert this type as a signature and type check again. &nbsp;If this fails, foo&#39; is illegal.<br>
</blockquote>
<br></div>
That would be possible, but it means we have to do this for all bindings in a program (also all lets bindings etc).<div class="Ih2E3d"></div></blockquote><div><br>Of course, but I&#39;d rather the compiler did it than I.&nbsp; It&#39;s not that hard, btw.&nbsp; If the whole module type checks, insert all signatures and type check again.<br>
<br>Making it legal might be cheaper, though.<br><br>&nbsp;&nbsp;&nbsp; -- Lennart<br><br></div></div><br>