equal :: [LispVal] -> ThrowsError LispVal
equal [x@(List _), y@(List _)] = listEquals (\a b -> equal [a, b]) x y
equal :: [LispVal] -> ThrowsError LispVal
equal [x@(List _), y@(List _)] = listEquals (\a b -> equal [a, b]) x y
equal [x@(List _), y@(List _)] = listEquals (\a b -> equal [a, b]) x y