Generates target sets that are compatible with the current beliefstate.

def iter_referents(self):
        """ Generates target sets that are compatible with the current beliefstate. """
        tlow, thigh = self['targetset_arity'].get_tuple()
        clow, chigh = self['contrast_arity'].get_tuple()

        referents = list(self.iter_singleton_referents())
        t = len(referents)
        low = max(1, tlow)
        high = min([t,  thigh])

        for targets in itertools.chain.from_iterable(itertools.combinations(referents, r) \
            for r in reversed(xrange(low, high+1))):
            if clow <= t-len(targets) <= chigh:
                yield  targets