Я начинаю Haskell... Я попытался написать следующую тривиальную функцию двумя разными способами, позволяя Haskell решать типы, а система типов делает что-то другое в каждом случае. Каково объяснение этого поведения?
Prelude> let f x = 2 * x
Prelude> let g = (2*)
Prelude> :info f
f :: Num a => a -> a -- Defined at <interactive>:1:5
Prelude> :info g
g :: Integer -> Integer -- Defined at <interactive>:1:5
Спасибо!