about summary refs log tree commit diff stats
path: root/html/lambda-to-mu.mu.html
diff options
context:
space:
mode:
Diffstat (limited to 'html/lambda-to-mu.mu.html')
-rw-r--r--html/lambda-to-mu.mu.html532
1 files changed, 266 insertions, 266 deletions
diff --git a/html/lambda-to-mu.mu.html b/html/lambda-to-mu.mu.html
index 98b868fc..b4d44558 100644
--- a/html/lambda-to-mu.mu.html
+++ b/html/lambda-to-mu.mu.html
@@ -40,11 +40,11 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color
 <span class="muScenario">scenario</span> convert-lambda [
   run [
     <span class="Constant">local-scope</span>
-    <span class="Constant">1</span>:text/<span class="Special">raw &lt;- </span>lambda-to-mu <span class="Constant">[(add a (multiply b c))]</span>
-    <span class="Constant">2</span>:@:char/<span class="Special">raw &lt;- </span>copy *<span class="Constant">1</span>:text/<span class="Special">raw</span>
+    1:text/<span class="Special">raw</span> <span class="Special">&lt;-</span> lambda-to-mu <span class="Constant">[(add a (multiply b c))]</span>
+    2:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *1:text/<span class="Special">raw</span>
   ]
   memory-should-contain [
-    <span class="Constant">2</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[t1 &lt;- multiply b c</span>
+    2:@:char <span class="Special">&lt;-</span> <span class="Constant">[t1 &lt;- multiply b c</span>
 <span class="Constant">result &lt;- add a t1]</span>
   ]
 ]
@@ -52,9 +52,9 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color
 <span class="muRecipe">def</span> lambda-to-mu in:text<span class="muRecipe"> -&gt; </span>out:text [
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
-  out<span class="Special"> &lt;- </span>copy <span class="Constant">0</span>
-  cells:&amp;:cell<span class="Special"> &lt;- </span>parse in
-  out<span class="Special"> &lt;- </span>to-mu cells
+  out <span class="Special">&lt;-</span> copy<span class="Constant"> 0</span>
+  cells:&amp;:cell <span class="Special">&lt;-</span> parse in
+  out <span class="Special">&lt;-</span> to-mu cells
 ]
 
 <span class="Comment"># 'parse' will turn lambda expressions into trees made of cells</span>
@@ -72,132 +72,132 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color
 <span class="muRecipe">def</span> new-atom name:text<span class="muRecipe"> -&gt; </span>result:&amp;:cell [
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
-  result<span class="Special"> &lt;- </span>new <span class="Constant">cell:type</span>
-  *result<span class="Special"> &lt;- </span>merge <span class="Constant">0/tag:atom</span>, name
+  result <span class="Special">&lt;-</span> new <span class="Constant">cell:type</span>
+  *result <span class="Special">&lt;-</span> merge <span class="Constant">0/tag:atom</span>, name
 ]
 
 <span class="muRecipe">def</span> new-pair a:&amp;:cell, b:&amp;:cell<span class="muRecipe"> -&gt; </span>result:&amp;:cell [
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
-  result<span class="Special"> &lt;- </span>new <span class="Constant">cell:type</span>
-  *result<span class="Special"> &lt;- </span>merge <span class="Constant">1/tag:pair</span>, a/first, b/rest
+  result <span class="Special">&lt;-</span> new <span class="Constant">cell:type</span>
+  *result <span class="Special">&lt;-</span> merge <span class="Constant">1/tag:pair</span>, a/first, b/rest
 ]
 
 <span class="muRecipe">def</span> is-atom? x:&amp;:cell<span class="muRecipe"> -&gt; </span>result:bool [
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
   <span class="muControl">reply-unless</span> x, <span class="Constant">0/false</span>
-  _, result<span class="Special"> &lt;- </span>maybe-convert *x, <span class="Constant">atom:variant</span>
+  _, result <span class="Special">&lt;-</span> maybe-convert *x, <span class="Constant">atom:variant</span>
 ]
 
 <span class="muRecipe">def</span> is-pair? x:&amp;:cell<span class="muRecipe"> -&gt; </span>result:bool [
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
   <span class="muControl">reply-unless</span> x, <span class="Constant">0/false</span>
-  _, result<span class="Special"> &lt;- </span>maybe-convert *x, <span class="Constant">pair:variant</span>
+  _, result <span class="Special">&lt;-</span> maybe-convert *x, <span class="Constant">pair:variant</span>
 ]
 
 <span class="muScenario">scenario</span> atom-is-not-pair [
   <span class="Constant">local-scope</span>
-  s:text<span class="Special"> &lt;- </span>new <span class="Constant">[a]</span>
-  x:&amp;:cell<span class="Special"> &lt;- </span>new-atom s
-  <span class="Constant">10</span>:bool/<span class="Special">raw &lt;- </span>is-atom? x
-  <span class="Constant">11</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x
+  s:text <span class="Special">&lt;-</span> new <span class="Constant">[a]</span>
+  x:&amp;:cell <span class="Special">&lt;-</span> new-atom s
+  10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-atom? x
+  11:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x
   memory-should-contain [
-    <span class="Constant">10</span><span class="Special"> &lt;- </span><span class="Constant">1</span>
-    <span class="Constant">11</span><span class="Special"> &lt;- </span><span class="Constant">0</span>
+   <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>
+   <span class="Constant"> 11</span> <span class="Special">&lt;-</span><span class="Constant"> 0</span>
   ]
 ]
 
 <span class="muScenario">scenario</span> pair-is-not-atom [
   <span class="Constant">local-scope</span>
   <span class="Comment"># construct (a . nil)</span>
-  s:text<span class="Special"> &lt;- </span>new <span class="Constant">[a]</span>
-  x:&amp;:cell<span class="Special"> &lt;- </span>new-atom s
-  y:&amp;:cell<span class="Special"> &lt;- </span>new-pair x, <span class="Constant">0/nil</span>
-  <span class="Constant">10</span>:bool/<span class="Special">raw &lt;- </span>is-atom? y
-  <span class="Constant">11</span>:bool/<span class="Special">raw &lt;- </span>is-pair? y
+  s:text <span class="Special">&lt;-</span> new <span class="Constant">[a]</span>
+  x:&amp;:cell <span class="Special">&lt;-</span> new-atom s
+  y:&amp;:cell <span class="Special">&lt;-</span> new-pair x, <span class="Constant">0/nil</span>
+  10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-atom? y
+  11:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? y
   memory-should-contain [
-    <span class="Constant">10</span><span class="Special"> &lt;- </span><span class="Constant">0</span>
-    <span class="Constant">11</span><span class="Special"> &lt;- </span><span class="Constant">1</span>
+   <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 0</span>
+   <span class="Constant"> 11</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>
   ]
 ]
 
 <span class="muRecipe">def</span> atom-match? x:&amp;:cell, pat:text<span class="muRecipe"> -&gt; </span>result:bool [
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
-  s:text, is-atom?:bool<span class="Special"> &lt;- </span>maybe-convert *x, <span class="Constant">atom:variant</span>
+  s:text, is-atom?:bool <span class="Special">&lt;-</span> maybe-convert *x, <span class="Constant">atom:variant</span>
   <span class="muControl">reply-unless</span> is-atom?, <span class="Constant">0/false</span>
-  result<span class="Special"> &lt;- </span>equal pat, s
+  result <span class="Special">&lt;-</span> equal pat, s
 ]
 
 <span class="muScenario">scenario</span> atom-match [
   <span class="Constant">local-scope</span>
-  x:&amp;:cell<span class="Special"> &lt;- </span>new-atom <span class="Constant">[abc]</span>
-  <span class="Constant">10</span>:bool/<span class="Special">raw &lt;- </span>atom-match? x, <span class="Constant">[abc]</span>
+  x:&amp;:cell <span class="Special">&lt;-</span> new-atom <span class="Constant">[abc]</span>
+  10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> atom-match? x, <span class="Constant">[abc]</span>
   memory-should-contain [
-    <span class="Constant">10</span><span class="Special"> &lt;- </span><span class="Constant">1</span>
+   <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>
   ]
 ]
 
 <span class="muRecipe">def</span> first x:&amp;:cell<span class="muRecipe"> -&gt; </span>result:&amp;:cell [
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
-  pair:pair, pair?:bool<span class="Special"> &lt;- </span>maybe-convert *x, <span class="Constant">pair:variant</span>
+  pair:pair, pair?:bool <span class="Special">&lt;-</span> maybe-convert *x, <span class="Constant">pair:variant</span>
   <span class="muControl">reply-unless</span> pair?, <span class="Constant">0/nil</span>
-  result<span class="Special"> &lt;- </span>get pair, <span class="Constant">first:offset</span>
+  result <span class="Special">&lt;-</span> get pair, <span class="Constant">first:offset</span>
 ]
 
 <span class="muRecipe">def</span> rest x:&amp;:cell<span class="muRecipe"> -&gt; </span>result:&amp;:cell [
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
-  pair:pair, pair?:bool<span class="Special"> &lt;- </span>maybe-convert *x, <span class="Constant">pair:variant</span>
+  pair:pair, pair?:bool <span class="Special">&lt;-</span> maybe-convert *x, <span class="Constant">pair:variant</span>
   <span class="muControl">reply-unless</span> pair?, <span class="Constant">0/nil</span>
-  result<span class="Special"> &lt;- </span>get pair, <span class="Constant">rest:offset</span>
+  result <span class="Special">&lt;-</span> get pair, <span class="Constant">rest:offset</span>
 ]
 
 <span class="muRecipe">def</span> set-first base:&amp;:cell, new-first:&amp;:cell<span class="muRecipe"> -&gt; </span>base:&amp;:cell [
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
-  pair:pair, is-pair?:bool<span class="Special"> &lt;- </span>maybe-convert *base, <span class="Constant">pair:variant</span>
+  pair:pair, is-pair?:bool <span class="Special">&lt;-</span> maybe-convert *base, <span class="Constant">pair:variant</span>
   <span class="muControl">reply-unless</span> is-pair?
-  pair<span class="Special"> &lt;- </span>put pair, <span class="Constant">first:offset</span>, new-first
-  *base<span class="Special"> &lt;- </span>merge <span class="Constant">1/pair</span>, pair
+  pair <span class="Special">&lt;-</span> put pair, <span class="Constant">first:offset</span>, new-first
+  *base <span class="Special">&lt;-</span> merge <span class="Constant">1/pair</span>, pair
 ]
 
 <span class="muRecipe">def</span> set-rest base:&amp;:cell, new-rest:&amp;:cell<span class="muRecipe"> -&gt; </span>base:&amp;:cell [
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
-  pair:pair, is-pair?:bool<span class="Special"> &lt;- </span>maybe-convert *base, <span class="Constant">pair:variant</span>
+  pair:pair, is-pair?:bool <span class="Special">&lt;-</span> maybe-convert *base, <span class="Constant">pair:variant</span>
   <span class="muControl">reply-unless</span> is-pair?
-  pair<span class="Special"> &lt;- </span>put pair, <span class="Constant">rest:offset</span>, new-rest
-  *base<span class="Special"> &lt;- </span>merge <span class="Constant">1/pair</span>, pair
+  pair <span class="Special">&lt;-</span> put pair, <span class="Constant">rest:offset</span>, new-rest
+  *base <span class="Special">&lt;-</span> merge <span class="Constant">1/pair</span>, pair
 ]
 
 <span class="muScenario">scenario</span> cell-operations-on-atom [
   <span class="Constant">local-scope</span>
-  s:text<span class="Special"> &lt;- </span>new <span class="Constant">[a]</span>
-  x:&amp;:cell<span class="Special"> &lt;- </span>new-atom s
-  <span class="Constant">10</span>:&amp;:cell/<span class="Special">raw &lt;- </span>first x
-  <span class="Constant">11</span>:&amp;:cell/<span class="Special">raw &lt;- </span>rest x
+  s:text <span class="Special">&lt;-</span> new <span class="Constant">[a]</span>
+  x:&amp;:cell <span class="Special">&lt;-</span> new-atom s
+  10:&amp;:cell/<span class="Special">raw</span> <span class="Special">&lt;-</span> first x
+  11:&amp;:cell/<span class="Special">raw</span> <span class="Special">&lt;-</span> rest x
   memory-should-contain [
-    <span class="Constant">10</span><span class="Special"> &lt;- </span><span class="Constant">0</span>  <span class="Comment"># first is nil</span>
-    <span class="Constant">11</span><span class="Special"> &lt;- </span><span class="Constant">0</span>  <span class="Comment"># rest is nil</span>
+   <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 0</span>  <span class="Comment"># first is nil</span>
+   <span class="Constant"> 11</span> <span class="Special">&lt;-</span><span class="Constant"> 0</span>  <span class="Comment"># rest is nil</span>
   ]
 ]
 
 <span class="muScenario">scenario</span> cell-operations-on-pair [
   <span class="Constant">local-scope</span>
   <span class="Comment"># construct (a . nil)</span>
-  s:text<span class="Special"> &lt;- </span>new <span class="Constant">[a]</span>
-  x:&amp;:cell<span class="Special"> &lt;- </span>new-atom s
-  y:&amp;:cell<span class="Special"> &lt;- </span>new-pair x, <span class="Constant">0/nil</span>
-  x2:&amp;:cell<span class="Special"> &lt;- </span>first y
-  <span class="Constant">10</span>:bool/<span class="Special">raw &lt;- </span>equal x, x2
-  <span class="Constant">11</span>:&amp;:cell/<span class="Special">raw &lt;- </span>rest y
+  s:text <span class="Special">&lt;-</span> new <span class="Constant">[a]</span>
+  x:&amp;:cell <span class="Special">&lt;-</span> new-atom s
+  y:&amp;:cell <span class="Special">&lt;-</span> new-pair x, <span class="Constant">0/nil</span>
+  x2:&amp;:cell <span class="Special">&lt;-</span> first y
+  10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> equal x, x2
+  11:&amp;:cell/<span class="Special">raw</span> <span class="Special">&lt;-</span> rest y
   memory-should-contain [
-    <span class="Constant">10</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># first is correct</span>
-    <span class="Constant">11</span><span class="Special"> &lt;- </span><span class="Constant">0</span>  <span class="Comment"># rest is nil</span>
+   <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># first is correct</span>
+   <span class="Constant"> 11</span> <span class="Special">&lt;-</span><span class="Constant"> 0</span>  <span class="Comment"># rest is nil</span>
   ]
 ]
 
@@ -206,93 +206,93 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color
 <span class="muRecipe">def</span> parse in:text<span class="muRecipe"> -&gt; </span>out:&amp;:cell [
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
-  s:&amp;:stream:char<span class="Special"> &lt;- </span>new-stream in
-  out, s<span class="Special"> &lt;- </span>parse s
-  trace <span class="Constant">2</span>, <span class="Constant">[app/parse]</span>, out
+  s:&amp;:stream:char <span class="Special">&lt;-</span> new-stream in
+  out, s <span class="Special">&lt;-</span> parse s
+  trace<span class="Constant"> 2</span>, <span class="Constant">[app/parse]</span>, out
 ]
 
 <span class="muRecipe">def</span> parse in:&amp;:stream:char<span class="muRecipe"> -&gt; </span>out:&amp;:cell, in:&amp;:stream:char [
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
   <span class="Comment"># skip whitespace</span>
-  in<span class="Special"> &lt;- </span>skip-whitespace in
-  c:char, eof?:bool<span class="Special"> &lt;- </span>peek in
+  in <span class="Special">&lt;-</span> skip-whitespace in
+  c:char, eof?:bool <span class="Special">&lt;-</span> peek in
   <span class="muControl">reply-if</span> eof?, <span class="Constant">0/nil</span>
-  pair?:bool<span class="Special"> &lt;- </span>equal c, <span class="Constant">40/open-paren</span>
+  pair?:bool <span class="Special">&lt;-</span> equal c, <span class="Constant">40/open-paren</span>
   <span class="Delimiter">{</span>
     <span class="muControl">break-if</span> pair?
     <span class="Comment"># atom</span>
-    buf:&amp;:buffer<span class="Special"> &lt;- </span>new-buffer <span class="Constant">30</span>
+    buf:&amp;:buffer <span class="Special">&lt;-</span> new-buffer<span class="Constant"> 30</span>
     <span class="Delimiter">{</span>
-      done?:bool<span class="Special"> &lt;- </span>end-of-stream? in
+      done?:bool <span class="Special">&lt;-</span> end-of-stream? in
       <span class="muControl">break-if</span> done?
       <span class="Comment"># stop before close paren or space</span>
-      c:char<span class="Special"> &lt;- </span>peek in
-      done?<span class="Special"> &lt;- </span>equal c, <span class="Constant">41/close-paren</span>
+      c:char <span class="Special">&lt;-</span> peek in
+      done? <span class="Special">&lt;-</span> equal c, <span class="Constant">41/close-paren</span>
       <span class="muControl">break-if</span> done?
-      done?<span class="Special"> &lt;- </span>space? c
+      done? <span class="Special">&lt;-</span> space? c
       <span class="muControl">break-if</span> done?
-      c<span class="Special"> &lt;- </span>read in
-      buf<span class="Special"> &lt;- </span>append buf, c
+      c <span class="Special">&lt;-</span> read in
+      buf <span class="Special">&lt;-</span> append buf, c
       <span class="muControl">loop</span>
     <span class="Delimiter">}</span>
-    s:text<span class="Special"> &lt;- </span>buffer-to-array buf
-    out<span class="Special"> &lt;- </span>new-atom s
+    s:text <span class="Special">&lt;-</span> buffer-to-array buf
+    out <span class="Special">&lt;-</span> new-atom s
   <span class="Delimiter">}</span>
   <span class="Delimiter">{</span>
     <span class="muControl">break-unless</span> pair?
     <span class="Comment"># pair</span>
     read in  <span class="Comment"># skip the open-paren</span>
-    out<span class="Special"> &lt;- </span>new <span class="Constant">cell:type</span>  <span class="Comment"># start out with nil</span>
+    out <span class="Special">&lt;-</span> new <span class="Constant">cell:type</span>  <span class="Comment"># start out with nil</span>
     <span class="Comment"># read in first element of pair</span>
     <span class="Delimiter">{</span>
-      end?:bool<span class="Special"> &lt;- </span>end-of-stream? in
-      not-end?:bool<span class="Special"> &lt;- </span>not end?
+      end?:bool <span class="Special">&lt;-</span> end-of-stream? in
+      not-end?:bool <span class="Special">&lt;-</span> not end?
       assert not-end?, <span class="Constant">[unbalanced '(' in expression]</span>
-      c<span class="Special"> &lt;- </span>peek in
-      close-paren?:bool<span class="Special"> &lt;- </span>equal c, <span class="Constant">41/close-paren</span>
+      c <span class="Special">&lt;-</span> peek in
+      close-paren?:bool <span class="Special">&lt;-</span> equal c, <span class="Constant">41/close-paren</span>
       <span class="muControl">break-if</span> close-paren?
-      first:&amp;:cell, in<span class="Special"> &lt;- </span>parse in
-      *out<span class="Special"> &lt;- </span>merge <span class="Constant">1/pair</span>, first, <span class="Constant">0/nil</span>
+      first:&amp;:cell, in <span class="Special">&lt;-</span> parse in
+      *out <span class="Special">&lt;-</span> merge <span class="Constant">1/pair</span>, first, <span class="Constant">0/nil</span>
     <span class="Delimiter">}</span>
     <span class="Comment"># read in any remaining elements</span>
-    curr:&amp;:cell<span class="Special"> &lt;- </span>copy out
+    curr:&amp;:cell <span class="Special">&lt;-</span> copy out
     <span class="Delimiter">{</span>
-      in<span class="Special"> &lt;- </span>skip-whitespace in
-      end?:bool<span class="Special"> &lt;- </span>end-of-stream? in
-      not-end?:bool<span class="Special"> &lt;- </span>not end?
+      in <span class="Special">&lt;-</span> skip-whitespace in
+      end?:bool <span class="Special">&lt;-</span> end-of-stream? in
+      not-end?:bool <span class="Special">&lt;-</span> not end?
       assert not-end?, <span class="Constant">[unbalanced '(' in expression]</span>
       <span class="Comment"># termination check: ')'</span>
-      c<span class="Special"> &lt;- </span>peek in
+      c <span class="Special">&lt;-</span> peek in
       <span class="Delimiter">{</span>
-        close-paren?:bool<span class="Special"> &lt;- </span>equal c, <span class="Constant">41/close-paren</span>
+        close-paren?:bool <span class="Special">&lt;-</span> equal c, <span class="Constant">41/close-paren</span>
         <span class="muControl">break-unless</span> close-paren?
         read in  <span class="Comment"># skip ')'</span>
         <span class="muControl">break</span> <span class="Constant">+end-pair</span>
       <span class="Delimiter">}</span>
       <span class="Comment"># still here? read next element of pair</span>
-      next:&amp;:cell, in<span class="Special"> &lt;- </span>parse in
-      is-dot?:bool<span class="Special"> &lt;- </span>atom-match? next, <span class="Constant">[.]</span>
+      next:&amp;:cell, in <span class="Special">&lt;-</span> parse in
+      is-dot?:bool <span class="Special">&lt;-</span> atom-match? next, <span class="Constant">[.]</span>
       <span class="Delimiter">{</span>
         <span class="muControl">break-if</span> is-dot?
-        next-curr:&amp;:cell<span class="Special"> &lt;- </span>new-pair next, <span class="Constant">0/nil</span>
-        curr<span class="Special"> &lt;- </span>set-rest curr, next-curr
-        curr<span class="Special"> &lt;- </span>rest curr
+        next-curr:&amp;:cell <span class="Special">&lt;-</span> new-pair next, <span class="Constant">0/nil</span>
+        curr <span class="Special">&lt;-</span> set-rest curr, next-curr
+        curr <span class="Special">&lt;-</span> rest curr
       <span class="Delimiter">}</span>
       <span class="Delimiter">{</span>
         <span class="muControl">break-unless</span> is-dot?
         <span class="Comment"># deal with dotted pair</span>
-        in<span class="Special"> &lt;- </span>skip-whitespace in
-        c<span class="Special"> &lt;- </span>peek in
-        not-close-paren?:bool<span class="Special"> &lt;- </span>not-equal c, <span class="Constant">41/close-paren</span>
+        in <span class="Special">&lt;-</span> skip-whitespace in
+        c <span class="Special">&lt;-</span> peek in
+        not-close-paren?:bool <span class="Special">&lt;-</span> not-equal c, <span class="Constant">41/close-paren</span>
         assert not-close-paren?, <span class="Constant">[')' cannot immediately follow '.']</span>
-        final:&amp;:cell<span class="Special"> &lt;- </span>parse in
-        curr<span class="Special"> &lt;- </span>set-rest curr, final
+        final:&amp;:cell <span class="Special">&lt;-</span> parse in
+        curr <span class="Special">&lt;-</span> set-rest curr, final
         <span class="Comment"># we're not gonna update curr, so better make sure the next iteration</span>
         <span class="Comment"># is going to end the pair</span>
-        in<span class="Special"> &lt;- </span>skip-whitespace in
-        c<span class="Special"> &lt;- </span>peek in
-        close-paren?:bool<span class="Special"> &lt;- </span>equal c, <span class="Constant">41/close-paren</span>
+        in <span class="Special">&lt;-</span> skip-whitespace in
+        c <span class="Special">&lt;-</span> peek in
+        close-paren?:bool <span class="Special">&lt;-</span> equal c, <span class="Constant">41/close-paren</span>
         assert close-paren?, <span class="Constant">['.' must be followed by exactly one expression before ')']</span>
       <span class="Delimiter">}</span>
       <span class="muControl">loop</span>
@@ -305,10 +305,10 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
   <span class="Delimiter">{</span>
-    done?:bool<span class="Special"> &lt;- </span>end-of-stream? in
+    done?:bool <span class="Special">&lt;-</span> end-of-stream? in
     <span class="muControl">reply-if</span> done?, <span class="Constant">0/null</span>
-    c:char<span class="Special"> &lt;- </span>peek in
-    space?:bool<span class="Special"> &lt;- </span>space? c
+    c:char <span class="Special">&lt;-</span> peek in
+    space?:bool <span class="Special">&lt;-</span> space? c
     <span class="muControl">break-unless</span> space?
     read in  <span class="Comment"># skip</span>
     <span class="muControl">loop</span>
@@ -318,9 +318,9 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color
 <span class="muRecipe">def</span> to-text x:&amp;:cell<span class="muRecipe"> -&gt; </span>out:text [
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
-  buf:&amp;:buffer<span class="Special"> &lt;- </span>new-buffer <span class="Constant">30</span>
-  buf<span class="Special"> &lt;- </span>to-buffer x, buf
-  out<span class="Special"> &lt;- </span>buffer-to-array buf
+  buf:&amp;:buffer <span class="Special">&lt;-</span> new-buffer<span class="Constant"> 30</span>
+  buf <span class="Special">&lt;-</span> to-buffer x, buf
+  out <span class="Special">&lt;-</span> buffer-to-array buf
 ]
 
 <span class="muRecipe">def</span> to-buffer x:&amp;:cell, buf:&amp;:buffer<span class="muRecipe"> -&gt; </span>buf:&amp;:buffer [
@@ -329,195 +329,195 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color
   <span class="Comment"># base case: empty cell</span>
   <span class="Delimiter">{</span>
     <span class="muControl">break-if</span> x
-    buf<span class="Special"> &lt;- </span>append buf, <span class="Constant">[&lt;&gt;]</span>
+    buf <span class="Special">&lt;-</span> append buf, <span class="Constant">[&lt;&gt;]</span>
     <span class="muControl">reply</span>
   <span class="Delimiter">}</span>
   <span class="Comment"># base case: atom</span>
   <span class="Delimiter">{</span>
-    s:text, atom?:bool<span class="Special"> &lt;- </span>maybe-convert *x, <span class="Constant">atom:variant</span>
+    s:text, atom?:bool <span class="Special">&lt;-</span> maybe-convert *x, <span class="Constant">atom:variant</span>
     <span class="muControl">break-unless</span> atom?
-    buf<span class="Special"> &lt;- </span>append buf, s
+    buf <span class="Special">&lt;-</span> append buf, s
     <span class="muControl">reply</span>
   <span class="Delimiter">}</span>
   <span class="Comment"># recursive case: pair</span>
-  buf<span class="Special"> &lt;- </span>append buf, <span class="Constant">[&lt; ]</span>
-  first:&amp;:cell<span class="Special"> &lt;- </span>first x
-  buf<span class="Special"> &lt;- </span>to-buffer first, buf
-  buf<span class="Special"> &lt;- </span>append buf, <span class="Constant">[ | ]</span>
-  rest:&amp;:cell<span class="Special"> &lt;- </span>rest x
-  buf<span class="Special"> &lt;- </span>to-buffer rest, buf
-  buf<span class="Special"> &lt;- </span>append buf, <span class="Constant">[ &gt;]</span>
+  buf <span class="Special">&lt;-</span> append buf, <span class="Constant">[&lt; ]</span>
+  first:&amp;:cell <span class="Special">&lt;-</span> first x
+  buf <span class="Special">&lt;-</span> to-buffer first, buf
+  buf <span class="Special">&lt;-</span> append buf, <span class="Constant">[ | ]</span>
+  rest:&amp;:cell <span class="Special">&lt;-</span> rest x
+  buf <span class="Special">&lt;-</span> to-buffer rest, buf
+  buf <span class="Special">&lt;-</span> append buf, <span class="Constant">[ &gt;]</span>
 ]
 
 <span class="muScenario">scenario</span> parse-single-letter-atom [
   <span class="Constant">local-scope</span>
-  s:text<span class="Special"> &lt;- </span>new <span class="Constant">[a]</span>
-  x:&amp;:cell<span class="Special"> &lt;- </span>parse s
-  s2:text, <span class="Constant">10</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x, <span class="Constant">atom:variant</span>
-  <span class="Constant">11</span>:@:char/<span class="Special">raw &lt;- </span>copy *s2
+  s:text <span class="Special">&lt;-</span> new <span class="Constant">[a]</span>
+  x:&amp;:cell <span class="Special">&lt;-</span> parse s
+  s2:text, 10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x, <span class="Constant">atom:variant</span>
+  11:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s2
   memory-should-contain [
-    <span class="Constant">10</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># parse result is an atom</span>
-    <span class="Constant">11</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[a]</span>
+   <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># parse result is an atom</span>
+    11:@:char <span class="Special">&lt;-</span> <span class="Constant">[a]</span>
   ]
 ]
 
 <span class="muScenario">scenario</span> parse-atom [
   <span class="Constant">local-scope</span>
-  s:text<span class="Special"> &lt;- </span>new <span class="Constant">[abc]</span>
-  x:&amp;:cell<span class="Special"> &lt;- </span>parse s
-  s2:text, <span class="Constant">10</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x, <span class="Constant">atom:variant</span>
-  <span class="Constant">11</span>:@:char/<span class="Special">raw &lt;- </span>copy *s2
+  s:text <span class="Special">&lt;-</span> new <span class="Constant">[abc]</span>
+  x:&amp;:cell <span class="Special">&lt;-</span> parse s
+  s2:text, 10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x, <span class="Constant">atom:variant</span>
+  11:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s2
   memory-should-contain [
-    <span class="Constant">10</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># parse result is an atom</span>
-    <span class="Constant">11</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[abc]</span>
+   <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># parse result is an atom</span>
+    11:@:char <span class="Special">&lt;-</span> <span class="Constant">[abc]</span>
   ]
 ]
 
 <span class="muScenario">scenario</span> parse-list-of-two-atoms [
   <span class="Constant">local-scope</span>
-  s:text<span class="Special"> &lt;- </span>new <span class="Constant">[(abc def)]</span>
-  x:&amp;:cell<span class="Special"> &lt;- </span>parse s
+  s:text <span class="Special">&lt;-</span> new <span class="Constant">[(abc def)]</span>
+  x:&amp;:cell <span class="Special">&lt;-</span> parse s
   trace-should-contain [
     app/parse: <span class="Constant">&lt;</span> abc <span class="Constant">|</span> <span class="Constant">&lt;</span> def <span class="Constant">|</span> <span class="Constant">&lt;&gt;</span> <span class="Constant">&gt;</span> <span class="Constant">&gt;</span>
   ]
-  <span class="Constant">10</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x
-  x1:&amp;:cell<span class="Special"> &lt;- </span>first x
-  x2:&amp;:cell<span class="Special"> &lt;- </span>rest x
-  s1:text, <span class="Constant">11</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x1, <span class="Constant">atom:variant</span>
-  <span class="Constant">12</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x2
-  x3:&amp;:cell<span class="Special"> &lt;- </span>first x2
-  s2:text, <span class="Constant">13</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x3, <span class="Constant">atom:variant</span>
-  <span class="Constant">14</span>:&amp;:cell/<span class="Special">raw &lt;- </span>rest x2
-  <span class="Constant">20</span>:@:char/<span class="Special">raw &lt;- </span>copy *s1
-  <span class="Constant">30</span>:@:char/<span class="Special">raw &lt;- </span>copy *s2
+  10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x
+  x1:&amp;:cell <span class="Special">&lt;-</span> first x
+  x2:&amp;:cell <span class="Special">&lt;-</span> rest x
+  s1:text, 11:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x1, <span class="Constant">atom:variant</span>
+  12:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x2
+  x3:&amp;:cell <span class="Special">&lt;-</span> first x2
+  s2:text, 13:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x3, <span class="Constant">atom:variant</span>
+  14:&amp;:cell/<span class="Special">raw</span> <span class="Special">&lt;-</span> rest x2
+  20:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s1
+  30:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s2
   memory-should-contain [
-    <span class="Constant">10</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># parse result is a pair</span>
-    <span class="Constant">11</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.first is an atom</span>
-    <span class="Constant">12</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.rest is a pair</span>
-    <span class="Constant">13</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.rest.first is an atom</span>
-    <span class="Constant">14</span><span class="Special"> &lt;- </span><span class="Constant">0</span>  <span class="Comment"># result.rest.rest is nil</span>
-    <span class="Constant">20</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[abc]</span>  <span class="Comment"># result.first</span>
-    <span class="Constant">30</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[def]</span>  <span class="Comment"># result.rest.first</span>
+   <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># parse result is a pair</span>
+   <span class="Constant"> 11</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.first is an atom</span>
+   <span class="Constant"> 12</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.rest is a pair</span>
+   <span class="Constant"> 13</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.rest.first is an atom</span>
+   <span class="Constant"> 14</span> <span class="Special">&lt;-</span><span class="Constant"> 0</span>  <span class="Comment"># result.rest.rest is nil</span>
+    20:@:char <span class="Special">&lt;-</span> <span class="Constant">[abc]</span>  <span class="Comment"># result.first</span>
+    30:@:char <span class="Special">&lt;-</span> <span class="Constant">[def]</span>  <span class="Comment"># result.rest.first</span>
   ]
 ]
 
 <span class="muScenario">scenario</span> parse-list-with-extra-spaces [
   <span class="Constant">local-scope</span>
-  s:text<span class="Special"> &lt;- </span>new <span class="Constant">[ ( abc  def ) ]</span>  <span class="Comment"># extra spaces</span>
-  x:&amp;:cell<span class="Special"> &lt;- </span>parse s
+  s:text <span class="Special">&lt;-</span> new <span class="Constant">[ ( abc  def ) ]</span>  <span class="Comment"># extra spaces</span>
+  x:&amp;:cell <span class="Special">&lt;-</span> parse s
   trace-should-contain [
     app/parse: <span class="Constant">&lt;</span> abc <span class="Constant">|</span> <span class="Constant">&lt;</span> def <span class="Constant">|</span> <span class="Constant">&lt;&gt;</span> <span class="Constant">&gt;</span> <span class="Constant">&gt;</span>
   ]
-  <span class="Constant">10</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x
-  x1:&amp;:cell<span class="Special"> &lt;- </span>first x
-  x2:&amp;:cell<span class="Special"> &lt;- </span>rest x
-  s1:text, <span class="Constant">11</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x1, <span class="Constant">atom:variant</span>
-  <span class="Constant">12</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x2
-  x3:&amp;:cell<span class="Special"> &lt;- </span>first x2
-  s2:text, <span class="Constant">13</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x3, <span class="Constant">atom:variant</span>
-  <span class="Constant">14</span>:&amp;:cell/<span class="Special">raw &lt;- </span>rest x2
-  <span class="Constant">20</span>:@:char/<span class="Special">raw &lt;- </span>copy *s1
-  <span class="Constant">30</span>:@:char/<span class="Special">raw &lt;- </span>copy *s2
+  10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x
+  x1:&amp;:cell <span class="Special">&lt;-</span> first x
+  x2:&amp;:cell <span class="Special">&lt;-</span> rest x
+  s1:text, 11:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x1, <span class="Constant">atom:variant</span>
+  12:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x2
+  x3:&amp;:cell <span class="Special">&lt;-</span> first x2
+  s2:text, 13:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x3, <span class="Constant">atom:variant</span>
+  14:&amp;:cell/<span class="Special">raw</span> <span class="Special">&lt;-</span> rest x2
+  20:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s1
+  30:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s2
   memory-should-contain [
-    <span class="Constant">10</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># parse result is a pair</span>
-    <span class="Constant">11</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.first is an atom</span>
-    <span class="Constant">12</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.rest is a pair</span>
-    <span class="Constant">13</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.rest.first is an atom</span>
-    <span class="Constant">14</span><span class="Special"> &lt;- </span><span class="Constant">0</span>  <span class="Comment"># result.rest.rest is nil</span>
-    <span class="Constant">20</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[abc]</span>  <span class="Comment"># result.first</span>
-    <span class="Constant">30</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[def]</span>  <span class="Comment"># result.rest.first</span>
+   <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># parse result is a pair</span>
+   <span class="Constant"> 11</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.first is an atom</span>
+   <span class="Constant"> 12</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.rest is a pair</span>
+   <span class="Constant"> 13</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.rest.first is an atom</span>
+   <span class="Constant"> 14</span> <span class="Special">&lt;-</span><span class="Constant"> 0</span>  <span class="Comment"># result.rest.rest is nil</span>
+    20:@:char <span class="Special">&lt;-</span> <span class="Constant">[abc]</span>  <span class="Comment"># result.first</span>
+    30:@:char <span class="Special">&lt;-</span> <span class="Constant">[def]</span>  <span class="Comment"># result.rest.first</span>
   ]
 ]
 
 <span class="muScenario">scenario</span> parse-list-of-more-than-two-atoms [
   <span class="Constant">local-scope</span>
-  s:text<span class="Special"> &lt;- </span>new <span class="Constant">[(abc def ghi)]</span>
-  x:&amp;:cell<span class="Special"> &lt;- </span>parse s
+  s:text <span class="Special">&lt;-</span> new <span class="Constant">[(abc def ghi)]</span>
+  x:&amp;:cell <span class="Special">&lt;-</span> parse s
   trace-should-contain [
     app/parse: <span class="Constant">&lt;</span> abc <span class="Constant">|</span> <span class="Constant">&lt;</span> def <span class="Constant">|</span> <span class="Constant">&lt;</span> ghi <span class="Constant">|</span> <span class="Constant">&lt;&gt;</span> <span class="Constant">&gt;</span> <span class="Constant">&gt;</span> <span class="Constant">&gt;</span>
   ]
-  <span class="Constant">10</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x
-  x1:&amp;:cell<span class="Special"> &lt;- </span>first x
-  x2:&amp;:cell<span class="Special"> &lt;- </span>rest x
-  s1:text, <span class="Constant">11</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x1, <span class="Constant">atom:variant</span>
-  <span class="Constant">12</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x2
-  x3:&amp;:cell<span class="Special"> &lt;- </span>first x2
-  s2:text, <span class="Constant">13</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x3, <span class="Constant">atom:variant</span>
-  x4:&amp;:cell<span class="Special"> &lt;- </span>rest x2
-  <span class="Constant">14</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x4
-  x5:&amp;:cell<span class="Special"> &lt;- </span>first x4
-  s3:text, <span class="Constant">15</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x5, <span class="Constant">atom:variant</span>
-  <span class="Constant">16</span>:&amp;:cell/<span class="Special">raw &lt;- </span>rest x4
-  <span class="Constant">20</span>:@:char/<span class="Special">raw &lt;- </span>copy *s1
-  <span class="Constant">30</span>:@:char/<span class="Special">raw &lt;- </span>copy *s2
-  <span class="Constant">40</span>:@:char/<span class="Special">raw &lt;- </span>copy *s3
+  10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x
+  x1:&amp;:cell <span class="Special">&lt;-</span> first x
+  x2:&amp;:cell <span class="Special">&lt;-</span> rest x
+  s1:text, 11:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x1, <span class="Constant">atom:variant</span>
+  12:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x2
+  x3:&amp;:cell <span class="Special">&lt;-</span> first x2
+  s2:text, 13:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x3, <span class="Constant">atom:variant</span>
+  x4:&amp;:cell <span class="Special">&lt;-</span> rest x2
+  14:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x4
+  x5:&amp;:cell <span class="Special">&lt;-</span> first x4
+  s3:text, 15:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x5, <span class="Constant">atom:variant</span>
+  16:&amp;:cell/<span class="Special">raw</span> <span class="Special">&lt;-</span> rest x4
+  20:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s1
+  30:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s2
+  40:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s3
   memory-should-contain [
-    <span class="Constant">10</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># parse result is a pair</span>
-    <span class="Constant">11</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.first is an atom</span>
-    <span class="Constant">12</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.rest is a pair</span>
-    <span class="Constant">13</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.rest.first is an atom</span>
-    <span class="Constant">14</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.rest.rest is a pair</span>
-    <span class="Constant">15</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.rest.rest.first is an atom</span>
-    <span class="Constant">16</span><span class="Special"> &lt;- </span><span class="Constant">0</span>  <span class="Comment"># result.rest.rest.rest is nil</span>
-    <span class="Constant">20</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[abc]</span>  <span class="Comment"># result.first</span>
-    <span class="Constant">30</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[def]</span>  <span class="Comment"># result.rest.first</span>
-    <span class="Constant">40</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[ghi]</span>  <span class="Comment"># result.rest.rest</span>
+   <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># parse result is a pair</span>
+   <span class="Constant"> 11</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.first is an atom</span>
+   <span class="Constant"> 12</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.rest is a pair</span>
+   <span class="Constant"> 13</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.rest.first is an atom</span>
+   <span class="Constant"> 14</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.rest.rest is a pair</span>
+   <span class="Constant"> 15</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.rest.rest.first is an atom</span>
+   <span class="Constant"> 16</span> <span class="Special">&lt;-</span><span class="Constant"> 0</span>  <span class="Comment"># result.rest.rest.rest is nil</span>
+    20:@:char <span class="Special">&lt;-</span> <span class="Constant">[abc]</span>  <span class="Comment"># result.first</span>
+    30:@:char <span class="Special">&lt;-</span> <span class="Constant">[def]</span>  <span class="Comment"># result.rest.first</span>
+    40:@:char <span class="Special">&lt;-</span> <span class="Constant">[ghi]</span>  <span class="Comment"># result.rest.rest</span>
   ]
 ]
 
 <span class="muScenario">scenario</span> parse-nested-list [
   <span class="Constant">local-scope</span>
-  s:text<span class="Special"> &lt;- </span>new <span class="Constant">[((abc))]</span>
-  x:&amp;:cell<span class="Special"> &lt;- </span>parse s
+  s:text <span class="Special">&lt;-</span> new <span class="Constant">[((abc))]</span>
+  x:&amp;:cell <span class="Special">&lt;-</span> parse s
   trace-should-contain [
     app/parse: <span class="Constant">&lt;</span> <span class="Constant">&lt;</span> abc <span class="Constant">|</span> <span class="Constant">&lt;&gt;</span> <span class="Constant">&gt;</span> <span class="Constant">|</span> <span class="Constant">&lt;&gt;</span> <span class="Constant">&gt;</span>
   ]
-  <span class="Constant">10</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x
-  x1:&amp;:cell<span class="Special"> &lt;- </span>first x
-  <span class="Constant">11</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x
-  x2:&amp;:cell<span class="Special"> &lt;- </span>first x1
-  s1:text, <span class="Constant">12</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x2, <span class="Constant">atom:variant</span>
-  <span class="Constant">13</span>:&amp;:cell/<span class="Special">raw &lt;- </span>rest x1
-  <span class="Constant">14</span>:&amp;:cell/<span class="Special">raw &lt;- </span>rest x
-  <span class="Constant">20</span>:@:char/<span class="Special">raw &lt;- </span>copy *s1
+  10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x
+  x1:&amp;:cell <span class="Special">&lt;-</span> first x
+  11:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x
+  x2:&amp;:cell <span class="Special">&lt;-</span> first x1
+  s1:text, 12:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x2, <span class="Constant">atom:variant</span>
+  13:&amp;:cell/<span class="Special">raw</span> <span class="Special">&lt;-</span> rest x1
+  14:&amp;:cell/<span class="Special">raw</span> <span class="Special">&lt;-</span> rest x
+  20:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s1
   memory-should-contain [
-    <span class="Constant">10</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># parse result is a pair</span>
-    <span class="Constant">11</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.first is a pair</span>
-    <span class="Constant">12</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.first.first is an atom</span>
-    <span class="Constant">13</span><span class="Special"> &lt;- </span><span class="Constant">0</span>  <span class="Comment"># result.first.rest is nil</span>
-    <span class="Constant">14</span><span class="Special"> &lt;- </span><span class="Constant">0</span>  <span class="Comment"># result.rest is nil</span>
-    <span class="Constant">20</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[abc]</span>  <span class="Comment"># result.first.first</span>
+   <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># parse result is a pair</span>
+   <span class="Constant"> 11</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.first is a pair</span>
+   <span class="Constant"> 12</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.first.first is an atom</span>
+   <span class="Constant"> 13</span> <span class="Special">&lt;-</span><span class="Constant"> 0</span>  <span class="Comment"># result.first.rest is nil</span>
+   <span class="Constant"> 14</span> <span class="Special">&lt;-</span><span class="Constant"> 0</span>  <span class="Comment"># result.rest is nil</span>
+    20:@:char <span class="Special">&lt;-</span> <span class="Constant">[abc]</span>  <span class="Comment"># result.first.first</span>
   ]
 ]
 
 <span class="muScenario">scenario</span> parse-nested-list-2 [
   <span class="Constant">local-scope</span>
-  s:text<span class="Special"> &lt;- </span>new <span class="Constant">[((abc) def)]</span>
-  x:&amp;:cell<span class="Special"> &lt;- </span>parse s
+  s:text <span class="Special">&lt;-</span> new <span class="Constant">[((abc) def)]</span>
+  x:&amp;:cell <span class="Special">&lt;-</span> parse s
   trace-should-contain [
     app/parse: <span class="Constant">&lt;</span> <span class="Constant">&lt;</span> abc <span class="Constant">|</span> <span class="Constant">&lt;&gt;</span> <span class="Constant">&gt;</span> <span class="Constant">|</span> <span class="Constant">&lt;</span> def <span class="Constant">|</span> <span class="Constant">&lt;&gt;</span> <span class="Constant">&gt;</span> <span class="Constant">&gt;</span>
   ]
-  <span class="Constant">10</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x
-  x1:&amp;:cell<span class="Special"> &lt;- </span>first x
-  <span class="Constant">11</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x
-  x2:&amp;:cell<span class="Special"> &lt;- </span>first x1
-  s1:text, <span class="Constant">12</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x2, <span class="Constant">atom:variant</span>
-  <span class="Constant">13</span>:&amp;:cell/<span class="Special">raw &lt;- </span>rest x1
-  x3:&amp;:cell<span class="Special"> &lt;- </span>rest x
-  x4:&amp;:cell<span class="Special"> &lt;- </span>first x3
-  s2:text, <span class="Constant">14</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x4, <span class="Constant">atom:variant</span>
-  <span class="Constant">15</span>:&amp;:cell/<span class="Special">raw &lt;- </span>rest x3
-  <span class="Constant">20</span>:@:char/<span class="Special">raw &lt;- </span>copy *s1
-  <span class="Constant">30</span>:@:char/<span class="Special">raw &lt;- </span>copy *s2
+  10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x
+  x1:&amp;:cell <span class="Special">&lt;-</span> first x
+  11:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x
+  x2:&amp;:cell <span class="Special">&lt;-</span> first x1
+  s1:text, 12:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x2, <span class="Constant">atom:variant</span>
+  13:&amp;:cell/<span class="Special">raw</span> <span class="Special">&lt;-</span> rest x1
+  x3:&amp;:cell <span class="Special">&lt;-</span> rest x
+  x4:&amp;:cell <span class="Special">&lt;-</span> first x3
+  s2:text, 14:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x4, <span class="Constant">atom:variant</span>
+  15:&amp;:cell/<span class="Special">raw</span> <span class="Special">&lt;-</span> rest x3
+  20:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s1
+  30:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s2
   memory-should-contain [
-    <span class="Constant">10</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># parse result is a pair</span>
-    <span class="Constant">11</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.first is a pair</span>
-    <span class="Constant">12</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.first.first is an atom</span>
-    <span class="Constant">13</span><span class="Special"> &lt;- </span><span class="Constant">0</span>  <span class="Comment"># result.first.rest is nil</span>
-    <span class="Constant">14</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.rest.first is an atom</span>
-    <span class="Constant">15</span><span class="Special"> &lt;- </span><span class="Constant">0</span>  <span class="Comment"># result.rest.rest is nil</span>
-    <span class="Constant">20</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[abc]</span>  <span class="Comment"># result.first.first</span>
-    <span class="Constant">30</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[def]</span>  <span class="Comment"># result.rest.first</span>
+   <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># parse result is a pair</span>
+   <span class="Constant"> 11</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.first is a pair</span>
+   <span class="Constant"> 12</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.first.first is an atom</span>
+   <span class="Constant"> 13</span> <span class="Special">&lt;-</span><span class="Constant"> 0</span>  <span class="Comment"># result.first.rest is nil</span>
+   <span class="Constant"> 14</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.rest.first is an atom</span>
+   <span class="Constant"> 15</span> <span class="Special">&lt;-</span><span class="Constant"> 0</span>  <span class="Comment"># result.rest.rest is nil</span>
+    20:@:char <span class="Special">&lt;-</span> <span class="Constant">[abc]</span>  <span class="Comment"># result.first.first</span>
+    30:@:char <span class="Special">&lt;-</span> <span class="Constant">[def]</span>  <span class="Comment"># result.rest.first</span>
   ]
 ]
 
@@ -547,56 +547,56 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color
 
 <span class="muScenario">scenario</span> parse-dotted-list-of-two-atoms [
   <span class="Constant">local-scope</span>
-  s:text<span class="Special"> &lt;- </span>new <span class="Constant">[(abc . def)]</span>
-  x:&amp;:cell<span class="Special"> &lt;- </span>parse s
+  s:text <span class="Special">&lt;-</span> new <span class="Constant">[(abc . def)]</span>
+  x:&amp;:cell <span class="Special">&lt;-</span> parse s
   trace-should-contain [
     app/parse: <span class="Constant">&lt;</span> abc <span class="Constant">|</span> def <span class="Constant">&gt;</span>
   ]
-  <span class="Constant">10</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x
-  x1:&amp;:cell<span class="Special"> &lt;- </span>first x
-  x2:&amp;:cell<span class="Special"> &lt;- </span>rest x
-  s1:text, <span class="Constant">11</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x1, <span class="Constant">atom:variant</span>
-  s2:text, <span class="Constant">12</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x2, <span class="Constant">atom:variant</span>
-  <span class="Constant">20</span>:@:char/<span class="Special">raw &lt;- </span>copy *s1
-  <span class="Constant">30</span>:@:char/<span class="Special">raw &lt;- </span>copy *s2
+  10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x
+  x1:&amp;:cell <span class="Special">&lt;-</span> first x
+  x2:&amp;:cell <span class="Special">&lt;-</span> rest x
+  s1:text, 11:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x1, <span class="Constant">atom:variant</span>
+  s2:text, 12:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x2, <span class="Constant">atom:variant</span>
+  20:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s1
+  30:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s2
   memory-should-contain [
     <span class="Comment"># parses to &lt; abc | def &gt;</span>
-    <span class="Constant">10</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># parse result is a pair</span>
-    <span class="Constant">11</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.first is an atom</span>
-    <span class="Constant">12</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.rest is an atom</span>
-    <span class="Constant">20</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[abc]</span>  <span class="Comment"># result.first</span>
-    <span class="Constant">30</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[def]</span>  <span class="Comment"># result.rest</span>
+   <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># parse result is a pair</span>
+   <span class="Constant"> 11</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.first is an atom</span>
+   <span class="Constant"> 12</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.rest is an atom</span>
+    20:@:char <span class="Special">&lt;-</span> <span class="Constant">[abc]</span>  <span class="Comment"># result.first</span>
+    30:@:char <span class="Special">&lt;-</span> <span class="Constant">[def]</span>  <span class="Comment"># result.rest</span>
   ]
 ]
 
 <span class="muScenario">scenario</span> parse-dotted-list-of-more-than-two-atoms [
   <span class="Constant">local-scope</span>
-  s:text<span class="Special"> &lt;- </span>new <span class="Constant">[(abc def . ghi)]</span>
-  x:&amp;:cell<span class="Special"> &lt;- </span>parse s
+  s:text <span class="Special">&lt;-</span> new <span class="Constant">[(abc def . ghi)]</span>
+  x:&amp;:cell <span class="Special">&lt;-</span> parse s
   trace-should-contain [
     app/parse: <span class="Constant">&lt;</span> abc <span class="Constant">|</span> <span class="Constant">&lt;</span> def <span class="Constant">|</span> ghi <span class="Constant">&gt;</span> <span class="Constant">&gt;</span>
   ]
-  <span class="Constant">10</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x
-  x1:&amp;:cell<span class="Special"> &lt;- </span>first x
-  x2:&amp;:cell<span class="Special"> &lt;- </span>rest x
-  s1:text, <span class="Constant">11</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x1, <span class="Constant">atom:variant</span>
-  <span class="Constant">12</span>:bool/<span class="Special">raw &lt;- </span>is-pair? x2
-  x3:&amp;:cell<span class="Special"> &lt;- </span>first x2
-  s2:text, <span class="Constant">13</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x3, <span class="Constant">atom:variant</span>
-  x4:&amp;:cell<span class="Special"> &lt;- </span>rest x2
-  s3:text, <span class="Constant">14</span>:bool/<span class="Special">raw &lt;- </span>maybe-convert *x4, <span class="Constant">atom:variant</span>
-  <span class="Constant">20</span>:@:char/<span class="Special">raw &lt;- </span>copy *s1
-  <span class="Constant">30</span>:@:char/<span class="Special">raw &lt;- </span>copy *s2
-  <span class="Constant">40</span>:@:char/<span class="Special">raw &lt;- </span>copy *s3
+  10:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x
+  x1:&amp;:cell <span class="Special">&lt;-</span> first x
+  x2:&amp;:cell <span class="Special">&lt;-</span> rest x
+  s1:text, 11:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x1, <span class="Constant">atom:variant</span>
+  12:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> is-pair? x2
+  x3:&amp;:cell <span class="Special">&lt;-</span> first x2
+  s2:text, 13:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x3, <span class="Constant">atom:variant</span>
+  x4:&amp;:cell <span class="Special">&lt;-</span> rest x2
+  s3:text, 14:bool/<span class="Special">raw</span> <span class="Special">&lt;-</span> maybe-convert *x4, <span class="Constant">atom:variant</span>
+  20:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s1
+  30:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s2
+  40:@:char/<span class="Special">raw</span> <span class="Special">&lt;-</span> copy *s3
   memory-should-contain [
-    <span class="Constant">10</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># parse result is a pair</span>
-    <span class="Constant">11</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.first is an atom</span>
-    <span class="Constant">12</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.rest is a pair</span>
-    <span class="Constant">13</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.rest.first is an atom</span>
-    <span class="Constant">14</span><span class="Special"> &lt;- </span><span class="Constant">1</span>  <span class="Comment"># result.rest.rest is an atom</span>
-    <span class="Constant">20</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[abc]</span>  <span class="Comment"># result.first</span>
-    <span class="Constant">30</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[def]</span>  <span class="Comment"># result.rest.first</span>
-    <span class="Constant">40</span>:@:char<span class="Special"> &lt;- </span><span class="Constant">[ghi]</span>  <span class="Comment"># result.rest.rest</span>
+   <span class="Constant"> 10</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># parse result is a pair</span>
+   <span class="Constant"> 11</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.first is an atom</span>
+   <span class="Constant"> 12</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.rest is a pair</span>
+   <span class="Constant"> 13</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.rest.first is an atom</span>
+   <span class="Constant"> 14</span> <span class="Special">&lt;-</span><span class="Constant"> 1</span>  <span class="Comment"># result.rest.rest is an atom</span>
+    20:@:char <span class="Special">&lt;-</span> <span class="Constant">[abc]</span>  <span class="Comment"># result.first</span>
+    30:@:char <span class="Special">&lt;-</span> <span class="Constant">[def]</span>  <span class="Comment"># result.rest.first</span>
+    40:@:char <span class="Special">&lt;-</span> <span class="Constant">[ghi]</span>  <span class="Comment"># result.rest.rest</span>
   ]
 ]
 
@@ -605,9 +605,9 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color
 <span class="muRecipe">def</span> to-mu in:&amp;:cell<span class="muRecipe"> -&gt; </span>out:text [
   <span class="Constant">local-scope</span>
   <span class="Constant">load-ingredients</span>
-  buf:&amp;:buffer<span class="Special"> &lt;- </span>new-buffer <span class="Constant">30</span>
-  buf<span class="Special"> &lt;- </span>to-mu in, buf
-  out<span class="Special"> &lt;- </span>buffer-to-array buf
+  buf:&amp;:buffer <span class="Special">&lt;-</span> new-buffer<span class="Constant"> 30</span>
+  buf <span class="Special">&lt;-</span> to-mu in, buf
+  out <span class="Special">&lt;-</span> buffer-to-array buf
 ]
 
 <span class="muRecipe">def</span> to-mu in:&amp;:cell, buf:&amp;:buffer<span class="muRecipe"> -&gt; </span>buf:&amp;:buffer, result-name:text [
@@ -616,7 +616,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color
   <span class="Comment"># null cell? no change.</span>
   <span class="Comment"># pair with all atoms? gensym a new variable</span>
   <span class="Comment"># pair containing other pairs? recurse</span>
-  result-name<span class="Special"> &lt;- </span>copy <span class="Constant">0</span>
+  result-name <span class="Special">&lt;-</span> copy<span class="Constant"> 0</span>
 ]
 </pre>
 </body>