私はHaskellを初めて使用し、何が問題になっているのか理解できません。
data Stmt = If BExpr Stmt
| While BExpr Stmt
| Assign String AExpr
deriving (Eq, Show)
printStmt :: Stmt -> String
printStmt (If e, s1) = "if " ++ (printBExpr e) ++ " {" ++ (printStmt s1) ++ " }"
printStmt (While e, s) = "while" ++ (printBExpr e) ++ "{" ++ (printStmt s) ++ "}"
printStmt (Assign s, e) = s ++ ":=" ++ (printAExpr e)
ここで「期待されるタイプと一致しませんでした」というエラーが発生する場所を教えてもらえますか?