f :: ([a] -> Int) -> Int f g = g [1,2,3] + g ['a','b','c']
はだめだけれど、
f' :: (forall a. [a] -> Int) -> Int f' g = g [1,2,3] + g ['a','b','c']
はOK。