これが私のコード(の簡略版)です:
data Exp = Var String
test :: Exp -> String -> Bool
test e vIn = case e of
Var vIn -> True
_ -> False
これを実行すると:
test (Var "X") "Y"
(Var vIn) と (Var s), s ~= vIn を一致させる必要があるため、これは奇妙です。
誰かが何が起こっているのかを説明し、それを修正する方法を提案できますか?