public <ARG, RET, EXN extends Exception> RET accept(Visitor<ARG, RET, EXN> vis, ARG arg)
     throws EXN {
   return vis.visit((DotMethodCallExp) this, arg);
 }
 public <ARG, RET, EXN extends Exception> RET accept(Visitor<ARG, RET, EXN> vis, ARG arg)
     throws EXN {
   return vis.visit((PostExpArgs) this, arg);
 }
 public <ARG, RET, EXN extends Exception> RET accept(Visitor<ARG, RET, EXN> vis, ARG arg)
     throws EXN {
   return vis.visit((ClsPatDef) this, arg);
 }