+#lang racket
+
+#|
+
+(define x 10)
+
+(parallel-execute (lambda () (set! x (* x x)))
+ (lambda () (set! x (* x x x))))
+
+list all possible values of x.
+
+|#
+
+#|
+
+1. 100
+2. 1000
+3. (expt 100 3) = 1000000
+4. (expt (expt 10 3) 2) = 1000000
+5. (* 10 (* 10 10 10)) = 10000
+6. (* 10 (* 10 10) (* 10 10)) = 100000
+7. (* 10 10 (* 10 10)) = 10000
+
+|#
+
+#|
+
+Which of these possibilities remain if we instead use serialized procedures:
+
+(define x 10)
+
+(define s (make-serializer))
+
+(parallel-execute (s (lambda () (set! x (* x x))))
+ (s (lambda () (set! x (* x x x)))))
+
+ans:
+
+=> 1000000
+
+|#
\ No newline at end of file