code: public String encode(String... values) {
      ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
      int i = 0;
      for (String value : values) {
        builder.put("$" + i++, value);
      }
      // We will get an error if there are named bindings which are not reached by values.
      return instantiate(builder.build());
    }
docs: Instantiates the template from the given positional parameters. The template must not be build
  from named bindings, but only contain wildcards. Each parameter position corresponds to a
  wildcard of the according position in the template.