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
、 などのインスタンスをすべて同じ定義で作成する必要があります。