HaskellのWikiページのアドバイスに従っていました:コードのパフォーマンスを向上させるためのパフォーマンス/データ型ですが、変更したとき
data Color = Yellow | Red | Green | Blue | Empty deriving (Show, Eq)
に
newtype Color = Color Int deriving (Eq,Ord,Enum)
(yellow:red:green:blue:empty:_) = [Color 1 ..]
記事で示唆されているように、GHCは次のように述べています。
Can't make a derived instance of `Enum Color':
`Color' must be an enumeration type
(an enumeration consists of one or more nullary, non-GADT constructors)
Try -XGeneralizedNewtypeDeriving for GHC's newtype-deriving extension
In the newtype declaration for `Color'
列挙型をあまり使用していませんが、Colorを列挙型に変換するにはどうすればよいですか?定義されているすべての機能を実装する必要がありますか?そのクラスを派生させたときに、それらはすべて実装されたと思いました。