6.11.2. The context of a type signature¶
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 ()) => ...