6.11.2. The context of a type signatureΒΆ
The FlexibleContexts
extension lifts the Haskell 98 restriction that
the type-class constraints in a type signature must have the form (class
type-variable) or (class (type-variable type1 type2 ... typen)). With
FlexibleContexts
these type signatures are perfectly okay
g :: Eq [a] => ...
g :: Ord (T a ()) => ...
The flag FlexibleContexts
also lifts the corresponding restriction
on class declarations (Flexible contexts) and instance
declarations (Relaxed rules for instance contexts).