code: function isIterable (input) {
    if (input === null || !isDefined(input)) {
      return false
    } else {
      return (
        typeof input[Symbol.iterator] === 'function' ||
        typeof input[Symbol.asyncIterator] === 'function'
      )
    }
  }
docs: Returns true if the input is an iterable (`Map`, `Set`, `Array`, Generator etc.).
  @param {*} - the input to test
  @returns {boolean}
  @static
  @example
  > t.isIterable('string')
  true
  > t.isIterable(new Map())
  true
  > t.isIterable([])
  true
  > t.isIterable((function * () {})())
  true
  > t.isIterable(Promise.resolve())
  false
  > t.isIterable(Promise)
  false
  > t.isIterable(true)
  false
  > t.isIterable({})
  false
  > t.isIterable(0)
  false
  > t.isIterable(1.1)
  false
  > t.isIterable(NaN)
  false
  > t.isIterable(Infinity)
  false
  > t.isIterable(function () {})
  false
  > t.isIterable(Date)
  false
  > t.isIterable()
  false
  > t.isIterable({ then: function () {} })
  false