Spec-Zone.ru › Haskell 9

6.10.1. Смягчение ограничений на контексты классов

FlexibleContexts
Since:

6.8.1

Status:

Включено в GHC2024, GHC2021

Удаление ограничения на тип-переменные в контекстах классов.

Расширение FlexibleContexts снимает ограничение Haskell 98, согласно которому ограничения типов класса (в любом месте их использования) должны иметь вид (класс тип-переменная) или (класс (тип-переменная тип1 тип2 … типn)). С FlexibleContexts такие сигнатуры типов являются корректными:

g :: Eq [a] => ...
g :: Ord (T a ()) => ...

Это расширение не влияет на ограничения равенства в контексте экземпляра; они разрешены TypeFamilies или GADTs.

Обратите внимание, что FlexibleContexts затрагивает использование ограничений классов в сигнатурах типов и других контекстах. В отличие от этого, FlexibleInstances ослабляет аналогичное ограничение при объявлении нового экземпляра.

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

Spec-Zone.ru

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