Probably only works for type that can already be shown.
| Number Integer
| String String
| Bool Bool
| Number Integer
| String String
| Bool Bool
symbol :: Parser Char
symbol = oneOf "!#$%&|*+-/:<=>?@^_~"
symbol :: Parser Char
symbol = oneOf "!#$%&|*+-/:<=>?@^_~"
readExpr :: String -> String
readExpr input = case parse parseExpr "lisp" input of
Left err -> "No match: " ++ show err
readExpr :: String -> String
readExpr input = case parse parseExpr "lisp" input of
Left err -> "No match: " ++ show err
- Right val -> "Found value"
+ Right val -> "Found value: " ++ show val