Can't make a derived instance of Num

4.1k Views Asked by At

I am using ghci, this code section

newtype Gold = Gold Int
    deriving (Eq, Ord, Show, Num)

is showing the error as

Can't make a derived instance of 'Num Gold':
  'Num' is not a derivable class
  Try GeneralizedNewTypeDeriving for GHC's newtype-deriving extension in the newtype declaration for 'Gold'

Please suggest the solution.

1

There are 1 best solutions below

3
On BEST ANSWER

You can only derive from Eq, Ord, Enum, Bounded, Show and Read automatically. In order to derive other instances, you need to enable the GeneralizedNewtypeDeriving extension as GHCi suggests:

{-# LANGUAGE GeneralizedNewtypeDeriving #-}

newtype Gold = Gold Int
  deriving (Eq, Ord, Show, Num)

Note that the {-# ... #-} isn't a comment, but a compiler pragma, in this case enabling the given language extension.