import { Sequence } from '../../core';
import { compose } from '../../../../helper/compose';
compose(Sequence, class extends Sequence {
public override extract(): a[] {
const acc: a[] = [];
let iter = () => this.iterate();
while (true) {
const thunk = iter();
if (!Sequence.isIterable(thunk)) return acc;
acc.push(Sequence.Thunk.value(thunk));
iter = Sequence.Thunk.iterator(thunk);
}
}
});