GHC поддерживает следующие расширения языка:
| Расширение | Описание |
|---|---|
Разрешить пользователю писать неопределенные типы, а механизму вывода типов — выводить их. | |
Разрешить десахаризацию инструкций do-нотации с помощью | |
Разрешить стрелочную нотацию (например, | |
Разрешить синтаксис паттернов с восклицательным знаком. | |
Разрешить синтаксис двоичных литералов. | |
Разрешить блоки | |
Разрешить объявление | |
Разрешить методам классов иметь непустые контексты. | |
Разрешить использовать ограничения в качестве типов вида | |
Обработка директив препроцессора C. | |
Обнаружение полных пользовательских сигнатур видов. | |
Разрешить использование конструкторов данных в типах. | |
Разрешить контексты для типов | |
Использовать проверку глубокой подстановки GHC. | |
Разрешить сигнатуры по умолчанию для методов типов. | |
Разрешить использовать синтаксис | |
Разрешить вывод для класса | |
Разрешить вывод для класса | |
Разрешить вывод для класса | |
Разрешить вывод экземпляров | |
Разрешить вывод для класса | |
Разрешить вывод для класса | |
Разрешить использование стратегий вывода экземпляров. | |
Разрешить вывод экземпляров для типов с одинаковой реализацией во время выполнения | |
Автоматически устранять неоднозначность некоторых ссылок на поля записей. | |
Разрешить определение типов записей с одинаково названными полями. | |
Разрешить выражения | |
Разрешить определение пустых типов | |
Разрешить вывод экземпляров стандартных классов типов для пустых типов данных. | |
Разрешить экзистенциально квантифицированные переменные типа в типах. | |
Разрешить явную универсальную квантификацию. | |
Разрешить использование ключевого слова | |
Использовать расширенные правила по умолчанию GHCi в обычном модуле. | |
Разрешить синтаксис постфикса числовых литералов для нераспакованных целых чисел. | |
Сделать функции селекторов полей записей видимыми в выражениях. | |
Убрать некоторые ограничения на контексты классов. | |
Разрешить заголовкам экземпляров упоминать произвольные вложенные типы. | |
Разрешить синтаксис интерфейса внешних функций. | |
Разрешить указание функциональных зависимостей в объявлениях типов. | |
Разрешить определение обобщенных алгебраических типов данных. | |
Разрешить синтаксис обобщенных алгебраических типов данных. | |
Разрешить вывод экземпляров с помощью вывода | |
Использовать набор расширений языка GHC по умолчанию с 2021 года. | |
Использовать набор расширений языка GHC по умолчанию с 2024 года. | |
Разрешить соглашение о вызове | |
Использовать редакцию языка Haskell 2010. | |
Использовать редакцию языка Haskell 98. | |
Разрешить синтаксис шестнадцатеричных литералов с плавающей точкой. | |
Разрешить ограничения неявных параметров. | |
Неявно импортировать | |
Разрешает синтаксис | |
Разрешить импредикативные типы. | |
Разрешить определения экземпляров, которые могут привести к несогласованности. | |
Разрешить запись сигнатур типов для методов экземпляров. | |
Разрешить импорты | |
Разрешить задание сигнатур видов для типов. |