Преобразование функции в безточечный стиль меняет ее тип

Я начинаю 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

Спасибо!

15
задан Cactus 12 May 2015 в 05:06
поделиться