data Vector a = Vector a a a deriving (Eq, Show)
instance Functor Vector where
fmap f (Vector x y z) = Vector (f x) (f y) (f z)
ここまでは順調ですね。
instance Num ((Num a) => Vector a) where
negate = fmap negate
うまくいきません。その最初の行でさまざまなバリエーションを試しましたが、GHC は文句を言い続けます。含む数字を;のVectorインスタンスにしたい。Num確かにこれは可能であるべきですか?そうしないとInt、Integer、Float、Double、 などのインスタンスをすべて同じ定義で作成する必要があります。