-Each method containing anonymous methods introduces a "root scope" in
-which all other scopes are nested. This root scope is also called the
-anonymous method's host (class `AnonymousMethodHost' in anonymous.cs).
+Unfortunately, computing the "root scope" of an anonymous method is
+very difficult and was the primary reason for the update in late
+November 2006. Consider the following example:
+
+ ====
+ TestDelegate d = null;
+ for (int i = 1; i <= 5; i++) {
+ int k = i;
+ TestDelegate temp = delegate {
+ Console.WriteLine ("i = {0}, k = {1}", i, k);
+ sum_i += 1 << i;
+ sum_k += 1 << k;
+ };
+ temp ();
+ d += temp;
+ }
+ ====
+
+Note that we're instantiating the same anonymous method multiple times
+inside a loop. The important thing is that each instantiation must
+get the current version of `k'; ie. we must create a new instance 'k's
+helper-class for each instantiation. They all share `i's helper-class.