次のデータ構造があるとしましょう:
data Dezi = Dezi1 Int | Dezi2 String | Dezi3 [Dezi] deriving(Show)
class TestInterface a where
testInt :: a -> Dezi
instance TestInterface Int where
testInt 0 = Dezi1 0
testInt _ = Dezi2 "Nie nula"
instance Dezi a => TestInterface [a] where
testInt xs = Dezi3 $ map (\x -> testInt x) xs
最後のステートメントで、型クラスのジェネリック インスタンスを作成しようとしています。型 'a' は Int または String であると想定していますが、コンパイラは満足していません。
`Dezi' is applied to too many type arguments
In the instance declaration for `TestInterface [a]'
私は初心者で、まだ学習過程にあります。
ありがとう!