Spec-Zone.ru › Haskell 9

6.10.1. Ослабление ограничений на контексты классов

FlexibleContexts
С версии:

6.8.1

Статус:

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

Снимает ограничение на переменные типа в контекстах классов.

Расширение FlexibleContexts снимает ограничение Haskell 98, согласно которому ограничения классов типов (где бы они ни встречались) должны иметь форму (class type-variable) или (class (type-variable type1 type2 … typen)). С расширением 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.14.1/docs/users_guide/exts/flexible_contexts.html

Spec-Zone.ru

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