私は、型クラスを使用して複数の継承を実現できることを知りました。私は小さなhaskellコードを書いていたが、問題を理解することができなかった。Haskell:型クラス:多重継承の例
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE StandaloneDeriving #-}
class (Eq a, Show a) => C a where
getHashCode :: a -> Integer
getHashCode obj = 123
type Id = Int
type Name = String
data Employee = Employee Id Name deriving C
上記のコードを読み込もうとしましたが、次のエラーが発生しています。これに関する助け
No instance for (Eq Employee)
arising from the 'deriving' clause of a data type declaration
Possible fix:
use a standalone 'deriving instance' declaration,
so you can specify the instance context yourself
When deriving the instance for (C Employee)
Failed, modules loaded: none.
私はしばらくGoogleを検索しましたが、複数の継承の良い例は見つかりませんでした。 Haskellでの複数の継承に関する例をいくつか提供すると役に立ちます。
参考:https://www.haskell.org/tutorial/classes.html
お返事ありがとうございます。私は複数の型クラスを派生することができますが、私の質問は、 'クラス(Eq a、Show a)=> C a where'というステートメントを使いたいのです。 –