parseAtom :: Parser LispVal
parseAtom = Atom <$> atom
  where
    first = letter <|> symbol
    rest = many (letter <|> digit <|> symbol)
    atom = (:) <$> first <*> rest
parseAtom :: Parser LispVal
parseAtom = Atom <$> atom
  where
    first = letter <|> symbol
    rest = many (letter <|> digit <|> symbol)
    atom = (:) <$> first <*> rest
parseAtom = Atom <$> atom
  where
    first = letter <|> symbol
    rest = many (letter <|> digit <|> symbol)
    atom = (:) <$> first <*> rest