Вывод типа в Haskell имеет немного кривой обучения (если не сказать больше!). Хороший способ начать обучение - это простые примеры. Итак, следующее - это немного "мир привет" для вывода типа.
Рассмотрим следующий пример:
Prelude> :t 3
3 :: (Num t) => t
Prelude> let x = 3
Prelude> :t x
x :: Integer
Возникает вопрос: Почему 3 и x имеют разные типы?
Резюме ссылки:
Прочтите ответы ниже для полной истории; здесь просто сводка ссылок:
- Тип GHC по умолчанию: Раздел отчета Haskell 4.3.4
- GHCi расширенный тип по умолчанию: Использование раздела GHCi 2.4.5
- Мономорфное ограничение: Haskell вики