Да, это тип возвращаемой функции.
Но как GHC это выясняет?Хорошо, давайте посмотрим на тип просто map
:
map :: (a -> b) -> [a] -> [b]
А теперь давайте посмотрим на тип \x -> x + 1
:
(\x -> x + 1) :: Num n => n -> n
(на случай, если вы нееще не знаю, это означает, что он преобразует n
в n
, где n
может быть любым типом, который является экземпляром Num
, т.е. n
является любым числовым типом.)
Таксопоставляя типы, мы получаем:
map :: (a -> b) -> [a] -> [b]
(\x -> x + 1) :: Num n => n -> n
Итак:
map (\x -> x + 1) :: Num n => [n] -> [n]
То же, что и отчет GHCi.