docs: def iter_referents_tuples(self):
          """ Generates target sets (as tuples of indicies) that are compatible with
          the current beliefstate."""
          tlow, thigh = self['targetset_arity'].get_tuple()
          clow, chigh = self['contrast_arity'].get_tuple()
          singletons = list([int(i) for i,_ in self.iter_singleton_referents()])
          t = len(singletons)
          low = int(max(1, tlow))
          high = int(min([t,  thigh]))
          for elements in itertools.chain.from_iterable(itertools.combinations(singletons, r) \
                  for r in reversed(xrange(low, high+1))):
              if clow <= t-len(elements) <= chigh:
                  yield  elements