code: private Factory<IterableSubject, Iterable<?>> iterablesWithCustomDoubleToString() {
      return new Factory<IterableSubject, Iterable<?>>() {
        @Override
        public IterableSubject createSubject(FailureMetadata metadata, Iterable<?> actual) {
          return new IterableSubjectWithInheritedToString(metadata, actual);
        }
      };
    }
docs: /*
  TODO(cpovirk): Should we make Doubles.asList().toString() smarter rather than do all this?
  
  TODO(cpovirk): Or find a general solution for this and MultimapSubject.IterableEntries. But
  note that here we don't use _exactly_ PrimitiveDoubleArraySubject.this.toString(), as that
  contains "double[]." Or maybe we should stop including that in
  PrimitiveDoubleArraySubject.this.toString(), too, someday?