我正在使用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'
请提出解决方案。
最佳答案
您只能从 Eq
、Ord
、Enum
、Bounded
、Show
派生code> 和自动读取。为了派生其他实例,您需要按照 GHCi 的建议启用
GeneralizedNewtypeDeriving
扩展:
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
newtype Gold = Gold Int
deriving (Eq, Ord, Show, Num)
请注意,{-# ... #-}
不是注释,而是 compiler pragma ,在本例中启用给定的语言扩展。
关于haskell - 无法创建 Num 的派生实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25603641/