14

私はghci、このコードセクションを使用しています

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

エラーを次のように表示しています

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'

解決策を提案してください。

4

1 に答える 1

24

EqOrdEnumBoundedShowおよびRead自動的にのみ派生できます。GeneralizedNewtypeDeriving他のインスタンスを派生させるには、GHCi が提案するように拡張機能を有効にする必要があります。

{-# LANGUAGE GeneralizedNewtypeDeriving #-}

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

{-# ... #-}はコメントではなく、コンパイラ プラグマであることに注意してください。この場合、指定された言語拡張機能を有効にします。  

于 2014-09-01T10:30:08.253 に答える