    virtual void visit_action(action * op){    op->precondition->visit(this);  };  virtual void visit_event(event * e){    e->precondition->visit(this);  };  virtual void visit_process(process * p){    p->precondition->visit(this);  };  virtual void visit_durative_action(durative_action * da) {   cout << "Not dealing with duratives\n";  }; };  