docs: function callNext(list, results, propogate) {
      var ret = new Promise().callback();
      forEach(list, function (listItem) {
          ret = ret.chain(propogate ? listItem : bindIgnore(null, listItem));
          if (!propogate) {
              ret.addCallback(function (res) {
                  results.push(res);
                  res = null;
              });
          }
      });
      return propogate ? ret.promise() : ret.chain(results);
  }