Illegal type signature in instance declaration [GHC-06202]
This error is emitted when class instance has type signature, but extension InstanceSigs is not enabled. Note that InstanceSigs
is part of GHC2021
and GHC2024
editions, so you won’t encounter this error in new code unless you explicitely opt-out.
Examples
Illegal type signature in instance declaration
Error message
Type signatures are only allowed to be in instance declarations when the InstanceSigs
language extension is enabled.
Example1.hs:6:13: error: [GHC-06202]
• Illegal type signature in instance declaration:
(==) :: A -> A -> Bool
• In the instance declaration for ‘Eq A’
Suggested fix: Perhaps you intended to use InstanceSigs
|
6 | (==) :: A -> A -> Bool
Example1.hs
Before
{-# LANGUAGE Haskell2010 #-}
module Example1 where
data A = A | B
instance Eq A where
(==) :: A -> A -> Bool
A == A = True
B == B = True
_ == _ = False
After
{-# LANGUAGE Haskell2010, InstanceSigs #-}
module Example1 where
data A = A | B
instance Eq A where
(==) :: A -> A -> Bool
A == A = True
B == B = True
_ == _ = False