Haskell: Instanz-Mehrdeutigkeit anzeigen
Ich versuche, eine Show-Instanz zu schreiben, um eine wohlgeformte Formel anzuzeigen, aber nachdem ich die gesamte Syntax nachgeahmt habe, stehe ich immer noch vor demselben Fehler wie unten.
Hugs> :load "C:\\Users\\Devil\\Desktop\\CASESTUDY1.hs"
ERROR file:.\CASESTUDY1.hs:15 - Ambiguous variable occurrence "show"
*** Could refer to: CASESTUDY1.show Hugs.Prelude.show
Unten ist der Inhalt meiner .hs-Datei einschließlich Datentyp und zugehöriger Show-Instanz.
module CASESTUDY1
where
data Wff = VAR String
| NEG Wff
| AND Wff Wff
| OR Wff Wff
| IMPL Wff Wff
instance Show Wff where
show (VAR x) = x
show (NEG x) = "~" ++ show(x)
show (AND x y) = "(" ++ show(x) ++ "^" ++ show(y) ++ ")"
show (OR x y) = "(" ++ show(x) ++ "v" ++ show(y) ++ ")"
show (IMPL x y) = "(" ++ show(x) ++ "-->" ++ show(y) ++ ")"