code: public SmartBinder insert(int index, String[] names, Class<?>[] types, Object... values) {
          return new SmartBinder(this, signature().insertArgs(index, names, types), binder.insert(index, types, values));
      }
docs: Insert arguments into the argument list at the given index with the
  given names and values.
  
  @param index  the index at which to insert the arguments
  @param names  the names of the new arguments
  @param types  the types of the new arguments
  @param values the values of the new arguments
  @return a new SmartBinder with the insert applied