помогите понять почему это не верно? на сколько я знаю, карринг вполне позволяет ф-ции возвращать результаты разных типов, в зависимости от количества переданных аргументов. К примеру ф-ция (A -> B -> C) может возвращать либо (B -> C) либо C
exception MultiArgsError of string
let rec apply f args =
match args with
| arg :: [] -> f arg
| arg :: args ->
apply (f arg) args
| [] -> raise (MultiArgsError("args count incorrect"))
Program.fs(25,16): error FS0001: Type mismatch. Expecting a
'a -> 'b
but given a
'b
The resulting type would be infinite when unifying ''a' and ''b -> 'a'