diff --git a/monoid-design.md b/monoid-design.md
index ec414b14d3d9b4979f3cf7acdf142838f6928236..29f6705a4e8005b072b0d02aad0e67c1933bb384 100644
--- a/monoid-design.md
+++ b/monoid-design.md
@@ -57,7 +57,7 @@
 
 ## Iterative Reducers
 
-```
+```js
 function iterativeReduce(monoid, sequence) {
   let result = monoid.identity;
   for (const element of sequence) {
@@ -71,7 +71,7 @@ function iterativeReduce(monoid, sequence) {
 
 ## Recursive Reducers
 
-```
+```js
 function recursiveReduce(monoid, sequence) {
   if (sequence.length === 0) {
     return monoid.identity;
@@ -122,7 +122,7 @@ function recursiveReduce(monoid, sequence) {
 
 *   In Code:
 
-    ```
+    ```js
     async function parallelReduce(monoid, sequence, threadCount) {
       const jobs = [];
       for (let threadIndex = 0; threadIndex < threadCount; ++threadIndex) {
@@ -241,7 +241,7 @@ Problem: Given a string of parentheses, determine if the parentheses are balance
 
 ## Clues about the Monoid from an Iterative Design
 
-```
+```js
 function isBalanced(parentheses) {
   let nesting = 0;
   for (const character of parentheses) {
@@ -300,7 +300,7 @@ function isBalanced(parentheses) {
 
 ## New Iterative Solution
 
-```
+```js
 function encode(character) {
   if (character === '(') {
     return […, …];
@@ -327,7 +327,7 @@ function iterativeReduce(parentheses) {
 
 ## Parallel Solution
 
-```
+```js
 async function parallelReduce(parentheses, threadCount) {
   const jobs = [];
   for (let threadIndex = 0; threadIndex < threadCount; ++threadIndex) {