помогите понять почему это не верно? на сколько я знаю, карринг вполне позволяет ф-ции возвращать результаты разных типов, в зависимости от количества переданных аргументов. К примеру ф-ция (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'


