、以下のコンパイルcassavaパッケージを使用する:これは、2つの質問を私に残し`DeriveAnyClass`と空のインスタンスの違いは何ですか?
test.hs:7:50:
No instance for (ToNamedRecord Int)
arising from the first field of ‘Foo’ (type ‘Int’)
Possible fix:
use a standalone 'deriving instance' declaration,
so you can specify the instance context yourself
When deriving the instance for (ToNamedRecord Foo)
:
{-# LANGUAGE DeriveGeneriC#-}
import Data.Csv
import GHC.Generics
data Foo = Foo { foo :: Int } deriving (Generic)
instance ToNamedRecord Foo
ただし、次にはない:
{-# LANGUAGE DeriveGeneriC#-}
{-# LANGUAGE DeriveAnyClass #-}
import Data.Csv
import GHC.Generics
data Foo = Foo { foo :: Int } deriving (Generic, ToNamedRecord)
コンパイラのレポートを2番目のバージョンが最初のバージョンと同じでないのはなぜですか?そして、なぜコンパイラがToNamedRecord Int
のインスタンスを見つけることを望んでいるのですか?
私は 'DeriveAnyClass'が役に立たないことはまだ見ていません。私はそれがコンパイル時のクラッシュを生成するのを見ました。 Methinks 'tisバギー。 – dfeuer