diff --git a/homework-4/src/signal.test.js b/homework-4/src/signal.test.js
index f10292980e4550250ebaadf7720493ec9e3104f7..65aafdc63de92d17010a6ec3c2d5dc1918c81512 100644
--- a/homework-4/src/signal.test.js
+++ b/homework-4/src/signal.test.js
@@ -18,7 +18,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
     const signals = [
       true, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(0);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(1);
   });
   test('does not claim to find a period in signal sequence #3 with one thread', async() => {
     const signals = [
@@ -83,14 +83,14 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, true, false, false,
       false, true, false, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(3);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(4);
   });
   test('finds a period of 7 in signal sequence #13 with one thread', async() => {
     const signals = [
       false, false, true, false, false, false, false, false,
       false, false, true, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(8);
   });
   test('finds an inconsistent period in signal sequence #14 with one thread', async() => {
     const signals = [
@@ -105,7 +105,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #16 with one thread', async() => {
     const signals = [
@@ -121,7 +121,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(2);
   });
   test('finds a period of 1 in signal sequence #18 with one thread', async() => {
     const signals = [
@@ -129,7 +129,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(2);
   });
   test('finds a period of 9 in signal sequence #19 with one thread', async() => {
     const signals = [
@@ -137,7 +137,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(10);
   });
   test('finds an inconsistent period in signal sequence #20 with one thread', async() => {
     const signals = [
@@ -162,7 +162,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(16);
   });
   test('finds a period of 4 in signal sequence #23 with one thread', async() => {
     const signals = [
@@ -171,7 +171,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, true,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #24 with one thread', async() => {
     const signals = [
@@ -199,7 +199,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #27 with one thread', async() => {
     const signals = [
@@ -219,7 +219,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, true, false, false, true, false,
       false, true, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(2);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(3);
   });
   test('finds an inconsistent period in signal sequence #29 with one thread', async() => {
     const signals = [
@@ -250,7 +250,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(10);
   });
   test('finds a period of 10 in signal sequence #32 with one thread', async() => {
     const signals = [
@@ -261,7 +261,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #33 with one thread', async() => {
     const signals = [
@@ -308,7 +308,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, true,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(7);
   });
   test('finds an inconsistent period in signal sequence #37 with one thread', async() => {
     const signals = [
@@ -334,7 +334,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(7);
   });
   test('finds a period of 15 in signal sequence #39 with one thread', async() => {
     const signals = [
@@ -347,7 +347,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #40 with one thread', async() => {
     const signals = [
@@ -374,7 +374,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(7);
   });
   test('finds a period of 12 in signal sequence #42 with one thread', async() => {
     const signals = [
@@ -389,7 +389,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #43 with one thread', async() => {
     const signals = [
@@ -405,7 +405,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(9);
   });
   test('finds a period of 5 in signal sequence #44 with one thread', async() => {
     const signals = [
@@ -421,7 +421,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, true, false,
       false, false, false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #45 with one thread', async() => {
     const signals = [
@@ -475,7 +475,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #48 with one thread', async() => {
     const signals = [
@@ -512,7 +512,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(16);
   });
   test('finds a period of 7 in signal sequence #50 with one thread', async() => {
     const signals = [
@@ -531,7 +531,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(8);
   });
   test('finds a period of 15 in signal sequence #51 with one thread', async() => {
     const signals = [
@@ -551,7 +551,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #52 with one thread', async() => {
     const signals = [
@@ -615,7 +615,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(9);
   });
   test('finds a period of 10 in signal sequence #55 with one thread', async() => {
     const signals = [
@@ -637,7 +637,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(11);
   });
   test('finds a period of 12 in signal sequence #56 with one thread', async() => {
     const signals = [
@@ -660,7 +660,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #57 with one thread', async() => {
     const signals = [
@@ -683,7 +683,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(9);
   });
   test('finds a period of 11 in signal sequence #58 with one thread', async() => {
     const signals = [
@@ -707,7 +707,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(11);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(12);
   });
   test('finds an inconsistent period in signal sequence #59 with one thread', async() => {
     const signals = [
@@ -756,7 +756,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(10);
   });
   test('finds a period of 15 in signal sequence #61 with one thread', async() => {
     const signals = [
@@ -782,7 +782,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #62 with one thread', async() => {
     const signals = [
@@ -837,7 +837,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(13);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(14);
   });
   test('finds an inconsistent period in signal sequence #64 with one thread', async() => {
     const signals = [
@@ -898,7 +898,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(15);
   });
   test('finds an inconsistent period in signal sequence #66 with one thread', async() => {
     const signals = [
@@ -965,7 +965,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(15);
   });
   test('does not claim to find a period in signal sequence #0 with two threads', async() => {
     const signals = [
@@ -983,7 +983,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
     const signals = [
       true, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(0);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(1);
   });
   test('does not claim to find a period in signal sequence #3 with two threads', async() => {
     const signals = [
@@ -1048,14 +1048,14 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, true, false, false,
       false, true, false, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(3);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(4);
   });
   test('finds a period of 7 in signal sequence #13 with two threads', async() => {
     const signals = [
       false, false, true, false, false, false, false, false,
       false, false, true, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(8);
   });
   test('finds an inconsistent period in signal sequence #14 with two threads', async() => {
     const signals = [
@@ -1070,7 +1070,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #16 with two threads', async() => {
     const signals = [
@@ -1086,7 +1086,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(2);
   });
   test('finds a period of 1 in signal sequence #18 with two threads', async() => {
     const signals = [
@@ -1094,7 +1094,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(2);
   });
   test('finds a period of 9 in signal sequence #19 with two threads', async() => {
     const signals = [
@@ -1102,7 +1102,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(10);
   });
   test('finds an inconsistent period in signal sequence #20 with two threads', async() => {
     const signals = [
@@ -1127,7 +1127,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(16);
   });
   test('finds a period of 4 in signal sequence #23 with two threads', async() => {
     const signals = [
@@ -1136,7 +1136,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, true,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #24 with two threads', async() => {
     const signals = [
@@ -1164,7 +1164,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #27 with two threads', async() => {
     const signals = [
@@ -1184,7 +1184,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, true, false, false, true, false,
       false, true, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(2);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(3);
   });
   test('finds an inconsistent period in signal sequence #29 with two threads', async() => {
     const signals = [
@@ -1215,7 +1215,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(10);
   });
   test('finds a period of 10 in signal sequence #32 with two threads', async() => {
     const signals = [
@@ -1226,7 +1226,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #33 with two threads', async() => {
     const signals = [
@@ -1273,7 +1273,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, true,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(7);
   });
   test('finds an inconsistent period in signal sequence #37 with two threads', async() => {
     const signals = [
@@ -1299,7 +1299,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(7);
   });
   test('finds a period of 15 in signal sequence #39 with two threads', async() => {
     const signals = [
@@ -1312,7 +1312,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #40 with two threads', async() => {
     const signals = [
@@ -1339,7 +1339,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(7);
   });
   test('finds a period of 12 in signal sequence #42 with two threads', async() => {
     const signals = [
@@ -1354,7 +1354,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #43 with two threads', async() => {
     const signals = [
@@ -1370,7 +1370,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(9);
   });
   test('finds a period of 5 in signal sequence #44 with two threads', async() => {
     const signals = [
@@ -1386,7 +1386,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, true, false,
       false, false, false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #45 with two threads', async() => {
     const signals = [
@@ -1440,7 +1440,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #48 with two threads', async() => {
     const signals = [
@@ -1477,7 +1477,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(16);
   });
   test('finds a period of 7 in signal sequence #50 with two threads', async() => {
     const signals = [
@@ -1496,7 +1496,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(8);
   });
   test('finds a period of 15 in signal sequence #51 with two threads', async() => {
     const signals = [
@@ -1516,7 +1516,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #52 with two threads', async() => {
     const signals = [
@@ -1580,7 +1580,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(9);
   });
   test('finds a period of 10 in signal sequence #55 with two threads', async() => {
     const signals = [
@@ -1602,7 +1602,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(11);
   });
   test('finds a period of 12 in signal sequence #56 with two threads', async() => {
     const signals = [
@@ -1625,7 +1625,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #57 with two threads', async() => {
     const signals = [
@@ -1648,7 +1648,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(9);
   });
   test('finds a period of 11 in signal sequence #58 with two threads', async() => {
     const signals = [
@@ -1672,7 +1672,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(11);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(12);
   });
   test('finds an inconsistent period in signal sequence #59 with two threads', async() => {
     const signals = [
@@ -1721,7 +1721,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(10);
   });
   test('finds a period of 15 in signal sequence #61 with two threads', async() => {
     const signals = [
@@ -1747,7 +1747,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #62 with two threads', async() => {
     const signals = [
@@ -1802,7 +1802,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(13);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(14);
   });
   test('finds an inconsistent period in signal sequence #64 with two threads', async() => {
     const signals = [
@@ -1863,7 +1863,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(15);
   });
   test('finds an inconsistent period in signal sequence #66 with two threads', async() => {
     const signals = [
@@ -1930,7 +1930,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(15);
   });
   test('does not claim to find a period in signal sequence #0 with three threads', async() => {
     const signals = [
@@ -1948,7 +1948,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
     const signals = [
       true, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(0);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(1);
   });
   test('does not claim to find a period in signal sequence #3 with three threads', async() => {
     const signals = [
@@ -2013,14 +2013,14 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, true, false, false,
       false, true, false, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(3);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(4);
   });
   test('finds a period of 7 in signal sequence #13 with three threads', async() => {
     const signals = [
       false, false, true, false, false, false, false, false,
       false, false, true, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(8);
   });
   test('finds an inconsistent period in signal sequence #14 with three threads', async() => {
     const signals = [
@@ -2035,7 +2035,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #16 with three threads', async() => {
     const signals = [
@@ -2051,7 +2051,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(2);
   });
   test('finds a period of 1 in signal sequence #18 with three threads', async() => {
     const signals = [
@@ -2059,7 +2059,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(2);
   });
   test('finds a period of 9 in signal sequence #19 with three threads', async() => {
     const signals = [
@@ -2067,7 +2067,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(10);
   });
   test('finds an inconsistent period in signal sequence #20 with three threads', async() => {
     const signals = [
@@ -2092,7 +2092,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(16);
   });
   test('finds a period of 4 in signal sequence #23 with three threads', async() => {
     const signals = [
@@ -2101,7 +2101,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, true,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #24 with three threads', async() => {
     const signals = [
@@ -2129,7 +2129,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #27 with three threads', async() => {
     const signals = [
@@ -2149,7 +2149,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, true, false, false, true, false,
       false, true, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(2);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(3);
   });
   test('finds an inconsistent period in signal sequence #29 with three threads', async() => {
     const signals = [
@@ -2180,7 +2180,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(10);
   });
   test('finds a period of 10 in signal sequence #32 with three threads', async() => {
     const signals = [
@@ -2191,7 +2191,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #33 with three threads', async() => {
     const signals = [
@@ -2238,7 +2238,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, true,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(7);
   });
   test('finds an inconsistent period in signal sequence #37 with three threads', async() => {
     const signals = [
@@ -2264,7 +2264,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(7);
   });
   test('finds a period of 15 in signal sequence #39 with three threads', async() => {
     const signals = [
@@ -2277,7 +2277,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #40 with three threads', async() => {
     const signals = [
@@ -2304,7 +2304,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(7);
   });
   test('finds a period of 12 in signal sequence #42 with three threads', async() => {
     const signals = [
@@ -2319,7 +2319,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #43 with three threads', async() => {
     const signals = [
@@ -2335,7 +2335,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(9);
   });
   test('finds a period of 5 in signal sequence #44 with three threads', async() => {
     const signals = [
@@ -2351,7 +2351,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, true, false,
       false, false, false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #45 with three threads', async() => {
     const signals = [
@@ -2405,7 +2405,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #48 with three threads', async() => {
     const signals = [
@@ -2442,7 +2442,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(16);
   });
   test('finds a period of 7 in signal sequence #50 with three threads', async() => {
     const signals = [
@@ -2461,7 +2461,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(8);
   });
   test('finds a period of 15 in signal sequence #51 with three threads', async() => {
     const signals = [
@@ -2481,7 +2481,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #52 with three threads', async() => {
     const signals = [
@@ -2545,7 +2545,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(9);
   });
   test('finds a period of 10 in signal sequence #55 with three threads', async() => {
     const signals = [
@@ -2567,7 +2567,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(11);
   });
   test('finds a period of 12 in signal sequence #56 with three threads', async() => {
     const signals = [
@@ -2590,7 +2590,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #57 with three threads', async() => {
     const signals = [
@@ -2613,7 +2613,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(9);
   });
   test('finds a period of 11 in signal sequence #58 with three threads', async() => {
     const signals = [
@@ -2637,7 +2637,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(11);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(12);
   });
   test('finds an inconsistent period in signal sequence #59 with three threads', async() => {
     const signals = [
@@ -2686,7 +2686,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(10);
   });
   test('finds a period of 15 in signal sequence #61 with three threads', async() => {
     const signals = [
@@ -2712,7 +2712,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #62 with three threads', async() => {
     const signals = [
@@ -2767,7 +2767,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(13);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(14);
   });
   test('finds an inconsistent period in signal sequence #64 with three threads', async() => {
     const signals = [
@@ -2828,7 +2828,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(15);
   });
   test('finds an inconsistent period in signal sequence #66 with three threads', async() => {
     const signals = [
@@ -2895,7 +2895,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(15);
   });
   test('does not claim to find a period in signal sequence #0 with four threads', async() => {
     const signals = [
@@ -2913,7 +2913,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
     const signals = [
       true, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(0);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(1);
   });
   test('does not claim to find a period in signal sequence #3 with four threads', async() => {
     const signals = [
@@ -2978,14 +2978,14 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, true, false, false,
       false, true, false, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(3);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(4);
   });
   test('finds a period of 7 in signal sequence #13 with four threads', async() => {
     const signals = [
       false, false, true, false, false, false, false, false,
       false, false, true, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(8);
   });
   test('finds an inconsistent period in signal sequence #14 with four threads', async() => {
     const signals = [
@@ -3000,7 +3000,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #16 with four threads', async() => {
     const signals = [
@@ -3016,7 +3016,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(2);
   });
   test('finds a period of 1 in signal sequence #18 with four threads', async() => {
     const signals = [
@@ -3024,7 +3024,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(2);
   });
   test('finds a period of 9 in signal sequence #19 with four threads', async() => {
     const signals = [
@@ -3032,7 +3032,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(10);
   });
   test('finds an inconsistent period in signal sequence #20 with four threads', async() => {
     const signals = [
@@ -3057,7 +3057,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(16);
   });
   test('finds a period of 4 in signal sequence #23 with four threads', async() => {
     const signals = [
@@ -3066,7 +3066,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, true,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #24 with four threads', async() => {
     const signals = [
@@ -3094,7 +3094,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #27 with four threads', async() => {
     const signals = [
@@ -3114,7 +3114,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, true, false, false, true, false,
       false, true, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(2);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(3);
   });
   test('finds an inconsistent period in signal sequence #29 with four threads', async() => {
     const signals = [
@@ -3145,7 +3145,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(10);
   });
   test('finds a period of 10 in signal sequence #32 with four threads', async() => {
     const signals = [
@@ -3156,7 +3156,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #33 with four threads', async() => {
     const signals = [
@@ -3203,7 +3203,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, true,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(7);
   });
   test('finds an inconsistent period in signal sequence #37 with four threads', async() => {
     const signals = [
@@ -3229,7 +3229,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(7);
   });
   test('finds a period of 15 in signal sequence #39 with four threads', async() => {
     const signals = [
@@ -3242,7 +3242,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #40 with four threads', async() => {
     const signals = [
@@ -3269,7 +3269,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(7);
   });
   test('finds a period of 12 in signal sequence #42 with four threads', async() => {
     const signals = [
@@ -3284,7 +3284,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #43 with four threads', async() => {
     const signals = [
@@ -3300,7 +3300,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(9);
   });
   test('finds a period of 5 in signal sequence #44 with four threads', async() => {
     const signals = [
@@ -3316,7 +3316,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, true, false,
       false, false, false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #45 with four threads', async() => {
     const signals = [
@@ -3370,7 +3370,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #48 with four threads', async() => {
     const signals = [
@@ -3407,7 +3407,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(16);
   });
   test('finds a period of 7 in signal sequence #50 with four threads', async() => {
     const signals = [
@@ -3426,7 +3426,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(8);
   });
   test('finds a period of 15 in signal sequence #51 with four threads', async() => {
     const signals = [
@@ -3446,7 +3446,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #52 with four threads', async() => {
     const signals = [
@@ -3510,7 +3510,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(9);
   });
   test('finds a period of 10 in signal sequence #55 with four threads', async() => {
     const signals = [
@@ -3532,7 +3532,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(11);
   });
   test('finds a period of 12 in signal sequence #56 with four threads', async() => {
     const signals = [
@@ -3555,7 +3555,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #57 with four threads', async() => {
     const signals = [
@@ -3578,7 +3578,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(9);
   });
   test('finds a period of 11 in signal sequence #58 with four threads', async() => {
     const signals = [
@@ -3602,7 +3602,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(11);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(12);
   });
   test('finds an inconsistent period in signal sequence #59 with four threads', async() => {
     const signals = [
@@ -3651,7 +3651,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(10);
   });
   test('finds a period of 15 in signal sequence #61 with four threads', async() => {
     const signals = [
@@ -3677,7 +3677,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #62 with four threads', async() => {
     const signals = [
@@ -3732,7 +3732,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(13);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(14);
   });
   test('finds an inconsistent period in signal sequence #64 with four threads', async() => {
     const signals = [
@@ -3793,7 +3793,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(15);
   });
   test('finds an inconsistent period in signal sequence #66 with four threads', async() => {
     const signals = [
@@ -3860,7 +3860,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(15);
   });
   test('does not claim to find a period in signal sequence #0 with five threads', async() => {
     const signals = [
@@ -3878,7 +3878,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
     const signals = [
       true, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(0);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(1);
   });
   test('does not claim to find a period in signal sequence #3 with five threads', async() => {
     const signals = [
@@ -3943,14 +3943,14 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, true, false, false,
       false, true, false, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(3);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(4);
   });
   test('finds a period of 7 in signal sequence #13 with five threads', async() => {
     const signals = [
       false, false, true, false, false, false, false, false,
       false, false, true, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(8);
   });
   test('finds an inconsistent period in signal sequence #14 with five threads', async() => {
     const signals = [
@@ -3965,7 +3965,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #16 with five threads', async() => {
     const signals = [
@@ -3981,7 +3981,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(2);
   });
   test('finds a period of 1 in signal sequence #18 with five threads', async() => {
     const signals = [
@@ -3989,7 +3989,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(2);
   });
   test('finds a period of 9 in signal sequence #19 with five threads', async() => {
     const signals = [
@@ -3997,7 +3997,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(10);
   });
   test('finds an inconsistent period in signal sequence #20 with five threads', async() => {
     const signals = [
@@ -4022,7 +4022,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(16);
   });
   test('finds a period of 4 in signal sequence #23 with five threads', async() => {
     const signals = [
@@ -4031,7 +4031,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, true,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #24 with five threads', async() => {
     const signals = [
@@ -4059,7 +4059,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #27 with five threads', async() => {
     const signals = [
@@ -4079,7 +4079,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, true, false, false, true, false,
       false, true, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(2);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(3);
   });
   test('finds an inconsistent period in signal sequence #29 with five threads', async() => {
     const signals = [
@@ -4110,7 +4110,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(10);
   });
   test('finds a period of 10 in signal sequence #32 with five threads', async() => {
     const signals = [
@@ -4121,7 +4121,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #33 with five threads', async() => {
     const signals = [
@@ -4168,7 +4168,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, true,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(7);
   });
   test('finds an inconsistent period in signal sequence #37 with five threads', async() => {
     const signals = [
@@ -4194,7 +4194,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(7);
   });
   test('finds a period of 15 in signal sequence #39 with five threads', async() => {
     const signals = [
@@ -4207,7 +4207,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #40 with five threads', async() => {
     const signals = [
@@ -4234,7 +4234,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(7);
   });
   test('finds a period of 12 in signal sequence #42 with five threads', async() => {
     const signals = [
@@ -4249,7 +4249,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #43 with five threads', async() => {
     const signals = [
@@ -4265,7 +4265,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(9);
   });
   test('finds a period of 5 in signal sequence #44 with five threads', async() => {
     const signals = [
@@ -4281,7 +4281,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, true, false,
       false, false, false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #45 with five threads', async() => {
     const signals = [
@@ -4335,7 +4335,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #48 with five threads', async() => {
     const signals = [
@@ -4372,7 +4372,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(16);
   });
   test('finds a period of 7 in signal sequence #50 with five threads', async() => {
     const signals = [
@@ -4391,7 +4391,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(8);
   });
   test('finds a period of 15 in signal sequence #51 with five threads', async() => {
     const signals = [
@@ -4411,7 +4411,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #52 with five threads', async() => {
     const signals = [
@@ -4475,7 +4475,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(9);
   });
   test('finds a period of 10 in signal sequence #55 with five threads', async() => {
     const signals = [
@@ -4497,7 +4497,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(11);
   });
   test('finds a period of 12 in signal sequence #56 with five threads', async() => {
     const signals = [
@@ -4520,7 +4520,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #57 with five threads', async() => {
     const signals = [
@@ -4543,7 +4543,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(9);
   });
   test('finds a period of 11 in signal sequence #58 with five threads', async() => {
     const signals = [
@@ -4567,7 +4567,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(11);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(12);
   });
   test('finds an inconsistent period in signal sequence #59 with five threads', async() => {
     const signals = [
@@ -4616,7 +4616,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(10);
   });
   test('finds a period of 15 in signal sequence #61 with five threads', async() => {
     const signals = [
@@ -4642,7 +4642,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #62 with five threads', async() => {
     const signals = [
@@ -4697,7 +4697,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(13);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(14);
   });
   test('finds an inconsistent period in signal sequence #64 with five threads', async() => {
     const signals = [
@@ -4758,7 +4758,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(15);
   });
   test('finds an inconsistent period in signal sequence #66 with five threads', async() => {
     const signals = [
@@ -4825,6 +4825,6 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(15);
   });
 });
diff --git a/homework-4/src/simpleXML.test.js b/homework-4/src/simpleXML.test.js
index 7219193d7c028a29b0e0ad7fd6ac107dd6b710d9..a93f7815df19662f8ffc591cd81d61889b4269f7 100644
--- a/homework-4/src/simpleXML.test.js
+++ b/homework-4/src/simpleXML.test.js
@@ -1503,7 +1503,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #375 with one thread', async() => {
     const text = '</">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #376 with one thread', async() => {
     const text = '</"x';
@@ -3175,7 +3175,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #793 with one thread', async() => {
     const text = '< /">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('validates string #794 with one thread', async() => {
     const text = '< x/>';
@@ -3215,7 +3215,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #803 with one thread', async() => {
     const text = '</ ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #804 with one thread', async() => {
     const text = '</ />';
@@ -3239,7 +3239,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #809 with one thread', async() => {
     const text = '</" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #810 with one thread', async() => {
     const text = '</"" ';
@@ -3263,7 +3263,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #815 with one thread', async() => {
     const text = '</"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #816 with one thread', async() => {
     const text = '</""x';
@@ -3303,7 +3303,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #825 with one thread', async() => {
     const text = '</"x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #826 with one thread', async() => {
     const text = '</"xx';
@@ -3311,7 +3311,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #827 with one thread', async() => {
     const text = '</x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #828 with one thread', async() => {
     const text = '</x/>';
@@ -4903,7 +4903,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1225 with one thread', async() => {
     const text = '<  /">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('validates string #1226 with one thread', async() => {
     const text = '<  x/>';
@@ -4919,7 +4919,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1229 with one thread', async() => {
     const text = '</  ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1230 with one thread', async() => {
     const text = '</  />';
@@ -4943,7 +4943,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1235 with one thread', async() => {
     const text = '</ "">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1236 with one thread', async() => {
     const text = '</ "/>';
@@ -4951,7 +4951,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1237 with one thread', async() => {
     const text = '</ x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1238 with one thread', async() => {
     const text = '</ x/>';
@@ -4967,7 +4967,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1241 with one thread', async() => {
     const text = '</"" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1242 with one thread', async() => {
     const text = '</""" ';
@@ -4991,7 +4991,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1247 with one thread', async() => {
     const text = '</""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1248 with one thread', async() => {
     const text = '</"""x';
@@ -5031,7 +5031,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1257 with one thread', async() => {
     const text = '</""x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1258 with one thread', async() => {
     const text = '</""xx';
@@ -5039,7 +5039,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1259 with one thread', async() => {
     const text = '</"x >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1260 with one thread', async() => {
     const text = '</"x" ';
@@ -5063,7 +5063,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1265 with one thread', async() => {
     const text = '</"x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1266 with one thread', async() => {
     const text = '</"x"x';
@@ -5103,7 +5103,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1275 with one thread', async() => {
     const text = '</"xx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1276 with one thread', async() => {
     const text = '</"xxx';
@@ -5355,11 +5355,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1338 with one thread', async() => {
     const text = '</   ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('validates string #1339 with one thread', async() => {
     const text = '</  "">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1340 with one thread', async() => {
     const text = '</  "/>';
@@ -5367,7 +5367,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1341 with one thread', async() => {
     const text = '</  x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1342 with one thread', async() => {
     const text = '</  x/>';
@@ -5383,11 +5383,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1345 with one thread', async() => {
     const text = '</""" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('validates string #1346 with one thread', async() => {
     const text = '</"""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1347 with one thread', async() => {
     const text = '</"""/>';
@@ -5403,15 +5403,15 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1350 with one thread', async() => {
     const text = '</"""x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('validates string #1351 with one thread', async() => {
     const text = '</""x >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('validates string #1352 with one thread', async() => {
     const text = '</""x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1353 with one thread', async() => {
     const text = '</""x/>';
@@ -5427,7 +5427,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1356 with one thread', async() => {
     const text = '</""xx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1357 with one thread', async() => {
     const text = '</"x ">';
@@ -5439,11 +5439,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1359 with one thread', async() => {
     const text = '</"x" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('validates string #1360 with one thread', async() => {
     const text = '</"x"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1361 with one thread', async() => {
     const text = '</"x"/>';
@@ -5459,15 +5459,15 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1364 with one thread', async() => {
     const text = '</"x"x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('validates string #1365 with one thread', async() => {
     const text = '</"xx >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('validates string #1366 with one thread', async() => {
     const text = '</"xx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1367 with one thread', async() => {
     const text = '</"xx/>';
@@ -5483,7 +5483,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1370 with one thread', async() => {
     const text = '</"xxx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('validates string #1371 with one thread', async() => {
     const text = '<x    >';
@@ -5755,7 +5755,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1438 with one thread', async() => {
     const text = '</""""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1439 with one thread', async() => {
     const text = '</""""/>';
@@ -5763,7 +5763,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1440 with one thread', async() => {
     const text = '</"""x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1441 with one thread', async() => {
     const text = '</"""x/>';
@@ -5779,7 +5779,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1444 with one thread', async() => {
     const text = '</""x"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1445 with one thread', async() => {
     const text = '</""x"/>';
@@ -5787,7 +5787,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1446 with one thread', async() => {
     const text = '</""xx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1447 with one thread', async() => {
     const text = '</""xx/>';
@@ -5803,7 +5803,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1450 with one thread', async() => {
     const text = '</"x""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1451 with one thread', async() => {
     const text = '</"x""/>';
@@ -5811,7 +5811,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1452 with one thread', async() => {
     const text = '</"x"x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1453 with one thread', async() => {
     const text = '</"x"x/>';
@@ -5827,7 +5827,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1456 with one thread', async() => {
     const text = '</"xx"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1457 with one thread', async() => {
     const text = '</"xx"/>';
@@ -5835,7 +5835,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1458 with one thread', async() => {
     const text = '</"xxx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 1)).valid).toBe(false);
   });
   test('does not validate string #1459 with one thread', async() => {
     const text = '</"xxx/>';
@@ -11055,7 +11055,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #375 with two threads', async() => {
     const text = '</">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #376 with two threads', async() => {
     const text = '</"x';
@@ -12727,7 +12727,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #793 with two threads', async() => {
     const text = '< /">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('validates string #794 with two threads', async() => {
     const text = '< x/>';
@@ -12767,7 +12767,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #803 with two threads', async() => {
     const text = '</ ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #804 with two threads', async() => {
     const text = '</ />';
@@ -12791,7 +12791,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #809 with two threads', async() => {
     const text = '</" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #810 with two threads', async() => {
     const text = '</"" ';
@@ -12815,7 +12815,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #815 with two threads', async() => {
     const text = '</"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #816 with two threads', async() => {
     const text = '</""x';
@@ -12855,7 +12855,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #825 with two threads', async() => {
     const text = '</"x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #826 with two threads', async() => {
     const text = '</"xx';
@@ -12863,7 +12863,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #827 with two threads', async() => {
     const text = '</x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #828 with two threads', async() => {
     const text = '</x/>';
@@ -14455,7 +14455,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1225 with two threads', async() => {
     const text = '<  /">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('validates string #1226 with two threads', async() => {
     const text = '<  x/>';
@@ -14471,7 +14471,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1229 with two threads', async() => {
     const text = '</  ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1230 with two threads', async() => {
     const text = '</  />';
@@ -14495,7 +14495,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1235 with two threads', async() => {
     const text = '</ "">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1236 with two threads', async() => {
     const text = '</ "/>';
@@ -14503,7 +14503,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1237 with two threads', async() => {
     const text = '</ x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1238 with two threads', async() => {
     const text = '</ x/>';
@@ -14519,7 +14519,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1241 with two threads', async() => {
     const text = '</"" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1242 with two threads', async() => {
     const text = '</""" ';
@@ -14543,7 +14543,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1247 with two threads', async() => {
     const text = '</""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1248 with two threads', async() => {
     const text = '</"""x';
@@ -14583,7 +14583,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1257 with two threads', async() => {
     const text = '</""x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1258 with two threads', async() => {
     const text = '</""xx';
@@ -14591,7 +14591,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1259 with two threads', async() => {
     const text = '</"x >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1260 with two threads', async() => {
     const text = '</"x" ';
@@ -14615,7 +14615,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1265 with two threads', async() => {
     const text = '</"x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1266 with two threads', async() => {
     const text = '</"x"x';
@@ -14655,7 +14655,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1275 with two threads', async() => {
     const text = '</"xx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1276 with two threads', async() => {
     const text = '</"xxx';
@@ -14907,11 +14907,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1338 with two threads', async() => {
     const text = '</   ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('validates string #1339 with two threads', async() => {
     const text = '</  "">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1340 with two threads', async() => {
     const text = '</  "/>';
@@ -14919,7 +14919,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1341 with two threads', async() => {
     const text = '</  x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1342 with two threads', async() => {
     const text = '</  x/>';
@@ -14935,11 +14935,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1345 with two threads', async() => {
     const text = '</""" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('validates string #1346 with two threads', async() => {
     const text = '</"""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1347 with two threads', async() => {
     const text = '</"""/>';
@@ -14955,15 +14955,15 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1350 with two threads', async() => {
     const text = '</"""x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('validates string #1351 with two threads', async() => {
     const text = '</""x >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('validates string #1352 with two threads', async() => {
     const text = '</""x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1353 with two threads', async() => {
     const text = '</""x/>';
@@ -14979,7 +14979,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1356 with two threads', async() => {
     const text = '</""xx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1357 with two threads', async() => {
     const text = '</"x ">';
@@ -14991,11 +14991,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1359 with two threads', async() => {
     const text = '</"x" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('validates string #1360 with two threads', async() => {
     const text = '</"x"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1361 with two threads', async() => {
     const text = '</"x"/>';
@@ -15011,15 +15011,15 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1364 with two threads', async() => {
     const text = '</"x"x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('validates string #1365 with two threads', async() => {
     const text = '</"xx >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('validates string #1366 with two threads', async() => {
     const text = '</"xx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1367 with two threads', async() => {
     const text = '</"xx/>';
@@ -15035,7 +15035,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1370 with two threads', async() => {
     const text = '</"xxx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('validates string #1371 with two threads', async() => {
     const text = '<x    >';
@@ -15307,7 +15307,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1438 with two threads', async() => {
     const text = '</""""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1439 with two threads', async() => {
     const text = '</""""/>';
@@ -15315,7 +15315,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1440 with two threads', async() => {
     const text = '</"""x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1441 with two threads', async() => {
     const text = '</"""x/>';
@@ -15331,7 +15331,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1444 with two threads', async() => {
     const text = '</""x"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1445 with two threads', async() => {
     const text = '</""x"/>';
@@ -15339,7 +15339,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1446 with two threads', async() => {
     const text = '</""xx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1447 with two threads', async() => {
     const text = '</""xx/>';
@@ -15355,7 +15355,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1450 with two threads', async() => {
     const text = '</"x""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1451 with two threads', async() => {
     const text = '</"x""/>';
@@ -15363,7 +15363,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1452 with two threads', async() => {
     const text = '</"x"x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1453 with two threads', async() => {
     const text = '</"x"x/>';
@@ -15379,7 +15379,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1456 with two threads', async() => {
     const text = '</"xx"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1457 with two threads', async() => {
     const text = '</"xx"/>';
@@ -15387,7 +15387,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1458 with two threads', async() => {
     const text = '</"xxx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 2)).valid).toBe(false);
   });
   test('does not validate string #1459 with two threads', async() => {
     const text = '</"xxx/>';
@@ -20607,7 +20607,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #375 with three threads', async() => {
     const text = '</">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #376 with three threads', async() => {
     const text = '</"x';
@@ -22279,7 +22279,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #793 with three threads', async() => {
     const text = '< /">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('validates string #794 with three threads', async() => {
     const text = '< x/>';
@@ -22319,7 +22319,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #803 with three threads', async() => {
     const text = '</ ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #804 with three threads', async() => {
     const text = '</ />';
@@ -22343,7 +22343,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #809 with three threads', async() => {
     const text = '</" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #810 with three threads', async() => {
     const text = '</"" ';
@@ -22367,7 +22367,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #815 with three threads', async() => {
     const text = '</"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #816 with three threads', async() => {
     const text = '</""x';
@@ -22407,7 +22407,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #825 with three threads', async() => {
     const text = '</"x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #826 with three threads', async() => {
     const text = '</"xx';
@@ -22415,7 +22415,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #827 with three threads', async() => {
     const text = '</x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #828 with three threads', async() => {
     const text = '</x/>';
@@ -24007,7 +24007,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1225 with three threads', async() => {
     const text = '<  /">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('validates string #1226 with three threads', async() => {
     const text = '<  x/>';
@@ -24023,7 +24023,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1229 with three threads', async() => {
     const text = '</  ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1230 with three threads', async() => {
     const text = '</  />';
@@ -24047,7 +24047,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1235 with three threads', async() => {
     const text = '</ "">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1236 with three threads', async() => {
     const text = '</ "/>';
@@ -24055,7 +24055,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1237 with three threads', async() => {
     const text = '</ x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1238 with three threads', async() => {
     const text = '</ x/>';
@@ -24071,7 +24071,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1241 with three threads', async() => {
     const text = '</"" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1242 with three threads', async() => {
     const text = '</""" ';
@@ -24095,7 +24095,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1247 with three threads', async() => {
     const text = '</""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1248 with three threads', async() => {
     const text = '</"""x';
@@ -24135,7 +24135,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1257 with three threads', async() => {
     const text = '</""x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1258 with three threads', async() => {
     const text = '</""xx';
@@ -24143,7 +24143,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1259 with three threads', async() => {
     const text = '</"x >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1260 with three threads', async() => {
     const text = '</"x" ';
@@ -24167,7 +24167,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1265 with three threads', async() => {
     const text = '</"x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1266 with three threads', async() => {
     const text = '</"x"x';
@@ -24207,7 +24207,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1275 with three threads', async() => {
     const text = '</"xx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1276 with three threads', async() => {
     const text = '</"xxx';
@@ -24459,11 +24459,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1338 with three threads', async() => {
     const text = '</   ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('validates string #1339 with three threads', async() => {
     const text = '</  "">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1340 with three threads', async() => {
     const text = '</  "/>';
@@ -24471,7 +24471,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1341 with three threads', async() => {
     const text = '</  x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1342 with three threads', async() => {
     const text = '</  x/>';
@@ -24487,11 +24487,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1345 with three threads', async() => {
     const text = '</""" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('validates string #1346 with three threads', async() => {
     const text = '</"""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1347 with three threads', async() => {
     const text = '</"""/>';
@@ -24507,15 +24507,15 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1350 with three threads', async() => {
     const text = '</"""x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('validates string #1351 with three threads', async() => {
     const text = '</""x >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('validates string #1352 with three threads', async() => {
     const text = '</""x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1353 with three threads', async() => {
     const text = '</""x/>';
@@ -24531,7 +24531,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1356 with three threads', async() => {
     const text = '</""xx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1357 with three threads', async() => {
     const text = '</"x ">';
@@ -24543,11 +24543,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1359 with three threads', async() => {
     const text = '</"x" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('validates string #1360 with three threads', async() => {
     const text = '</"x"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1361 with three threads', async() => {
     const text = '</"x"/>';
@@ -24563,15 +24563,15 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1364 with three threads', async() => {
     const text = '</"x"x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('validates string #1365 with three threads', async() => {
     const text = '</"xx >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('validates string #1366 with three threads', async() => {
     const text = '</"xx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1367 with three threads', async() => {
     const text = '</"xx/>';
@@ -24587,7 +24587,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1370 with three threads', async() => {
     const text = '</"xxx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('validates string #1371 with three threads', async() => {
     const text = '<x    >';
@@ -24859,7 +24859,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1438 with three threads', async() => {
     const text = '</""""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1439 with three threads', async() => {
     const text = '</""""/>';
@@ -24867,7 +24867,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1440 with three threads', async() => {
     const text = '</"""x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1441 with three threads', async() => {
     const text = '</"""x/>';
@@ -24883,7 +24883,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1444 with three threads', async() => {
     const text = '</""x"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1445 with three threads', async() => {
     const text = '</""x"/>';
@@ -24891,7 +24891,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1446 with three threads', async() => {
     const text = '</""xx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1447 with three threads', async() => {
     const text = '</""xx/>';
@@ -24907,7 +24907,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1450 with three threads', async() => {
     const text = '</"x""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1451 with three threads', async() => {
     const text = '</"x""/>';
@@ -24915,7 +24915,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1452 with three threads', async() => {
     const text = '</"x"x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1453 with three threads', async() => {
     const text = '</"x"x/>';
@@ -24931,7 +24931,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1456 with three threads', async() => {
     const text = '</"xx"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1457 with three threads', async() => {
     const text = '</"xx"/>';
@@ -24939,7 +24939,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1458 with three threads', async() => {
     const text = '</"xxx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 3)).valid).toBe(false);
   });
   test('does not validate string #1459 with three threads', async() => {
     const text = '</"xxx/>';
@@ -30159,7 +30159,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #375 with four threads', async() => {
     const text = '</">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #376 with four threads', async() => {
     const text = '</"x';
@@ -31831,7 +31831,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #793 with four threads', async() => {
     const text = '< /">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('validates string #794 with four threads', async() => {
     const text = '< x/>';
@@ -31871,7 +31871,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #803 with four threads', async() => {
     const text = '</ ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #804 with four threads', async() => {
     const text = '</ />';
@@ -31895,7 +31895,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #809 with four threads', async() => {
     const text = '</" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #810 with four threads', async() => {
     const text = '</"" ';
@@ -31919,7 +31919,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #815 with four threads', async() => {
     const text = '</"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #816 with four threads', async() => {
     const text = '</""x';
@@ -31959,7 +31959,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #825 with four threads', async() => {
     const text = '</"x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #826 with four threads', async() => {
     const text = '</"xx';
@@ -31967,7 +31967,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #827 with four threads', async() => {
     const text = '</x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #828 with four threads', async() => {
     const text = '</x/>';
@@ -33559,7 +33559,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1225 with four threads', async() => {
     const text = '<  /">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('validates string #1226 with four threads', async() => {
     const text = '<  x/>';
@@ -33575,7 +33575,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1229 with four threads', async() => {
     const text = '</  ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1230 with four threads', async() => {
     const text = '</  />';
@@ -33599,7 +33599,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1235 with four threads', async() => {
     const text = '</ "">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1236 with four threads', async() => {
     const text = '</ "/>';
@@ -33607,7 +33607,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1237 with four threads', async() => {
     const text = '</ x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1238 with four threads', async() => {
     const text = '</ x/>';
@@ -33623,7 +33623,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1241 with four threads', async() => {
     const text = '</"" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1242 with four threads', async() => {
     const text = '</""" ';
@@ -33647,7 +33647,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1247 with four threads', async() => {
     const text = '</""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1248 with four threads', async() => {
     const text = '</"""x';
@@ -33687,7 +33687,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1257 with four threads', async() => {
     const text = '</""x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1258 with four threads', async() => {
     const text = '</""xx';
@@ -33695,7 +33695,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1259 with four threads', async() => {
     const text = '</"x >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1260 with four threads', async() => {
     const text = '</"x" ';
@@ -33719,7 +33719,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1265 with four threads', async() => {
     const text = '</"x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1266 with four threads', async() => {
     const text = '</"x"x';
@@ -33759,7 +33759,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1275 with four threads', async() => {
     const text = '</"xx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1276 with four threads', async() => {
     const text = '</"xxx';
@@ -34011,11 +34011,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1338 with four threads', async() => {
     const text = '</   ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('validates string #1339 with four threads', async() => {
     const text = '</  "">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1340 with four threads', async() => {
     const text = '</  "/>';
@@ -34023,7 +34023,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1341 with four threads', async() => {
     const text = '</  x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1342 with four threads', async() => {
     const text = '</  x/>';
@@ -34039,11 +34039,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1345 with four threads', async() => {
     const text = '</""" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('validates string #1346 with four threads', async() => {
     const text = '</"""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1347 with four threads', async() => {
     const text = '</"""/>';
@@ -34059,15 +34059,15 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1350 with four threads', async() => {
     const text = '</"""x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('validates string #1351 with four threads', async() => {
     const text = '</""x >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('validates string #1352 with four threads', async() => {
     const text = '</""x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1353 with four threads', async() => {
     const text = '</""x/>';
@@ -34083,7 +34083,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1356 with four threads', async() => {
     const text = '</""xx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1357 with four threads', async() => {
     const text = '</"x ">';
@@ -34095,11 +34095,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1359 with four threads', async() => {
     const text = '</"x" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('validates string #1360 with four threads', async() => {
     const text = '</"x"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1361 with four threads', async() => {
     const text = '</"x"/>';
@@ -34115,15 +34115,15 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1364 with four threads', async() => {
     const text = '</"x"x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('validates string #1365 with four threads', async() => {
     const text = '</"xx >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('validates string #1366 with four threads', async() => {
     const text = '</"xx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1367 with four threads', async() => {
     const text = '</"xx/>';
@@ -34139,7 +34139,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1370 with four threads', async() => {
     const text = '</"xxx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('validates string #1371 with four threads', async() => {
     const text = '<x    >';
@@ -34411,7 +34411,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1438 with four threads', async() => {
     const text = '</""""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1439 with four threads', async() => {
     const text = '</""""/>';
@@ -34419,7 +34419,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1440 with four threads', async() => {
     const text = '</"""x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1441 with four threads', async() => {
     const text = '</"""x/>';
@@ -34435,7 +34435,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1444 with four threads', async() => {
     const text = '</""x"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1445 with four threads', async() => {
     const text = '</""x"/>';
@@ -34443,7 +34443,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1446 with four threads', async() => {
     const text = '</""xx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1447 with four threads', async() => {
     const text = '</""xx/>';
@@ -34459,7 +34459,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1450 with four threads', async() => {
     const text = '</"x""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1451 with four threads', async() => {
     const text = '</"x""/>';
@@ -34467,7 +34467,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1452 with four threads', async() => {
     const text = '</"x"x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1453 with four threads', async() => {
     const text = '</"x"x/>';
@@ -34483,7 +34483,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1456 with four threads', async() => {
     const text = '</"xx"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1457 with four threads', async() => {
     const text = '</"xx"/>';
@@ -34491,7 +34491,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1458 with four threads', async() => {
     const text = '</"xxx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 4)).valid).toBe(false);
   });
   test('does not validate string #1459 with four threads', async() => {
     const text = '</"xxx/>';
@@ -39711,7 +39711,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #375 with five threads', async() => {
     const text = '</">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #376 with five threads', async() => {
     const text = '</"x';
@@ -41383,7 +41383,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #793 with five threads', async() => {
     const text = '< /">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('validates string #794 with five threads', async() => {
     const text = '< x/>';
@@ -41423,7 +41423,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #803 with five threads', async() => {
     const text = '</ ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #804 with five threads', async() => {
     const text = '</ />';
@@ -41447,7 +41447,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #809 with five threads', async() => {
     const text = '</" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #810 with five threads', async() => {
     const text = '</"" ';
@@ -41471,7 +41471,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #815 with five threads', async() => {
     const text = '</"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #816 with five threads', async() => {
     const text = '</""x';
@@ -41511,7 +41511,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #825 with five threads', async() => {
     const text = '</"x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #826 with five threads', async() => {
     const text = '</"xx';
@@ -41519,7 +41519,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #827 with five threads', async() => {
     const text = '</x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #828 with five threads', async() => {
     const text = '</x/>';
@@ -43111,7 +43111,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1225 with five threads', async() => {
     const text = '<  /">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('validates string #1226 with five threads', async() => {
     const text = '<  x/>';
@@ -43127,7 +43127,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1229 with five threads', async() => {
     const text = '</  ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1230 with five threads', async() => {
     const text = '</  />';
@@ -43151,7 +43151,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1235 with five threads', async() => {
     const text = '</ "">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1236 with five threads', async() => {
     const text = '</ "/>';
@@ -43159,7 +43159,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1237 with five threads', async() => {
     const text = '</ x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1238 with five threads', async() => {
     const text = '</ x/>';
@@ -43175,7 +43175,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1241 with five threads', async() => {
     const text = '</"" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1242 with five threads', async() => {
     const text = '</""" ';
@@ -43199,7 +43199,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1247 with five threads', async() => {
     const text = '</""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1248 with five threads', async() => {
     const text = '</"""x';
@@ -43239,7 +43239,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1257 with five threads', async() => {
     const text = '</""x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1258 with five threads', async() => {
     const text = '</""xx';
@@ -43247,7 +43247,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1259 with five threads', async() => {
     const text = '</"x >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1260 with five threads', async() => {
     const text = '</"x" ';
@@ -43271,7 +43271,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1265 with five threads', async() => {
     const text = '</"x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1266 with five threads', async() => {
     const text = '</"x"x';
@@ -43311,7 +43311,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1275 with five threads', async() => {
     const text = '</"xx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1276 with five threads', async() => {
     const text = '</"xxx';
@@ -43563,11 +43563,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1338 with five threads', async() => {
     const text = '</   ">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('validates string #1339 with five threads', async() => {
     const text = '</  "">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1340 with five threads', async() => {
     const text = '</  "/>';
@@ -43575,7 +43575,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1341 with five threads', async() => {
     const text = '</  x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1342 with five threads', async() => {
     const text = '</  x/>';
@@ -43591,11 +43591,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1345 with five threads', async() => {
     const text = '</""" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('validates string #1346 with five threads', async() => {
     const text = '</"""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1347 with five threads', async() => {
     const text = '</"""/>';
@@ -43611,15 +43611,15 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1350 with five threads', async() => {
     const text = '</"""x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('validates string #1351 with five threads', async() => {
     const text = '</""x >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('validates string #1352 with five threads', async() => {
     const text = '</""x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1353 with five threads', async() => {
     const text = '</""x/>';
@@ -43635,7 +43635,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1356 with five threads', async() => {
     const text = '</""xx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1357 with five threads', async() => {
     const text = '</"x ">';
@@ -43647,11 +43647,11 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1359 with five threads', async() => {
     const text = '</"x" >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('validates string #1360 with five threads', async() => {
     const text = '</"x"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1361 with five threads', async() => {
     const text = '</"x"/>';
@@ -43667,15 +43667,15 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1364 with five threads', async() => {
     const text = '</"x"x>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('validates string #1365 with five threads', async() => {
     const text = '</"xx >';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('validates string #1366 with five threads', async() => {
     const text = '</"xx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1367 with five threads', async() => {
     const text = '</"xx/>';
@@ -43691,7 +43691,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1370 with five threads', async() => {
     const text = '</"xxx>';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('validates string #1371 with five threads', async() => {
     const text = '<x    >';
@@ -43963,7 +43963,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1438 with five threads', async() => {
     const text = '</""""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1439 with five threads', async() => {
     const text = '</""""/>';
@@ -43971,7 +43971,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1440 with five threads', async() => {
     const text = '</"""x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1441 with five threads', async() => {
     const text = '</"""x/>';
@@ -43987,7 +43987,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1444 with five threads', async() => {
     const text = '</""x"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1445 with five threads', async() => {
     const text = '</""x"/>';
@@ -43995,7 +43995,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1446 with five threads', async() => {
     const text = '</""xx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1447 with five threads', async() => {
     const text = '</""xx/>';
@@ -44011,7 +44011,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1450 with five threads', async() => {
     const text = '</"x""">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1451 with five threads', async() => {
     const text = '</"x""/>';
@@ -44019,7 +44019,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1452 with five threads', async() => {
     const text = '</"x"x">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1453 with five threads', async() => {
     const text = '</"x"x/>';
@@ -44035,7 +44035,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1456 with five threads', async() => {
     const text = '</"xx"">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1457 with five threads', async() => {
     const text = '</"xx"/>';
@@ -44043,7 +44043,7 @@ describe('map-reduce with the simple-XML monoid', () => {
   });
   test('validates string #1458 with five threads', async() => {
     const text = '</"xxx">';
-    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(true);
+    expect((await parallelMapReduce('./simpleXML.js', text, 5)).valid).toBe(false);
   });
   test('does not validate string #1459 with five threads', async() => {
     const text = '</"xxx/>';