Ответ 1
"Параметры языка" в разделе страница с описанием флага имеет список, который намного легче просматривается, чем страница с языковыми функциями.
Как только вы там Ctrl-F
поиск "перегружен", вы попадаете в нужное вам положение.
Я хотел использовать {-# LANGUAGE OverloadedStrings #-}
, но я забыл, как он называется. Подобная вещь не является hoogle-способной, а также требуется некоторое время для поиска с помощью google *.
Есть ли где-то список расширений GHC, названных так, как они находятся в LANGUAGE
pragma?
* Моя поисковая поездка по поиску в поисковых системах:
OverloadedStrings
"Параметры языка" в разделе страница с описанием флага имеет список, который намного легче просматривается, чем страница с языковыми функциями.
Как только вы там Ctrl-F
поиск "перегружен", вы попадаете в нужное вам положение.
ghci tab-completion знает. Введите :set -X
в командной строке ghci, затем нажмите Tab, и вы получите полный список. Или :set -XFoo
, тогда Tab отобразит список всех расширений, начинающихся с Foo
.
$ ghc --supported-languages
(из Документы GHC)
ghc-mod для Emacs, найденный здесь: http://hackage.haskell.org/package/ghc-mod, включает в себя завершение для языковых расширений. Если вы являетесь пользователем Emacs, я предлагаю вам попробовать его.
При использовании Leksah IDE, выбрав меню "Пакет", затем "Изменить пакет", затем вкладка "Расширение" также дает список с возможностью проверки.
Мой немой хакерский способ делать такие вещи:
$ man ghc | grep String
-XExtendedDefaultRules -XNoExtendedDefaultRules -XOverloadedStrings
-XNoOverloadedStrings -XGADTs -XNoGADTs -XGADTSyntax -XNoGADTSyntax
Cabal package предоставляет Language.Haskell.Extension module, который экспортирует KnownExtension type, каждый из которых является расширением.
Документация каждого конструктора кратко описывает расширение и предоставляет ссылку на руководство пользователя GHC.