Spec-Zone.ru › Haskell 9

6.6. Механизм автоматического вывода экземпляров

Haskell 98 позволяет программисту добавить к объявлению типа данных предложение deriving, чтобы сгенерировать стандартное объявление экземпляра указанного класса. GHC расширяет этот механизм в нескольких направлениях:

  • Механизм вывода экземпляров можно использовать отдельно от объявления типа данных с помощью механизма отдельного вывода экземпляров.
  • В Haskell 98 автоматически выводить экземпляры можно только для классов Eq, Ord, Enum, Ix, Bounded, Read и Show. Различные расширения языка дополняют этот список.
  • Помимо стандартного подхода к выводу экземпляров, при котором генерируются определения всех методов, GHC поддерживает ещё две стратегии вывода, позволяющие выводить экземпляры произвольных классов:

    • Обобщённый вывод экземпляров для newtype для типов newtype и
    • вывод экземпляра любого класса с помощью пустого объявления экземпляра.

    Пользователь может при желании указать нужную стратегию вывода, особенно если компилятор по умолчанию выбирает неподходящую.

  • 6.6.1. Вывод экземпляров для пустых типов данных
  • 6.6.2. Вывод контекста для предложений deriving
  • 6.6.3. Отдельные объявления вывода экземпляров
  • 6.6.4. Вывод экземпляров дополнительных классов (Data и т. д.)
  • 6.6.5. Обобщённый вывод экземпляров для типов newtype
  • 6.6.6. Вывод экземпляра любого другого класса
  • 6.6.7. Стратегии вывода экземпляров
  • 6.6.8. Вывод через (deriving via)

© 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/deriving.html

Spec-Zone.ru

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