import { Sequence } from '../../core'; import { compose } from '../../../../helper/compose'; compose(Sequence, class extends Sequence { public override fmap(f: (a: a) => b): Sequence> { return new Sequence>((iter = () => this.iterate()) => Sequence.Iterator.when>>( iter(), () => Sequence.Data.cons(), thunk => Sequence.Data.cons(f(Sequence.Thunk.value(thunk)), Sequence.Thunk.iterator(thunk)))); } });