Why
let f1 a b = a + b
and
let f2 a = fun b -> a + b
both produce values with type a:int -> b:int -> int,
but
let f3 a =
let f =
fun b -> a + b
f
and
let f4 a =
let f b = a + b
f
both produce values with type a:int -> (int -> int) ?
What do braces around int -> int mean?
Are there situations where these two types do different things in a program?