Spec-Zone.ru › Haskell 9

6.4.1. Типы данных без конструкторов

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 пустые объявления типов данных также могут выводить экземпляры стандартных классов типов (см. Вывод экземпляров для пустых типов данных).

© 2002–2007 The University Court of the University of Glasgow. All rights reserved.
Licensed under the Glasgow Haskell Compiler License.
https://downloads.haskell.org/~ghc/9.14.1/docs/users_guide/exts/nullary_types.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API