docs: function reduce(arr, iter, base) {
      arr = Immutable.Iterable.isIterable(arr)? arr : Immutable.List(arr);
  
      return arr.reduce(function(prev, elem, key) {
          return prev
          .then(function(val) {
              return iter(val, elem, key);
          });
      }, Q(base));
  }