'return a new exists() construct with the given expression added to
its WHERE clause, joined to the existing clause via AND, if any.'

def where(self, clause):

    e = self._clone()
    e.element = self.element.where(clause).self_group()
    return e
