Missing FunctionalDependencies [GHC-15708]

The Functional Dependencies extension enables dependencies in multiparameter class declarations.

When the extension is missing, the syntax for specifying dependencies is not recognized.

Examples

Missing FunctionalDependencies language extension

Cannot specify functional dependencies for a class - FunctionalDependencies language extension is missing.

Error Message

FunDepsDisabled.hs:1:1: error: [GHC-15708]
    • Fundeps in class ‘Convert’
    • In the class declaration for ‘Convert’
    Suggested fix: Perhaps you intended to use FunctionalDependencies
  |
1 | class Convert a b | a -> b where
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
FunDepsDisabled.hs
Before
module FunDepsDisabled where

class Convert a b | a -> b where
  convert :: a -> b
After
{-# LANGUAGE FunctionalDependencies #-}

module FunDepsDisabled where

class Convert a b | a -> b where
  convert :: a -> b