cons :: [LispVal] -> ThrowsError LispVal
cons [x, List xs]         = return $ List $ x : xs
cons :: [LispVal] -> ThrowsError LispVal
cons [x, List xs]         = return $ List $ x : xs
cons [x, List xs]         = return $ List $ x : xs