<div dir="ltr"><div>Using classic C/C++/Java terms what you're doing in the first version is analogous to _declaring_ a function but not _defining_ it, e.g.<br></div><div><br></div><div>// binding_incorrect.c<br></div><div>int i();<br></div><div>// No definition leads to an error<br></div><div><br>
<div>// binding_correct.c<br></div><div>int i() {</div><div>    return 0;</div><div>}<br></div>

<br>The error message says that you have declared the type of i to be Num a => a, but no corresponding definition was found. That's the reason your second version compiles fine</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 28 Apr 2020 at 21:22, Alexander Chen <<a href="mailto:alexander@chenjia.nl">alexander@chenjia.nl</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="font-family:Arial;font-size:13px">Hi,<div><br></div><div>binder.hs</div><div><br></div><div>i:: Num a => a</div><div><br></div><div><b>prelude></b>:l binder.hs</div><div><div><font color="#ff0000">typed_checked.hs:1:1: error:</font></div><div><font color="#ff0000">    The type signature for ‘i’ lacks an accompanying binding</font></div><div><font color="#ff0000">  |</font></div><div><font color="#ff0000">1 | i:: Num a=> a   | ^</font></div></div><div><br></div><div><br></div><div>binder.hs</div><div><br></div><div>i:: Num a => a<br>i = 2</div><div><br></div><div><b>prelude></b>:l binder.hs<br><div><font color="#ff6666">[1 of 1] Compiling Main             </font></div><div><font color="#ff6666">Ok, one module loaded.</font></div></div><div><br></div><div><br></div><div>Why does it need a binder to make it work?</div><div><br><br><div><div style="font-family:Arial;font-size:13px"><br></div></div></div></div>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners</a><br>
</blockquote></div>