public Tree Apply(Tree fn, Tree[] args) { return Apply(fn.pos, fn, args);
public Tree Apply(int pos, Tree fn, Tree[] args) { switch (fn.type) { case Type.MethodType(Symbol[] vparams, Type restpe): return make.Apply(pos, fn, args).setType(restpe); default: throw new ApplicationError("method type required", fn.type); }
    public Tree Apply(Tree fn, Tree[] args) {      return Apply(fn.pos, fn, args);    }