virtual std::unique_ptr<Program> internal_run(Store& store) { store.declare(var, domain); std::unique_ptr<Program> residual = program->internal_run(store); store.unstack(var); return residual; }