--let-bound polymorphism (Hindley-Milner type system) prevents instantiation of lambda-bound functions in two ways:
let f g = (g 5, g 'c') in f (\x -> x)
{--
No instance for (Num Char) arising from the literal ‘5’
In the first argument of ‘g’, namely ‘5’
In the expression: g 5
In the expression: (g 5, g 'c')
--}