code: public <T extends Object> void forEachWithShortcut(final ITreeAppendable appendable, final Iterable<T> elements, final Procedure1<? super T> procedure) {
      int _size = IterableExtensions.size(elements);
      boolean _equals = (_size == 1);
      if (_equals) {
        T _head = IterableExtensions.<T>head(elements);
        ObjectExtensions.<T>operator_doubleArrow(_head, procedure);
      } else {
        appendable.append("{");
        final Procedure1<LoopParams> _function = (LoopParams it) -> {
          it.setPrefix(" ");
          it.setSeparator(", ");
          it.setSuffix(" ");
        };
        this.<T>forEach(appendable, elements, _function, procedure);
        appendable.append("}");
      }
    }
docs: Uses curly braces and comma as delimiters. Doesn't use them for single valued iterables.