私はこのコードを持っています:
data SafeValue a = SafeValue a a a deriving Eq
class Safe a where
check::a->Bool
(+++)::a->a->a
instance (Num a, Eq a) => Safe (SafeValue a) where
check (SafeValue x y z) | x == y = True
| x == z = True
| y == z = True
| otherwise = False
(SafeValue a b c)+++(SafeValue x y z) = let new_val = SafeValue (a+x) (b+y) (c+z)
in if check new_val then new_val
else error "Error"
class Safe
次のような関数に追加したいと思います。
make_new 3 --> SafeValue 3 3 3
ティッピーは次のようになるはずなので、追加する方法がわかりません。
make_new::b->a
しかし、istance
宣言の中で、ghci
それが何でb
あるかは定かではないと主張しています。
誰か助けてもらえますか?