我正在使用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'
请建议解决方案。
答案 0 :(得分:23)
您只能自动从Eq
,Ord
,Enum
,Bounded
,Show
和Read
派生。为了派生其他实例,您需要启用GeneralizedNewtypeDeriving
扩展,如GHCi建议的那样:
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
newtype Gold = Gold Int
deriving (Eq, Ord, Show, Num)
请注意,{-# ... #-}
不是评论,而是compiler pragma,在这种情况下启用给定的语言扩展名。