Хаскелл ошибка
Затмение показывает ошибку в редакторе в явном виде, хотя я могу запустить скрипт без ошибок. Как я могу это исправить? (Это также происходит, когда я запускаю его в cmd, думаю, мне нужен флаг здесь!?)
Также раздражают предупреждения о том, что по умолчанию используется целочисленный тип. Есть ли способ остановить их?
1 ответ
Решение
Вы должны явно объявить расширение языка в каждом файле, как это
{-# LANGUAGE FOO #-}
где FOO
либо, ExplicitForall
который просто давайте напишем forall
, ScopedTypeVariables
а это значит, что вы можете написать
foo :: forall a. a -> [a]
foo a = [a] :: [a]
и иметь явную работу подписи, как и ожидалось. Или же RankNTypes
который позволяет вам писать типы более высокого ранга, как
foo :: (forall a. a -> a) -> Int -> Int
В этом случае, похоже, вы просто хотите ExplicitForall
,