Inject `showVal` as the `show` member of an instance of `Show LispVal`.
| String String
| Character Char
| Bool Bool
- deriving Show
symbol :: Parser Char
symbol = oneOf "!#$%&|*+-/:<=>?@^_~"
Left err -> "No match: " ++ show err
Right val -> "Found value: " ++ showVal val
+instance Show LispVal where show = showVal
showVal :: LispVal -> String
showVal (Atom atom) = atom
showVal (List list) = "(" ++ unwordsList list ++ ")"