Haskellの関数は自動的にカリー化されるそうだけど

Prelude> let f x y = x + y
Prelude> f 2 3
5
Prelude> f (2 3)

:1:3:
No instance for (Num (t -> a))
arising from the literal `2' at :1:3-5
Possible fix: add an instance declaration for (Num (t -> a))
In the first argument of `f', namely `(2 3)'
In the expression: f (2 3)
In the definition of `it': it = f (2 3)
Prelude> f (2, 3)

:1:0:
No instance for (Num (t, t1))
arising from a use of `f' at :1:0-7
Possible fix: add an instance declaration for (Num (t, t1))
In the expression: f (2, 3)
In the definition of `it': it = f (2, 3)
Prelude> f (2) 3
5
Prelude> f (2) (3)
5
Prelude> f 2 (3)
5
Prelude> 2 `f` 3
5
Prelude>