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