The left-side tree.
The concatenated tree.
const toArray = Array.fromReduce(reduceTree);
const emptiness = empty;
const single = fromArray([3]);
const many = fromArray([2, 1, 8, 2, 8]);
expect(toArray(concat(emptiness)(emptiness))).toStrictEqual([]);
expect(toArray(concat(emptiness)(single))).toStrictEqual([3]);
expect(toArray(concat(single)(emptiness))).toStrictEqual([3]);
expect(toArray(concat(single)(single))).toStrictEqual([3, 3]);
expect(toArray(concat(emptiness)(many))).toStrictEqual([2, 1, 8, 2, 8]);
expect(toArray(concat(many)(emptiness))).toStrictEqual([2, 1, 8, 2, 8]);
expect(toArray(concat(single)(many))).toStrictEqual([3, 2, 1, 8, 2, 8]);
expect(toArray(concat(many)(single))).toStrictEqual([2, 1, 8, 2, 8, 3]);
expect(toArray(concat(many)(many))).toStrictEqual([
2,
1,
8,
2,
8,
2,
1,
8,
2,
8,
]);
Concatenates two trees.