public static A exp <A>(IntAlg <A> v)
 {
     return(v.add(v.lit(3), v.lit(4)));
 }
 public A accept <A>(IntAlg <A> vis) => vis.mul(left.accept(vis), right.accept(vis));