<div dir="ltr">If so, I feel like this would break consistency with the current syntax since e.g. all these definitions of `f` would be valid but have completely different type/meaning (even though in "classical" Haskell they would be identical):<br><br><font face="monospace, monospace"> f x y = infix (+) 1 2 x y -- f :: Int -> Int -> Int<br> f x = infix (+) 1 2 x -- f :: Int -> Int<br> f = infix (+) 1 2 -- f :: Int</font><br><br>I like the general idea to represent variable argument functions as infix function applications, but I wouldn't like a purely syntactical solution that adds no real new functionality and is biased towards non-function values like strings, integeres, etc.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 19, 2015 at 7:11 PM, Christopher Done <span dir="ltr"><<a href="mailto:chrisdone@gmail.com" target="_blank">chrisdone@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 19 February 2015 at 18:53, Nils Schweinsberg <mail@nils.cc> wrote:<br>
> What would be the typing rules for this? What would be the types of<br>
> e.g. pointfree written function definitions (`f` in `let f = infix + 5<br>
> in f 2 + f 2 3 4`)?<br>
<br>
</span>Purely syntactical, the translation I gave was literal: let f = infix<br>
+ 5 is the same as let f = (5 +). But to avoid confusion it's also<br>
possible to disallow unary arguments and mandate at least two<br>
arguments.<br>
</blockquote></div><br></div>