code: public static <T> ImmutableMap<T, Integer> itemToIndexMap(final Iterable<T> sequence) {
      return itemToIndexMapStartingFrom(sequence, 0);
    }
docs: Transforms an Iterable<T> to a Map<T, Integer> where each item is mapped to its zero-indexed
  position in the Iterable's sequence.  If an item occurs twice, an {@link IllegalArgumentException} will
  be thrown.