+parseList :: Parser LispVal
+parseList = liftM List $ sepBy parseExpr spaces
+
+parseDottedList :: Parser LispVal
+parseDottedList = do
+ head <- endBy parseExpr spaces
+ tail <- char '.' >> spaces >> parseExpr
+ return $ DottedList head tail
+
+parseQuoted :: Parser LispVal
+parseQuoted = do
+ char '\''
+ x <- parseExpr
+ return $ List [Atom "quote", x]
+