One thing I've wanted that the proposal doesn't cover is the ability to
reorder the arguments. Something like:
(curry - <2> <1>) == (lambda (x1 x2) (- x2 x1))
(curry list 1 <2> 3 <1> 5) == (lambda (x1 x2) (list 1 x2 3 x1 5))
Now I agree that down this path lies madness -- at some point, just writing
the lambda-expression becomes the most perspicuous way to say what you mean
-- but to me this still seems within bounds.
Note that I'm not proposing to replace `<>' with `<1>', `<2>', etc. I'm
suggesting that the user gets the choice: If she uses `<>', then the order
is implicit as it is now. If she uses `<1>', `<2>', ..., then the numbers
give the order of arguments. Let it be an error if she mixes the two.