<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    On 2017-11-20 10:13 AM, Gregory Guthrie wrote:<br>
    <blockquote type="cite"
      cite="mid:08EF9DA445C4B5439C4733E1F35705BA0678889B2B49@MAIL.cs.mum.edu">
      <p class="MsoNormal">But since the interpreter already correctly
        inferred that the first clause has two arguments (with only one
        explicit), why does it then ignore this and give an error when
        the second clause shows two explicit arguments? The types are
        all correct in either case – why require explicit arguments?<o:p></o:p></p>
      <p class="MsoNormal"><o:p></o:p></p>
    </blockquote>
    <br>
    Actually, the first clause doesn't have two arguments. It's a
    single-argument function that returns a one-argument function.
    Strictly speaking, all multi-argument functions are one-argument
    functions that return other functions, but the compiler makes a
    distinction, perhaps to help guard against mistakes. So it's a
    requirement that all clauses of a function definition have the same
    number of explicit arguments.<br>
  </body>
</html>