LispVal is an algebraic type which is able to hold any of the types
given.
Not sure what the type of `DottedList` is meant to be.
import Text.ParserCombinators.Parsec hiding (spaces)
import System.Environment
import Text.ParserCombinators.Parsec hiding (spaces)
import System.Environment
+data LispVal = Atom String
+ | List [LispVal]
+ | DottedList [LispVal] LispVal
+ | Number Integer
+ | String String
+ | Bool Bool
+
symbol :: Parser Char
symbol = oneOf "!#$%&|*+-/:<=>?@^_~"
symbol :: Parser Char
symbol = oneOf "!#$%&|*+-/:<=>?@^_~"