Using sets for these operations is dangerous because sets cannot contain certain object types (such as lists) and their iteration order is undefined. Fixes #7596