* @param firstType the first argument type, usually a target type
* @param restTypes the remaining target argument types
* @return a new Binder
*/
public Binder castVirtual(Class returnType, Class firstType, Class... restTypes) {
return new Binder(this, new Cast(type()), MethodType.methodType(returnType, firstType, restTypes));
}