code: public SmartBinder insert(int index, String name, Class<?> type, Object value) {
          return new SmartBinder(this, signature().insertArg(index, name, type), binder.insert(index, type, value));
      }
docs: Insert an argument into the argument list at the given index with the
  given name and value.
  
  @param index the index at which to insert the argument
  @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 insert applied