-
EmptyDataDecls -
- Since:
-
6.8.1
- Status:
-
Включено в
GHC2024,GHC2021иHaskell2010
Разрешает определение пустых типов
data.
С расширением EmptyDataDecls, GHC позволяет объявлять типы данных без конструкторов.
Вам нужно включить это расширение только если используемый язык — Haskell 98, в котором тип данных должен иметь хотя бы один конструктор. Haskell 2010 ослабил это правило, разрешив типы данных без конструкторов, и, следовательно, EmptyDataDecls включено по умолчанию для языка Haskell 2010.
Например:
data S -- S :: Type data T a -- T :: Type -> Type
Синтаксически объявление лишено части «= constrs». Тип может быть параметризован типами любого рода, но если род не Type, то необходимо использовать явную аннотацию рода (см. Явно-родовая квантификация).
Такие типы данных имеют только одно значение — под. Тем не менее, они могут быть полезны при определении «фантомных типов».
В сочетании с расширением EmptyDataDeriving, объявления пустых типов также могут иметь производные экземпляры стандартных классов типов (см. Производные экземпляры для пустых типов данных).