code: public SmartBinder append(String name, Class<?> type, Object value) {
          return new SmartBinder(this, signature().appendArg(name, type), binder.append(new Class<?>[]{type}, value));
      }
docs: Append the given argument to the argument list, assigning it the
  given name.
  
  @param name  the name of the new argument
  @param type  the type to use in the new signature
  @param value the value of the new argument
  @return a new SmartBinder with the append applied