for (let i = 0, n = xs.length; i < n; i++) {
        acc = <any>rfn(acc, xs[i]);
        if (isReduced(acc)) {
            acc = (<any>acc).deref();
            break;