code: function isIterable(obj) {
    return isImplemented(obj, 'iterator') || isString(obj) || isArray(obj) || isObject(obj);
  }
docs: Determines whether the passed object is iterable, in terms of what 'iterable' means to this library. In other words,
  objects and ES5 arrays and strings will return `true`, as will objects with a `next` function. For that reason this
  function is only really useful within the library and therefore isn't exported.
  
  @private
  
  @param {*} obj The value to test for iterability.
  @return {boolean} Either `true` if the value is iterable (`{@link module:xduce.iterator}` will return an iterator
  for it) or `false` if it is not.