import { Sequence } from '../../core';
import { compose } from '../../../../helper/compose';
compose(Sequence, class extends Sequence {
public static override from(as: Iterable): Sequence>]> {
return new Sequence, number]>(
([iter, i] = [as[Symbol.iterator](), 0], cons) => {
const result = iter.next();
return result.done
? cons()
: cons(result.value, [iter, i + 1]);
})
.reduce();
}
});