Хаскелл ошибка

Затмение показывает ошибку в редакторе в явном виде, хотя я могу запустить скрипт без ошибок. Как я могу это исправить? (Это также происходит, когда я запускаю его в 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,

Другие вопросы по тегам