Я начинаю 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
Спасибо!