def solutions(self, agent, bindings, zexpr): print "PTRACE STARTING: %s" % termEvalErr(agent, bindings, zexpr[0]) predexpr = zexpr[1] TRACING.do_try(agent, bindings, predexpr) for x in predSolve(agent, bindings, predexpr): if x: TRACING.do_succeed(agent, bindings, predexpr) yield x TRACING.do_retry(agent, bindings, predexpr) TRACING.do_fail(agent, bindings, predexpr)