Cheap pointer comparison or symmetric difference operation
        to ensure domains are the same

def same_domain(self, other):
        """
        Cheap pointer comparison or symmetric difference operation
        to ensure domains are the same
        """
        return self.domain == other.domain or \
                len(self.domain.symmetric_difference(set(other.domain))) == 0