Is it possible that some sets in a mixed set have a halo, but others don't? IOW should this just be tuple(s.halo for s in self._sets) ?