diff --git a/test/release/examples/benchmarks/hpcc/ra-atomics.chpl b/test/release/examples/benchmarks/hpcc/ra-atomics.chpl
index 0b8db4ccbfa8..d2cd5c49c403 100644
--- a/test/release/examples/benchmarks/hpcc/ra-atomics.chpl
+++ b/test/release/examples/benchmarks/hpcc/ra-atomics.chpl
@@ -104,7 +104,7 @@ proc main() {
   //
   // In parallel, initialize the table such that each position
   // contains its index.  "[i in TableSpace]" is shorthand for "forall
-  // i in TableSpace"
+  // i in TableSpace".  "with (ref T)" is required since we are modifying "T".
   //
   [i in TableSpace with (ref T)] T(i).poke(i);
 
diff --git a/test/release/examples/benchmarks/hpcc/ra.chpl b/test/release/examples/benchmarks/hpcc/ra.chpl
index a6a8e3d1ba51..afe376cf2ab9 100644
--- a/test/release/examples/benchmarks/hpcc/ra.chpl
+++ b/test/release/examples/benchmarks/hpcc/ra.chpl
@@ -128,7 +128,7 @@ proc main() {
   //
   // In parallel, initialize the table such that each position
   // contains its index.  "[i in TableSpace]" is shorthand for "forall
-  // i in TableSpace"
+  // i in TableSpace".  "with (ref T)" is required since we are modifying "T".
   //
   [i in TableSpace with (ref T)] T[i] = i;
 
diff --git a/test/release/examples/benchmarks/hpcc/variants/ra-cleanloop.chpl b/test/release/examples/benchmarks/hpcc/variants/ra-cleanloop.chpl
index 5a2a28fe453b..74b8563e4874 100644
--- a/test/release/examples/benchmarks/hpcc/variants/ra-cleanloop.chpl
+++ b/test/release/examples/benchmarks/hpcc/variants/ra-cleanloop.chpl
@@ -124,7 +124,7 @@ proc main() {
   //
   // In parallel, initialize the table such that each position
   // contains its index.  "[i in TableSpace]" is shorthand for "forall
-  // i in TableSpace"
+  // i in TableSpace".  "with (ref T)" is required since we are modifying "T".
   //
   [i in TableSpace with (ref T)] T[i] = i;
 
diff --git a/test/release/examples/benchmarks/hpcc/variants/ra-unordered-atomics.chpl b/test/release/examples/benchmarks/hpcc/variants/ra-unordered-atomics.chpl
index 16586289deb6..9923d520471e 100644
--- a/test/release/examples/benchmarks/hpcc/variants/ra-unordered-atomics.chpl
+++ b/test/release/examples/benchmarks/hpcc/variants/ra-unordered-atomics.chpl
@@ -91,7 +91,7 @@ proc main() {
   //
   // In parallel, initialize the table such that each position
   // contains its index.  "[i in TableSpace]" is shorthand for "forall
-  // i in TableSpace"
+  // i in TableSpace".  "with (ref T)" is required since we are modifying "T".
   //
   [i in TableSpace with (ref T)] T(i).poke(i);
 
diff --git a/test/release/examples/primers/arrays.chpl b/test/release/examples/primers/arrays.chpl
index 06934199b3a0..1ec544c7d732 100644
--- a/test/release/examples/primers/arrays.chpl
+++ b/test/release/examples/primers/arrays.chpl
@@ -128,7 +128,11 @@ writeln("After incrementing B's elements, B is:\n", B, "\n");
 // from the ranges specified within the array type's square brackets.
 // Array ``A2`` above will have the implicit domain ``{0..4}`` to
 // represent the five values in its initializing expression.
-
+//
+// The explicit ``ref`` intent is required for ``B`` in the example below
+// because ``B`` is not modifed directly through the loop's index variable (in
+// this case ``i`` and ``j``).
+//
 // An array's domain can be queried using the ``.domain`` method,
 // which returns a ``const ref`` to the domain in question.  For
 // example, here's a loop that iterates over B's indices in parallel
@@ -158,7 +162,7 @@ proc negateAndPrintArr(ref X: [?D] real) {
 negateAndPrintArr(B);
 
 //
-// Arrays are passed to routines by constant reference (``const ref``) by
+// Arrays are passed to routines by constant (``const``) by
 // default, which does not allow them to be modified within the routine.
 // The above procedure ``negateAndPrintArr()`` must use a non-constant
 // reference intent (``ref``) explicitly, so that its modifications of ``X``
diff --git a/test/release/examples/primers/forallLoops.chpl b/test/release/examples/primers/forallLoops.chpl
index 408eee1c9cdc..dc1945097e27 100644
--- a/test/release/examples/primers/forallLoops.chpl
+++ b/test/release/examples/primers/forallLoops.chpl
@@ -32,8 +32,9 @@ an expression. Both kinds are shown in the following sections.
 "Must-parallel" forall statement
 --------------------------------
 
-In the following example, the forall loop iterates over the array indices
-in parallel:
+In the following example, the forall loop iterates over the array indices in
+parallel. Since the loop iterates over ``1..n`` and not ``A``, an explicit
+``ref`` intent must be used to allow modification of ``A``.
 */
 
 config const n = 5;
@@ -81,7 +82,8 @@ provide a "leader" iterator and all iterables provide "follower" iterators.
 These are described in the :ref:`parallel iterators primer
 <primers-parIters-leader-follower>`.
 
-Here we illustrate zippering arrays and domains:
+Here we illustrate zippering arrays and domains. In this example, we must
+explicitly mark ``C`` as modified with a ``ref`` intent.
 */
 
 var C: [1..n] real;
@@ -187,7 +189,8 @@ of shadow variables, one per outer variable.
 The default argument intent (:ref:`The_Default_Intent`) is used by default.
 For numeric types, this implies capturing the value of the outer
 variable by the time the task starts executing. Arrays are passed by
-reference, as are sync and atomic variables
+constant reference, so to modify them we must use an explicit intent.
+Sync and atomic variables are passed by reference
 (:ref:`primers-syncs`, :ref:`primers-atomics`).
 */
 
diff --git a/test/studies/hpcc/FFT/fft.chpl b/test/studies/hpcc/FFT/fft.chpl
index f705aee954ae..8e6c885b108a 100644
--- a/test/studies/hpcc/FFT/fft.chpl
+++ b/test/studies/hpcc/FFT/fft.chpl
@@ -205,7 +205,7 @@ proc dfft(ref A: [?ADom], W, cyclicPhase) {
 
 //
 // this is the radix-4 butterfly routine that takes multipliers wk1,
-// wk2, and wk3 and a 4-element array (slice) A.
+// wk2, and wk3 and a 4-element array (slice) X.
 //
 proc butterfly(wk1, wk2, wk3, ref X:[?D]) {
   const i0 = D.low,
diff --git a/test/studies/hpcc/HPL/hpl.chpl b/test/studies/hpcc/HPL/hpl.chpl
index 05c76012019b..e5a267de5c31 100644
--- a/test/studies/hpcc/HPL/hpl.chpl
+++ b/test/studies/hpcc/HPL/hpl.chpl
@@ -170,7 +170,7 @@ proc LUFactorize(n: int, ref Ab: [?AbD] elemType,
 //     |aaaaa|.....|.....|.....|  function but called AD here.  Similarly,
 //     +-----+-----+-----+-----+  'b' was 'tr' in the calling code, but BD
 //     |aaaaa|.....|.....|.....|  here.
-//     |aaaaa|.....|.....|.....|  
+//     |aaaaa|.....|.....|.....|
 //     |aaaaa|.....|.....|.....|
 //     +-----+-----+-----+-----+
 //
diff --git a/test/studies/hpcc/RA/diten/ra.chpl b/test/studies/hpcc/RA/diten/ra.chpl
index 9ea2ba09b829..033f0bd9fa59 100644
--- a/test/studies/hpcc/RA/diten/ra.chpl
+++ b/test/studies/hpcc/RA/diten/ra.chpl
@@ -100,7 +100,7 @@ proc main() {
   //
   // In parallel, initialize the table such that each position
   // contains its index.  "[i in TableSpace]" is shorthand for "forall
-  // i in TableSpace"
+  // i in TableSpace".  "with (ref T)" is required since we are modifying "T".
   //
   [i in TableSpace with (ref T)] T(i) = i;
   for loc in Locales {