The concatenated list.
const singleZero = singleton(0);
const emptiness = empty<number>();
const iter = toIterator(plus(singleZero)(singleZero));
expect(iter.next()).toStrictEqual({ value: 0, done: false });
expect(iter.next()).toStrictEqual({ value: 0, done: false });
expect(iter.next()).toStrictEqual({ value: undefined, done: true });
expect(
unCons(plus(singleZero)(emptiness)),
).toStrictEqual(
Option.some([0, empty()] as [number, List<number>]),
);
expect(
unCons(plus(emptiness)(singleZero)),
).toStrictEqual(
Option.some([0, empty()] as [number, List<number>]),
);
expect(unCons(plus(emptiness)(emptiness))).toStrictEqual(Option.none());
Concatenates two lists.