function traverse(f, promises) {
			return traverseWith(tryCatch2, f, promises);
		}
Array<Promise<X>> -> Promise<Array<f(X)>>
@private
@param {function} f function to apply to each promise's value
@param {Array} promises array of promises
@returns {Promise} promise for transformed values