Does Haskell or ML support code like the following?
Note that I get these inferences even though the variables were not instantiated, and the functions were not implemented.
>> a : p;
a : p
>> b : q;
b : q
>> c : p -> q -> r;
c : p -> q -> r
>> d = (c a);
d : q -> r
>> f : r -> s;
f : r -> s
>> e = lambda(x) (f(d x));
e : q -> s
Note that I get these inferences even though the variables were not instantiated, and the functions were not implemented.