Fix type inference for ApLhs
Consider the following function.
(f . g) x = f (g x)
It should have the type (b -> c) -> (a -> b) -> a -> c
but the type (a -> b) -> ((a -> b) -> a) -> (a -> b) -> b
gets inferred.
Note that the definition
f . g = \x -> f (g x)
works just fine.
Edited by Finn Teegen