// @flow export default async function (array: Array, predicate: (Array, T) => Promise>, acc: Array): Promise> { for (let i of array) { acc = await predicate(acc, i) } return acc }