import { chain } from './chain' import { Future } from './Future' import { map } from './map' export function sequence( futures: ReadonlyArray>, ): Future { return futures.reduce( (acc, f) => chain((bs) => map((b) => bs.concat(b), f), acc) as Future, Future.of([]) as Future, ) }