6.4.2. Data type contexts — Glasgow Haskell Compiler 9.4.0.20220501 User's Guide

# 6.4.2. Data type contexts

`DatatypeContexts`

  Since: | 7.0.1

  Allow contexts on `data` types.

Haskell allows datatypes to be given contexts, e.g.

    data Eq a => Set a = NilSet | ConsSet a (Set a)

give constructors with types:

    NilSet :: Set a
    ConsSet :: Eq a => a -> Set a -> Set a

This is widely considered a misfeature, and is going to be removed from the language. In GHC, it is controlled by the deprecated extension `DatatypeContexts`.