checking out purescript
kinda surprised currying isn't optimized away, f 1 2 3 4 compiles to f(1)(2)(3)(4)
f 1 2 3 4
f(1)(2)(3)(4)