Spec-Zone.ru › Haskell 9

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

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

© 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.12.1/docs/users_guide/exts/nullary_types.html

Spec-Zone.ru

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