parseNumber :: Parser LispVal
parseNumber = liftM (Number . read) $ many1 digit
+parseExpr :: Parser LispVal
+parseExpr = parseString
+ <|> parseAtom
+ <|> parseNumber
+
readExpr :: String -> String
-readExpr input = case parse (spaces >> symbol) "lisp" input of
+readExpr input = case parse parseExpr "lisp" input of
Left err -> "No match: " ++ show err
Right val -> "Found value"