code: public static <T, V> String interpose(Iterable<T> values, V separator) {
          dbc.precondition(values != null, "cannot interpose from a null iterable");
          return new InterposeStrings<T, V>().apply(values.iterator(), new ConstantIterator<>(separator));
      }
docs: Creates a string by interposing stringified values from the source iterable with the separator. E.g:
  <code>interpose([1,2,3], "-") -> "1-2-3"</code>
  
  @param <T> the iterable element type
  @param <V> the separator type
  @param values the source iterable
  @param separator the separator
  @return the resulting string