code: static <J> MethodId<J> MethodId(String name, Class<J> returnType, Class<?>... types) {
  		return new MethodId<J>(TreeMaker.class, name, returnType, types);
  	}
docs: Creates a new method ID based on the name of the method to invoke, the return type of that method, and the types of the parameters.
  
  A method matches if the return type matches, and for each parameter the following holds:
  
  Either (A) the type listed here is the same as, or a subtype of, the type of the method in javac's TreeMaker, or
  (B) the type listed here is a subtype of SchroedingerType.