def METHOD_NAME(self, trace=False):
    r"""
    Carry out S-Retrieval of binding operators in store. If hack=True,
    serialize the bindop and core as strings and reparse. Ugh.
    Each permutation of the store (i.e. list of binding operators) is
    taken to be a possible scoping of quantifiers. We iterate through the
    binding operators in each permutation, and successively apply them to
    the current term, starting with the core semantic representation,
    working from the inside out.
    Binding operators are of the form::
         bo(\P.all x.(man(x) -> P(x)),z1)
    """
    for perm, store_perm in enumerate(self._permute(self.store)):
        if trace:
            print("Permutation %s" % (perm + 1))
        term = self.core
        for bindop in store_perm:
            # we just want the arguments that are wrapped by the 'bo' predicate
            quant, varex = tuple(bindop.args)
            # use var to make an abstraction over the current term and then
            # apply the quantifier to it
            term = ApplicationExpression(
                quant, LambdaExpression(varex.variable, term)
            )
            if trace:
                print("  ", term)
            term = term.simplify()
        self.readings.append(term)