about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2017-06-09 23:42:58 -0700
committerKartik K. Agaram <vc@akkartik.com>2017-06-09 23:42:58 -0700
commitf0f077661c1f5d587602343a1a0bc82f0c99cf59 (patch)
tree0a224a22b1a50ce9ee44f03e6443623dce17a4fc
parentbd5d3936ec77e0ec42d6f9d99d377d807e9892f8 (diff)
downloadmu-f0f077661c1f5d587602343a1a0bc82f0c99cf59.tar.gz
3904
Standardize functions to put the main object being modified first.
-rw-r--r--edit/002-typing.mu8
-rw-r--r--edit/004-programming-environment.mu4
-rw-r--r--html/edit/001-editor.mu.html12
-rw-r--r--html/edit/002-typing.mu.html16
-rw-r--r--html/edit/003-shortcuts.mu.html14
-rw-r--r--html/edit/004-programming-environment.mu.html16
-rw-r--r--html/edit/005-sandbox.mu.html20
-rw-r--r--sandbox/002-typing.mu8
-rw-r--r--sandbox/004-programming-environment.mu2
9 files changed, 50 insertions, 50 deletions
diff --git a/edit/002-typing.mu b/edit/002-typing.mu
index 7c385b6f..c6c8edd5 100644
--- a/edit/002-typing.mu
+++ b/edit/002-typing.mu
@@ -30,7 +30,7 @@ def editor-event-loop screen:&:screen, console:&:console, editor:&:editor -> scr
     t:touch-event, is-touch?:bool <- maybe-convert e, touch:variant
     {
       break-unless is-touch?
-      move-cursor-in-editor screen, editor, t
+      move-cursor editor, screen, t
       loop +next-event
     }
     # keyboard events
@@ -47,7 +47,7 @@ def editor-event-loop screen:&:screen, console:&:console, editor:&:editor -> scr
 ]
 
 # process click, return if it was on current editor
-def move-cursor-in-editor screen:&:screen, editor:&:editor, t:touch-event -> in-focus?:bool, editor:&:editor [
+def move-cursor editor:&:editor, screen:&:screen, t:touch-event -> in-focus?:bool, editor:&:editor [
   local-scope
   load-ingredients
   return-unless editor, 0/false
@@ -62,7 +62,7 @@ def move-cursor-in-editor screen:&:screen, editor:&:editor, t:touch-event -> in-
   return-if too-far-right?, 0/false
   # position cursor
   <move-cursor-begin>
-  editor <- snap-cursor screen, editor, click-row, click-column
+  editor <- snap-cursor editor, screen, click-row, click-column
   undo-coalesce-tag:num <- copy 0/never
   <move-cursor-end>
   # gain focus
@@ -72,7 +72,7 @@ def move-cursor-in-editor screen:&:screen, editor:&:editor, t:touch-event -> in-
 # Variant of 'render' that only moves the cursor (coordinates and
 # before-cursor). If it's past the end of a line, it 'slides' it left. If it's
 # past the last line it positions at end of last line.
-def snap-cursor screen:&:screen, editor:&:editor, target-row:num, target-column:num -> editor:&:editor [
+def snap-cursor editor:&:editor, screen:&:screen, target-row:num, target-column:num -> editor:&:editor [
   local-scope
   load-ingredients
   return-unless editor
diff --git a/edit/004-programming-environment.mu b/edit/004-programming-environment.mu
index f0c8501e..71e72e46 100644
--- a/edit/004-programming-environment.mu
+++ b/edit/004-programming-environment.mu
@@ -80,8 +80,8 @@ def event-loop screen:&:screen, console:&:console, env:&:environment, resources:
       # later exceptions for non-editor touches will go here
       <global-touch>
       # send to both editors
-      _ <- move-cursor-in-editor screen, recipes, t
-      sandbox-in-focus?:bool <- move-cursor-in-editor screen, current-sandbox, t
+      _ <- move-cursor recipes, screen, t
+      sandbox-in-focus?:bool <- move-cursor current-sandbox, screen, t
       *env <- put *env, sandbox-in-focus?:offset, sandbox-in-focus?
       screen <- update-cursor screen, recipes, current-sandbox, sandbox-in-focus?, env
       loop +next-event
diff --git a/html/edit/001-editor.mu.html b/html/edit/001-editor.mu.html
index dcc7bfd5..a928a2bc 100644
--- a/html/edit/001-editor.mu.html
+++ b/html/edit/001-editor.mu.html
@@ -185,7 +185,7 @@ if ('onhashchange' in window) {
 <span id="L122" class="LineNr">122 </span>  cursor-row:num <span class="Special">&lt;-</span> get *editor, <span class="Constant">cursor-row:offset</span>
 <span id="L123" class="LineNr">123 </span>  cursor-column:num <span class="Special">&lt;-</span> get *editor, <span class="Constant">cursor-column:offset</span>
 <span id="L124" class="LineNr">124 </span>  before-cursor:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get *editor, <span class="Constant">before-cursor:offset</span>
-<span id="L125" class="LineNr">125 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, column
+<span id="L125" class="LineNr">125 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, column
 <span id="L126" class="LineNr">126 </span>  <span class="Delimiter">{</span>
 <span id="L127" class="LineNr">127 </span><span class="Constant">  </span><span class="Conceal">¦</span><span class="Constant"> +next-character</span>
 <span id="L128" class="LineNr">128 </span>  <span class="Conceal">¦</span> <span class="muControl">break-unless</span> curr
@@ -221,7 +221,7 @@ if ('onhashchange' in window) {
 <span id="L158" class="LineNr">158 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment"># skip to next line</span>
 <span id="L159" class="LineNr">159 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> row <span class="Special">&lt;-</span> add row,<span class="Constant"> 1</span>
 <span id="L160" class="LineNr">160 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> column <span class="Special">&lt;-</span> copy left
-<span id="L161" class="LineNr">161 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, column
+<span id="L161" class="LineNr">161 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, column
 <span id="L162" class="LineNr">162 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> curr <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> curr
 <span id="L163" class="LineNr">163 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L36'>prev</a> <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> <a href='../065duplex_list.mu.html#L36'>prev</a>
 <span id="L164" class="LineNr">164 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span class="Constant">+next-character</span>
@@ -236,7 +236,7 @@ if ('onhashchange' in window) {
 <span id="L173" class="LineNr">173 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> print <a href='../081print.mu.html#L4'>screen</a>, wrap-icon, <span class="Constant">245/grey</span>
 <span id="L174" class="LineNr">174 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> column <span class="Special">&lt;-</span> copy left
 <span id="L175" class="LineNr">175 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> row <span class="Special">&lt;-</span> add row,<span class="Constant"> 1</span>
-<span id="L176" class="LineNr">176 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, column
+<span id="L176" class="LineNr">176 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, column
 <span id="L177" class="LineNr">177 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment"># don't increment curr</span>
 <span id="L178" class="LineNr">178 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span class="Constant">+next-character</span>
 <span id="L179" class="LineNr">179 </span>  <span class="Conceal">¦</span> <span class="Delimiter">}</span>
@@ -277,7 +277,7 @@ if ('onhashchange' in window) {
 <span id="L214" class="LineNr">214 </span>  <span class="Conceal">¦</span> <span class="muControl">return</span>
 <span id="L215" class="LineNr">215 </span>  <span class="Delimiter">}</span>
 <span id="L216" class="LineNr">216 </span>  <span class="Comment"># if not, go the slower route</span>
-<span id="L217" class="LineNr">217 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, column
+<span id="L217" class="LineNr">217 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, column
 <span id="L218" class="LineNr">218 </span>  <a href='../081print.mu.html#L536'>clear-line-until</a> <a href='../081print.mu.html#L4'>screen</a>, right
 <span id="L219" class="LineNr">219 </span>  <a href='001-editor.mu.html#L222'>clear-rest-of-screen</a> <a href='../081print.mu.html#L4'>screen</a>, row, left, right
 <span id="L220" class="LineNr">220 </span>]
@@ -292,12 +292,12 @@ if ('onhashchange' in window) {
 <span id="L229" class="LineNr">229 </span>  <span class="Conceal">¦</span> clear-display-from row, left, left, right
 <span id="L230" class="LineNr">230 </span>  <span class="Conceal">¦</span> <span class="muControl">return</span>
 <span id="L231" class="LineNr">231 </span>  <span class="Delimiter">}</span>
-<span id="L232" class="LineNr">232 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, left
+<span id="L232" class="LineNr">232 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, left
 <span id="L233" class="LineNr">233 </span>  <a href='../081print.mu.html#L748'>screen-height</a>:num <span class="Special">&lt;-</span> <a href='../081print.mu.html#L748'>screen-height</a> <a href='../081print.mu.html#L4'>screen</a>
 <span id="L234" class="LineNr">234 </span>  <span class="Delimiter">{</span>
 <span id="L235" class="LineNr">235 </span>  <span class="Conceal">¦</span> at-bottom-of-screen?:bool <span class="Special">&lt;-</span> greater-or-equal row, <a href='../081print.mu.html#L748'>screen-height</a>
 <span id="L236" class="LineNr">236 </span>  <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-bottom-of-screen?
-<span id="L237" class="LineNr">237 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, left
+<span id="L237" class="LineNr">237 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, left
 <span id="L238" class="LineNr">238 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L536'>clear-line-until</a> <a href='../081print.mu.html#L4'>screen</a>, right
 <span id="L239" class="LineNr">239 </span>  <span class="Conceal">¦</span> row <span class="Special">&lt;-</span> add row,<span class="Constant"> 1</span>
 <span id="L240" class="LineNr">240 </span>  <span class="Conceal">¦</span> <span class="muControl">loop</span>
diff --git a/html/edit/002-typing.mu.html b/html/edit/002-typing.mu.html
index 39cbda87..c0c93519 100644
--- a/html/edit/002-typing.mu.html
+++ b/html/edit/002-typing.mu.html
@@ -84,7 +84,7 @@ if ('onhashchange' in window) {
 <span id="L21" class="LineNr">  21 </span><span class="Constant">  </span><span class="Conceal">¦</span><span class="Constant"> +next-event</span>
 <span id="L22" class="LineNr">  22 </span>  <span class="Conceal">¦</span> cursor-row:num <span class="Special">&lt;-</span> get *editor, <span class="Constant">cursor-row:offset</span>
 <span id="L23" class="LineNr">  23 </span>  <span class="Conceal">¦</span> cursor-column:num <span class="Special">&lt;-</span> get *editor, <span class="Constant">cursor-column:offset</span>
-<span id="L24" class="LineNr">  24 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, cursor-row, cursor-column
+<span id="L24" class="LineNr">  24 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, cursor-row, cursor-column
 <span id="L25" class="LineNr">  25 </span>  <span class="Conceal">¦</span> e:<a href='../084console.mu.html#L4'>event</a>, found?:bool, quit?:bool, <a href='../084console.mu.html#L23'>console</a> <span class="Special">&lt;-</span> <a href='../084console.mu.html#L35'>read-event</a> <a href='../084console.mu.html#L23'>console</a>
 <span id="L26" class="LineNr">  26 </span>  <span class="Conceal">¦</span> <span class="muControl">loop-unless</span> found?
 <span id="L27" class="LineNr">  27 </span>  <span class="Conceal">¦</span> <span class="muControl">break-if</span> quit?  <span class="Comment"># only in tests</span>
@@ -93,7 +93,7 @@ if ('onhashchange' in window) {
 <span id="L30" class="LineNr">  30 </span>  <span class="Conceal">¦</span> t:<a href='../084console.mu.html#L12'>touch-event</a>, is-touch?:bool <span class="Special">&lt;-</span> maybe-convert e, <span class="Constant">touch:variant</span>
 <span id="L31" class="LineNr">  31 </span>  <span class="Conceal">¦</span> <span class="Delimiter">{</span>
 <span id="L32" class="LineNr">  32 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> is-touch?
-<span id="L33" class="LineNr">  33 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='002-typing.mu.html#L50'>move-cursor-in-editor</a> <a href='../081print.mu.html#L4'>screen</a>, editor, t
+<span id="L33" class="LineNr">  33 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> move-cursor editor, <a href='../081print.mu.html#L4'>screen</a>, t
 <span id="L34" class="LineNr">  34 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span class="Constant">+next-event</span>
 <span id="L35" class="LineNr">  35 </span>  <span class="Conceal">¦</span> <span class="Delimiter">}</span>
 <span id="L36" class="LineNr">  36 </span>  <span class="Conceal">¦</span> <span class="Comment"># keyboard events</span>
@@ -110,7 +110,7 @@ if ('onhashchange' in window) {
 <span id="L47" class="LineNr">  47 </span>]
 <span id="L48" class="LineNr">  48 </span>
 <span id="L49" class="LineNr">  49 </span><span class="Comment"># process click, return if it was on current editor</span>
-<span id="L50" class="LineNr">  50 </span><span class="muRecipe">def</span> <a href='002-typing.mu.html#L50'>move-cursor-in-editor</a> <a href='../081print.mu.html#L4'>screen</a>:&amp;:<a href='../081print.mu.html#L4'>screen</a>, editor:&amp;:editor, t:<a href='../084console.mu.html#L12'>touch-event</a><span class="muRecipe"> -&gt; </span>in-focus?:bool, editor:&amp;:editor [
+<span id="L50" class="LineNr">  50 </span><span class="muRecipe">def</span> move-cursor editor:&amp;:editor, <a href='../081print.mu.html#L4'>screen</a>:&amp;:<a href='../081print.mu.html#L4'>screen</a>, t:<a href='../084console.mu.html#L12'>touch-event</a><span class="muRecipe"> -&gt; </span>in-focus?:bool, editor:&amp;:editor [
 <span id="L51" class="LineNr">  51 </span>  <span class="Constant">local-scope</span>
 <span id="L52" class="LineNr">  52 </span>  <span class="Constant">load-ingredients</span>
 <span id="L53" class="LineNr">  53 </span>  <span class="muControl">return-unless</span> editor, <span class="Constant">0/false</span>
@@ -125,7 +125,7 @@ if ('onhashchange' in window) {
 <span id="L62" class="LineNr">  62 </span>  <span class="muControl">return-if</span> too-far-right?, <span class="Constant">0/false</span>
 <span id="L63" class="LineNr">  63 </span>  <span class="Comment"># position cursor</span>
 <span id="L64" class="LineNr">  64 </span><span class="Constant">  &lt;move-cursor-begin&gt;</span>
-<span id="L65" class="LineNr">  65 </span>  editor <span class="Special">&lt;-</span> <a href='002-typing.mu.html#L75'>snap-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, editor, click-row, click-column
+<span id="L65" class="LineNr">  65 </span>  editor <span class="Special">&lt;-</span> <a href='002-typing.mu.html#L75'>snap-cursor</a> editor, <a href='../081print.mu.html#L4'>screen</a>, click-row, click-column
 <span id="L66" class="LineNr">  66 </span>  undo-coalesce-tag:num <span class="Special">&lt;-</span> copy <span class="Constant">0/never</span>
 <span id="L67" class="LineNr">  67 </span><span class="Constant">  &lt;move-cursor-end&gt;</span>
 <span id="L68" class="LineNr">  68 </span>  <span class="Comment"># gain focus</span>
@@ -135,7 +135,7 @@ if ('onhashchange' in window) {
 <span id="L72" class="LineNr">  72 </span><span class="Comment"># Variant of 'render' that only moves the cursor (coordinates and</span>
 <span id="L73" class="LineNr">  73 </span><span class="Comment"># before-cursor). If it's past the end of a line, it 'slides' it left. If it's</span>
 <span id="L74" class="LineNr">  74 </span><span class="Comment"># past the last line it positions at end of last line.</span>
-<span id="L75" class="LineNr">  75 </span><span class="muRecipe">def</span> <a href='002-typing.mu.html#L75'>snap-cursor</a> <a href='../081print.mu.html#L4'>screen</a>:&amp;:<a href='../081print.mu.html#L4'>screen</a>, editor:&amp;:editor, target-row:num, target-column:num<span class="muRecipe"> -&gt; </span>editor:&amp;:editor [
+<span id="L75" class="LineNr">  75 </span><span class="muRecipe">def</span> <a href='002-typing.mu.html#L75'>snap-cursor</a> editor:&amp;:editor, <a href='../081print.mu.html#L4'>screen</a>:&amp;:<a href='../081print.mu.html#L4'>screen</a>, target-row:num, target-column:num<span class="muRecipe"> -&gt; </span>editor:&amp;:editor [
 <span id="L76" class="LineNr">  76 </span>  <span class="Constant">local-scope</span>
 <span id="L77" class="LineNr">  77 </span>  <span class="Constant">load-ingredients</span>
 <span id="L78" class="LineNr">  78 </span>  <span class="muControl">return-unless</span> editor
@@ -293,7 +293,7 @@ if ('onhashchange' in window) {
 <span id="L230" class="LineNr"> 230 </span>  <span class="Conceal">¦</span> at-right?:bool <span class="Special">&lt;-</span> equal save-column, right
 <span id="L231" class="LineNr"> 231 </span>  <span class="Conceal">¦</span> overflow?:bool <span class="Special">&lt;-</span> and at-bottom?, at-right?
 <span id="L232" class="LineNr"> 232 </span>  <span class="Conceal">¦</span> <span class="muControl">break-if</span> overflow?
-<span id="L233" class="LineNr"> 233 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, save-row, save-column
+<span id="L233" class="LineNr"> 233 </span>  <span class="Conceal">¦</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, save-row, save-column
 <span id="L234" class="LineNr"> 234 </span>  <span class="Conceal">¦</span> print <a href='../081print.mu.html#L4'>screen</a>, c
 <span id="L235" class="LineNr"> 235 </span>  <span class="Conceal">¦</span> <span class="muControl">return</span> <span class="Constant">0/don't-render</span>
 <span id="L236" class="LineNr"> 236 </span>  <span class="Delimiter">}</span>
@@ -303,7 +303,7 @@ if ('onhashchange' in window) {
 <span id="L240" class="LineNr"> 240 </span>  <span class="Conceal">¦</span> at-right?:bool <span class="Special">&lt;-</span> greater-or-equal cursor-column, <a href='../081print.mu.html#L735'>screen-width</a>
 <span id="L241" class="LineNr"> 241 </span>  <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-right?
 <span id="L242" class="LineNr"> 242 </span>  <span class="Conceal">¦</span> curr:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> copy before-cursor
-<span id="L243" class="LineNr"> 243 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, save-row, save-column
+<span id="L243" class="LineNr"> 243 </span>  <span class="Conceal">¦</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, save-row, save-column
 <span id="L244" class="LineNr"> 244 </span>  <span class="Conceal">¦</span> curr-column:num <span class="Special">&lt;-</span> copy save-column
 <span id="L245" class="LineNr"> 245 </span>  <span class="Conceal">¦</span> <span class="Delimiter">{</span>
 <span id="L246" class="LineNr"> 246 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment"># hit right margin? give up and let caller render</span>
@@ -1142,7 +1142,7 @@ if ('onhashchange' in window) {
 <span id="L1079" class="LineNr">1079 </span>  <span class="Conceal">¦</span> <span class="muControl">break-if</span> bg-color-found?
 <span id="L1080" class="LineNr">1080 </span>  <span class="Conceal">¦</span> bg-color <span class="Special">&lt;-</span> copy <span class="Constant">0/black</span>
 <span id="L1081" class="LineNr">1081 </span>  <span class="Delimiter">}</span>
-<span id="L1082" class="LineNr">1082 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, x
+<span id="L1082" class="LineNr">1082 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, x
 <span id="L1083" class="LineNr">1083 </span>  <span class="Delimiter">{</span>
 <span id="L1084" class="LineNr">1084 </span>  <span class="Conceal">¦</span> continue?:bool <span class="Special">&lt;-</span> lesser-or-equal x, right  <span class="Comment"># right is inclusive, to match editor semantics</span>
 <span id="L1085" class="LineNr">1085 </span>  <span class="Conceal">¦</span> <span class="muControl">break-unless</span> continue?
diff --git a/html/edit/003-shortcuts.mu.html b/html/edit/003-shortcuts.mu.html
index 55b98690..0af7df9a 100644
--- a/html/edit/003-shortcuts.mu.html
+++ b/html/edit/003-shortcuts.mu.html
@@ -194,7 +194,7 @@ if ('onhashchange' in window) {
 <span id="L132" class="LineNr"> 132 </span>  left:num <span class="Special">&lt;-</span> get *editor, <span class="Constant">left:offset</span>
 <span id="L133" class="LineNr"> 133 </span>  right:num <span class="Special">&lt;-</span> get *editor, <span class="Constant">right:offset</span>
 <span id="L134" class="LineNr"> 134 </span>  curr:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor
-<span id="L135" class="LineNr"> 135 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, cursor-row, cursor-column
+<span id="L135" class="LineNr"> 135 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, cursor-row, cursor-column
 <span id="L136" class="LineNr"> 136 </span>  curr-column:num <span class="Special">&lt;-</span> copy cursor-column
 <span id="L137" class="LineNr"> 137 </span>  <span class="Delimiter">{</span>
 <span id="L138" class="LineNr"> 138 </span>  <span class="Conceal">¦</span> <span class="Comment"># hit right margin? give up and let caller render</span>
@@ -448,7 +448,7 @@ if ('onhashchange' in window) {
 <span id="L386" class="LineNr"> 386 </span>  curr:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor  <span class="Comment"># refresh after remove above</span>
 <span id="L387" class="LineNr"> 387 </span>  cursor-row:num <span class="Special">&lt;-</span> get *editor, <span class="Constant">cursor-row:offset</span>
 <span id="L388" class="LineNr"> 388 </span>  cursor-column:num <span class="Special">&lt;-</span> get *editor, <span class="Constant">cursor-column:offset</span>
-<span id="L389" class="LineNr"> 389 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, cursor-row, cursor-column
+<span id="L389" class="LineNr"> 389 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, cursor-row, cursor-column
 <span id="L390" class="LineNr"> 390 </span>  curr-column:num <span class="Special">&lt;-</span> copy cursor-column
 <span id="L391" class="LineNr"> 391 </span>  <a href='../081print.mu.html#L735'>screen-width</a>:num <span class="Special">&lt;-</span> <a href='../081print.mu.html#L735'>screen-width</a> <a href='../081print.mu.html#L4'>screen</a>
 <span id="L392" class="LineNr"> 392 </span>  <span class="Delimiter">{</span>
@@ -507,7 +507,7 @@ if ('onhashchange' in window) {
 <span id="L445" class="LineNr"> 445 </span>  <span class="Conceal">¦</span> before-cursor <span class="Special">&lt;-</span> copy next-cursor
 <span id="L446" class="LineNr"> 446 </span>  <span class="Conceal">¦</span> *editor <span class="Special">&lt;-</span> put *editor, <span class="Constant">before-cursor:offset</span>, before-cursor
 <span id="L447" class="LineNr"> 447 </span>  <span class="Conceal">¦</span> go-render?:bool <span class="Special">&lt;-</span> <a href='003-shortcuts.mu.html#L455'>move-cursor-coordinates-right</a> editor, <a href='../081print.mu.html#L748'>screen-height</a>
-<span id="L448" class="LineNr"> 448 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, cursor-row, cursor-column
+<span id="L448" class="LineNr"> 448 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, cursor-row, cursor-column
 <span id="L449" class="LineNr"> 449 </span>  <span class="Conceal">¦</span> undo-coalesce-tag:num <span class="Special">&lt;-</span> copy <span class="Constant">2/right-arrow</span>
 <span id="L450" class="LineNr"> 450 </span><span class="Constant">  </span><span class="Conceal">¦</span><span class="Constant"> &lt;move-cursor-end&gt;</span>
 <span id="L451" class="LineNr"> 451 </span>  <span class="Conceal">¦</span> <span class="muControl">return</span>
@@ -1810,7 +1810,7 @@ if ('onhashchange' in window) {
 <span id="L1748" class="LineNr">1748 </span>  <span class="muControl">return-unless</span> s
 <span id="L1749" class="LineNr">1749 </span>  color:num <span class="Special">&lt;-</span> copy <span class="Constant">7/white</span>
 <span id="L1750" class="LineNr">1750 </span>  column:num <span class="Special">&lt;-</span> copy left
-<span id="L1751" class="LineNr">1751 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, column
+<span id="L1751" class="LineNr">1751 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, column
 <span id="L1752" class="LineNr">1752 </span>  <a href='../081print.mu.html#L748'>screen-height</a>:num <span class="Special">&lt;-</span> <a href='../081print.mu.html#L748'>screen-height</a> <a href='../081print.mu.html#L4'>screen</a>
 <span id="L1753" class="LineNr">1753 </span>  i:num <span class="Special">&lt;-</span> copy<span class="Constant"> 0</span>
 <span id="L1754" class="LineNr">1754 </span>  len:num <span class="Special">&lt;-</span> length *s
@@ -1837,7 +1837,7 @@ if ('onhashchange' in window) {
 <span id="L1775" class="LineNr">1775 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Delimiter">}</span>
 <span id="L1776" class="LineNr">1776 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> row <span class="Special">&lt;-</span> add row,<span class="Constant"> 1</span>
 <span id="L1777" class="LineNr">1777 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> column <span class="Special">&lt;-</span> copy left
-<span id="L1778" class="LineNr">1778 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, column
+<span id="L1778" class="LineNr">1778 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, column
 <span id="L1779" class="LineNr">1779 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> i <span class="Special">&lt;-</span> add i,<span class="Constant"> 1</span>
 <span id="L1780" class="LineNr">1780 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span class="Constant">+next-character</span>
 <span id="L1781" class="LineNr">1781 </span>  <span class="Conceal">¦</span> <span class="Delimiter">}</span>
@@ -1850,7 +1850,7 @@ if ('onhashchange' in window) {
 <span id="L1788" class="LineNr">1788 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> print <a href='../081print.mu.html#L4'>screen</a>, wrap-icon, <span class="Constant">245/grey</span>
 <span id="L1789" class="LineNr">1789 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> column <span class="Special">&lt;-</span> copy left
 <span id="L1790" class="LineNr">1790 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> row <span class="Special">&lt;-</span> add row,<span class="Constant"> 1</span>
-<span id="L1791" class="LineNr">1791 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, column
+<span id="L1791" class="LineNr">1791 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, column
 <span id="L1792" class="LineNr">1792 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment"># don't increment i</span>
 <span id="L1793" class="LineNr">1793 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span class="Constant">+next-character</span>
 <span id="L1794" class="LineNr">1794 </span>  <span class="Conceal">¦</span> <span class="Delimiter">}</span>
@@ -1865,7 +1865,7 @@ if ('onhashchange' in window) {
 <span id="L1803" class="LineNr">1803 </span>  <span class="Conceal">¦</span> <span class="muControl">break-if</span> was-at-left?
 <span id="L1804" class="LineNr">1804 </span>  <span class="Conceal">¦</span> row <span class="Special">&lt;-</span> add row,<span class="Constant"> 1</span>
 <span id="L1805" class="LineNr">1805 </span>  <span class="Delimiter">}</span>
-<span id="L1806" class="LineNr">1806 </span>  <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, left
+<span id="L1806" class="LineNr">1806 </span>  move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, left
 <span id="L1807" class="LineNr">1807 </span>]
 <span id="L1808" class="LineNr">1808 </span>
 <span id="L1809" class="LineNr">1809 </span><span class="muScenario">scenario</span> editor-deletes-to-start-of-line-with-ctrl-u-2 [
diff --git a/html/edit/004-programming-environment.mu.html b/html/edit/004-programming-environment.mu.html
index 16d0d6f7..16bbf545 100644
--- a/html/edit/004-programming-environment.mu.html
+++ b/html/edit/004-programming-environment.mu.html
@@ -143,8 +143,8 @@ if ('onhashchange' in window) {
 <span id="L80" class="LineNr"> 80 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment"># later exceptions for non-editor touches will go here</span>
 <span id="L81" class="LineNr"> 81 </span><span class="Constant">  </span><span class="Conceal">¦</span><span class="Constant"> </span><span class="Conceal">¦</span><span class="Constant"> <a href='004-programming-environment.mu.html#L81'>&lt;global-touch&gt;</a></span>
 <span id="L82" class="LineNr"> 82 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment"># send to both editors</span>
-<span id="L83" class="LineNr"> 83 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> _ <span class="Special">&lt;-</span> <a href='002-typing.mu.html#L50'>move-cursor-in-editor</a> <a href='../081print.mu.html#L4'>screen</a>, recipes, t
-<span id="L84" class="LineNr"> 84 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> sandbox-in-focus?:bool <span class="Special">&lt;-</span> <a href='002-typing.mu.html#L50'>move-cursor-in-editor</a> <a href='../081print.mu.html#L4'>screen</a>, current-sandbox, t
+<span id="L83" class="LineNr"> 83 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> _ <span class="Special">&lt;-</span> move-cursor recipes, <a href='../081print.mu.html#L4'>screen</a>, t
+<span id="L84" class="LineNr"> 84 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> sandbox-in-focus?:bool <span class="Special">&lt;-</span> move-cursor current-sandbox, <a href='../081print.mu.html#L4'>screen</a>, t
 <span id="L85" class="LineNr"> 85 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> *env <span class="Special">&lt;-</span> put *env, <span class="Constant">sandbox-in-focus?:offset</span>, sandbox-in-focus?
 <span id="L86" class="LineNr"> 86 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='004-programming-environment.mu.html#L467'>update-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, recipes, current-sandbox, sandbox-in-focus?, env
 <span id="L87" class="LineNr"> 87 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span class="Constant">+next-event</span>
@@ -239,7 +239,7 @@ if ('onhashchange' in window) {
 <span id="L176" class="LineNr">176 </span>  *editor <span class="Special">&lt;-</span> put *editor, <span class="Constant">cursor-column:offset</span>, column
 <span id="L177" class="LineNr">177 </span>  top-of-screen:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get *editor, <span class="Constant">top-of-screen:offset</span>
 <span id="L178" class="LineNr">178 </span>  *editor <span class="Special">&lt;-</span> put *editor, <span class="Constant">before-cursor:offset</span>, top-of-screen
-<span id="L179" class="LineNr">179 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, column
+<span id="L179" class="LineNr">179 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, column
 <span id="L180" class="LineNr">180 </span>  <span class="Delimiter">{</span>
 <span id="L181" class="LineNr">181 </span><span class="Constant">  </span><span class="Conceal">¦</span><span class="Constant"> +next-character</span>
 <span id="L182" class="LineNr">182 </span>  <span class="Conceal">¦</span> <span class="muControl">break-unless</span> curr
@@ -266,7 +266,7 @@ if ('onhashchange' in window) {
 <span id="L203" class="LineNr">203 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment"># skip to next line</span>
 <span id="L204" class="LineNr">204 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> row <span class="Special">&lt;-</span> add row,<span class="Constant"> 1</span>
 <span id="L205" class="LineNr">205 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> column <span class="Special">&lt;-</span> copy left
-<span id="L206" class="LineNr">206 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, column
+<span id="L206" class="LineNr">206 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, column
 <span id="L207" class="LineNr">207 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> curr <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> curr
 <span id="L208" class="LineNr">208 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L36'>prev</a> <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> <a href='../065duplex_list.mu.html#L36'>prev</a>
 <span id="L209" class="LineNr">209 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span class="Constant">+next-character</span>
@@ -281,7 +281,7 @@ if ('onhashchange' in window) {
 <span id="L218" class="LineNr">218 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> print <a href='../081print.mu.html#L4'>screen</a>, wrap-icon, <span class="Constant">245/grey</span>
 <span id="L219" class="LineNr">219 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> column <span class="Special">&lt;-</span> copy left
 <span id="L220" class="LineNr">220 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> row <span class="Special">&lt;-</span> add row,<span class="Constant"> 1</span>
-<span id="L221" class="LineNr">221 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, column
+<span id="L221" class="LineNr">221 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, column
 <span id="L222" class="LineNr">222 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment"># don't increment curr</span>
 <span id="L223" class="LineNr">223 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span class="Constant">+next-character</span>
 <span id="L224" class="LineNr">224 </span>  <span class="Conceal">¦</span> <span class="Delimiter">}</span>
@@ -472,7 +472,7 @@ if ('onhashchange' in window) {
 <span id="L409" class="LineNr">409 </span>  button-start:num <span class="Special">&lt;-</span> subtract width,<span class="Constant"> 20</span>
 <span id="L410" class="LineNr">410 </span>  button-on-screen?:bool <span class="Special">&lt;-</span> greater-or-equal button-start,<span class="Constant"> 0</span>
 <span id="L411" class="LineNr">411 </span>  assert button-on-screen?, <span class="Constant">[screen too narrow for menu]</span>
-<span id="L412" class="LineNr">412 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, <span class="Constant">0/row</span>, button-start
+<span id="L412" class="LineNr">412 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, <span class="Constant">0/row</span>, button-start
 <span id="L413" class="LineNr">413 </span>  print <a href='../081print.mu.html#L4'>screen</a>, <span class="Constant">[ run (F4) ]</span>, <span class="Constant">255/white</span>, <span class="Constant">161/reddish</span>
 <span id="L414" class="LineNr">414 </span>  <span class="Comment"># dotted line down the middle</span>
 <span id="L415" class="LineNr">415 </span>  trace<span class="Constant"> 11</span>, <span class="Constant">[app]</span>, <span class="Constant">[render divider]</span>
@@ -541,7 +541,7 @@ if ('onhashchange' in window) {
 <span id="L478" class="LineNr">478 </span>  <span class="Conceal">¦</span> cursor-row:num <span class="Special">&lt;-</span> get *current-sandbox, <span class="Constant">cursor-row:offset</span>
 <span id="L479" class="LineNr">479 </span>  <span class="Conceal">¦</span> cursor-column:num <span class="Special">&lt;-</span> get *current-sandbox, <span class="Constant">cursor-column:offset</span>
 <span id="L480" class="LineNr">480 </span>  <span class="Delimiter">}</span>
-<span id="L481" class="LineNr">481 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, cursor-row, cursor-column
+<span id="L481" class="LineNr">481 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, cursor-row, cursor-column
 <span id="L482" class="LineNr">482 </span>]
 <span id="L483" class="LineNr">483 </span>
 <span id="L484" class="LineNr">484 </span><span class="Comment"># ctrl-n - switch focus</span>
@@ -578,7 +578,7 @@ if ('onhashchange' in window) {
 <span id="L515" class="LineNr">515 </span>  <span class="Delimiter">{</span>
 <span id="L516" class="LineNr">516 </span>  <span class="Conceal">¦</span> continue?:bool <span class="Special">&lt;-</span> lesser-than y, bottom
 <span id="L517" class="LineNr">517 </span>  <span class="Conceal">¦</span> <span class="muControl">break-unless</span> continue?
-<span id="L518" class="LineNr">518 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, y, col
+<span id="L518" class="LineNr">518 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, y, col
 <span id="L519" class="LineNr">519 </span>  <span class="Conceal">¦</span> print <a href='../081print.mu.html#L4'>screen</a>, style, color
 <span id="L520" class="LineNr">520 </span>  <span class="Conceal">¦</span> y <span class="Special">&lt;-</span> add y,<span class="Constant"> 1</span>
 <span id="L521" class="LineNr">521 </span>  <span class="Conceal">¦</span> <span class="muControl">loop</span>
diff --git a/html/edit/005-sandbox.mu.html b/html/edit/005-sandbox.mu.html
index ed1860fe..8acb95ef 100644
--- a/html/edit/005-sandbox.mu.html
+++ b/html/edit/005-sandbox.mu.html
@@ -282,7 +282,7 @@ if ('onhashchange' in window) {
 <span id="L219" class="LineNr"> 219 </span><span class="muRecipe">def</span> <a href='005-sandbox.mu.html#L219'>update-status</a> <a href='../081print.mu.html#L4'>screen</a>:&amp;:<a href='../081print.mu.html#L4'>screen</a>, msg:text, color:num<span class="muRecipe"> -&gt; </span><a href='../081print.mu.html#L4'>screen</a>:&amp;:<a href='../081print.mu.html#L4'>screen</a> [
 <span id="L220" class="LineNr"> 220 </span>  <span class="Constant">local-scope</span>
 <span id="L221" class="LineNr"> 221 </span>  <span class="Constant">load-ingredients</span>
-<span id="L222" class="LineNr"> 222 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>,<span class="Constant"> 0</span>,<span class="Constant"> 2</span>
+<span id="L222" class="LineNr"> 222 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>,<span class="Constant"> 0</span>,<span class="Constant"> 2</span>
 <span id="L223" class="LineNr"> 223 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> print <a href='../081print.mu.html#L4'>screen</a>, msg, color, <span class="Constant">238/grey/background</span>
 <span id="L224" class="LineNr"> 224 </span>]
 <span id="L225" class="LineNr"> 225 </span>
@@ -342,13 +342,13 @@ if ('onhashchange' in window) {
 <span id="L279" class="LineNr"> 279 </span>  <span class="Conceal">¦</span> <span class="muControl">break-if</span> hidden?
 <span id="L280" class="LineNr"> 280 </span>  <span class="Conceal">¦</span> <span class="Comment"># render sandbox menu</span>
 <span id="L281" class="LineNr"> 281 </span>  <span class="Conceal">¦</span> row <span class="Special">&lt;-</span> add row,<span class="Constant"> 1</span>
-<span id="L282" class="LineNr"> 282 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, left
+<span id="L282" class="LineNr"> 282 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, left
 <span id="L283" class="LineNr"> 283 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='005-sandbox.mu.html#L325'>render-sandbox-menu</a> <a href='../081print.mu.html#L4'>screen</a>, idx, left, right
 <span id="L284" class="LineNr"> 284 </span>  <span class="Conceal">¦</span> <span class="Comment"># save menu row so we can detect clicks to it later</span>
 <span id="L285" class="LineNr"> 285 </span>  <span class="Conceal">¦</span> *sandbox <span class="Special">&lt;-</span> put *sandbox, <span class="Constant">starting-row-on-screen:offset</span>, row
 <span id="L286" class="LineNr"> 286 </span>  <span class="Conceal">¦</span> <span class="Comment"># render sandbox contents</span>
 <span id="L287" class="LineNr"> 287 </span>  <span class="Conceal">¦</span> row <span class="Special">&lt;-</span> add row,<span class="Constant"> 1</span>
-<span id="L288" class="LineNr"> 288 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, left
+<span id="L288" class="LineNr"> 288 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, left
 <span id="L289" class="LineNr"> 289 </span>  <span class="Conceal">¦</span> sandbox-data:text <span class="Special">&lt;-</span> get *sandbox, <span class="Constant">data:offset</span>
 <span id="L290" class="LineNr"> 290 </span>  <span class="Conceal">¦</span> row, <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='003-shortcuts.mu.html#L1745'>render-code</a> <a href='../081print.mu.html#L4'>screen</a>, sandbox-data, left, right, row
 <span id="L291" class="LineNr"> 291 </span>  <span class="Conceal">¦</span> *sandbox <span class="Special">&lt;-</span> put *sandbox, <span class="Constant">code-ending-row-on-screen:offset</span>, row
@@ -431,7 +431,7 @@ if ('onhashchange' in window) {
 <span id="L368" class="LineNr"> 368 </span>  <span class="Constant">load-ingredients</span>
 <span id="L369" class="LineNr"> 369 </span>  <span class="muControl">return-unless</span> s
 <span id="L370" class="LineNr"> 370 </span>  column:num <span class="Special">&lt;-</span> copy left
-<span id="L371" class="LineNr"> 371 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, column
+<span id="L371" class="LineNr"> 371 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, column
 <span id="L372" class="LineNr"> 372 </span>  <a href='../081print.mu.html#L748'>screen-height</a>:num <span class="Special">&lt;-</span> <a href='../081print.mu.html#L748'>screen-height</a> <a href='../081print.mu.html#L4'>screen</a>
 <span id="L373" class="LineNr"> 373 </span>  i:num <span class="Special">&lt;-</span> copy<span class="Constant"> 0</span>
 <span id="L374" class="LineNr"> 374 </span>  len:num <span class="Special">&lt;-</span> length *s
@@ -457,7 +457,7 @@ if ('onhashchange' in window) {
 <span id="L394" class="LineNr"> 394 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Delimiter">}</span>
 <span id="L395" class="LineNr"> 395 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> row <span class="Special">&lt;-</span> add row,<span class="Constant"> 1</span>
 <span id="L396" class="LineNr"> 396 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> column <span class="Special">&lt;-</span> copy left
-<span id="L397" class="LineNr"> 397 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, column
+<span id="L397" class="LineNr"> 397 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, column
 <span id="L398" class="LineNr"> 398 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> i <span class="Special">&lt;-</span> add i,<span class="Constant"> 1</span>
 <span id="L399" class="LineNr"> 399 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span class="Constant">+next-character</span>
 <span id="L400" class="LineNr"> 400 </span>  <span class="Conceal">¦</span> <span class="Delimiter">}</span>
@@ -470,7 +470,7 @@ if ('onhashchange' in window) {
 <span id="L407" class="LineNr"> 407 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> print <a href='../081print.mu.html#L4'>screen</a>, wrap-icon, <span class="Constant">245/grey</span>
 <span id="L408" class="LineNr"> 408 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> column <span class="Special">&lt;-</span> copy left
 <span id="L409" class="LineNr"> 409 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> row <span class="Special">&lt;-</span> add row,<span class="Constant"> 1</span>
-<span id="L410" class="LineNr"> 410 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, column
+<span id="L410" class="LineNr"> 410 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, column
 <span id="L411" class="LineNr"> 411 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment"># don't increment i</span>
 <span id="L412" class="LineNr"> 412 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span class="Constant">+next-character</span>
 <span id="L413" class="LineNr"> 413 </span>  <span class="Conceal">¦</span> <span class="Delimiter">}</span>
@@ -485,7 +485,7 @@ if ('onhashchange' in window) {
 <span id="L422" class="LineNr"> 422 </span>  <span class="Conceal">¦</span> <span class="muControl">break-if</span> was-at-left?
 <span id="L423" class="LineNr"> 423 </span>  <span class="Conceal">¦</span> row <span class="Special">&lt;-</span> add row,<span class="Constant"> 1</span>
 <span id="L424" class="LineNr"> 424 </span>  <span class="Delimiter">}</span>
-<span id="L425" class="LineNr"> 425 </span>  <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, left
+<span id="L425" class="LineNr"> 425 </span>  move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, left
 <span id="L426" class="LineNr"> 426 </span>]
 <span id="L427" class="LineNr"> 427 </span>
 <span id="L428" class="LineNr"> 428 </span><span class="muScenario">scenario</span> read-text-wraps-barely-long-lines [
@@ -544,7 +544,7 @@ if ('onhashchange' in window) {
 <span id="L481" class="LineNr"> 481 </span>  <span class="muControl">return-unless</span> sandbox-screen
 <span id="L482" class="LineNr"> 482 </span>  <span class="Comment"># print 'screen:'</span>
 <span id="L483" class="LineNr"> 483 </span>  row <span class="Special">&lt;-</span> <a href='005-sandbox.mu.html#L366'>render-text</a> <a href='../081print.mu.html#L4'>screen</a>, <span class="Constant">[screen:]</span>, left, right, <span class="Constant">245/grey</span>, row
-<span id="L484" class="LineNr"> 484 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, left
+<span id="L484" class="LineNr"> 484 </span>  <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, left
 <span id="L485" class="LineNr"> 485 </span>  <span class="Comment"># start printing sandbox-screen</span>
 <span id="L486" class="LineNr"> 486 </span>  column:num <span class="Special">&lt;-</span> copy left
 <span id="L487" class="LineNr"> 487 </span>  s-width:num <span class="Special">&lt;-</span> <a href='../081print.mu.html#L735'>screen-width</a> sandbox-screen
@@ -561,7 +561,7 @@ if ('onhashchange' in window) {
 <span id="L498" class="LineNr"> 498 </span>  <span class="Conceal">¦</span> done? <span class="Special">&lt;-</span> greater-or-equal row, <a href='../081print.mu.html#L748'>screen-height</a>
 <span id="L499" class="LineNr"> 499 </span>  <span class="Conceal">¦</span> <span class="muControl">break-if</span> done?
 <span id="L500" class="LineNr"> 500 </span>  <span class="Conceal">¦</span> column <span class="Special">&lt;-</span> copy left
-<span id="L501" class="LineNr"> 501 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, row, column
+<span id="L501" class="LineNr"> 501 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, row, column
 <span id="L502" class="LineNr"> 502 </span>  <span class="Conceal">¦</span> <span class="Comment"># initial leader for each row: two spaces and a '.'</span>
 <span id="L503" class="LineNr"> 503 </span>  <span class="Conceal">¦</span> space:char <span class="Special">&lt;-</span> copy <span class="Constant">32/space</span>
 <span id="L504" class="LineNr"> 504 </span>  <span class="Conceal">¦</span> print <a href='../081print.mu.html#L4'>screen</a>, space, <span class="Constant">245/grey</span>
@@ -995,7 +995,7 @@ if ('onhashchange' in window) {
 <span id="L932" class="LineNr"> 932 </span>  <span class="Conceal">¦</span> scrolling?:bool <span class="Special">&lt;-</span> greater-or-equal render-from,<span class="Constant"> 0</span>
 <span id="L933" class="LineNr"> 933 </span>  <span class="Conceal">¦</span> <span class="muControl">break-unless</span> scrolling?
 <span id="L934" class="LineNr"> 934 </span>  <span class="Conceal">¦</span> cursor-column:num <span class="Special">&lt;-</span> get *current-sandbox, <span class="Constant">left:offset</span>
-<span id="L935" class="LineNr"> 935 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> <a href='../081print.mu.html#L573'>move-cursor</a> <a href='../081print.mu.html#L4'>screen</a>, <span class="Constant">2/row</span>, cursor-column  <span class="Comment"># highlighted sandbox will always start at row 2</span>
+<span id="L935" class="LineNr"> 935 </span>  <span class="Conceal">¦</span> <a href='../081print.mu.html#L4'>screen</a> <span class="Special">&lt;-</span> move-cursor <a href='../081print.mu.html#L4'>screen</a>, <span class="Constant">2/row</span>, cursor-column  <span class="Comment"># highlighted sandbox will always start at row 2</span>
 <span id="L936" class="LineNr"> 936 </span>  <span class="Conceal">¦</span> <span class="muControl">return</span>
 <span id="L937" class="LineNr"> 937 </span>  <span class="Delimiter">}</span>
 <span id="L938" class="LineNr"> 938 </span>]
diff --git a/sandbox/002-typing.mu b/sandbox/002-typing.mu
index 7c385b6f..c6c8edd5 100644
--- a/sandbox/002-typing.mu
+++ b/sandbox/002-typing.mu
@@ -30,7 +30,7 @@ def editor-event-loop screen:&:screen, console:&:console, editor:&:editor -> scr
     t:touch-event, is-touch?:bool <- maybe-convert e, touch:variant
     {
       break-unless is-touch?
-      move-cursor-in-editor screen, editor, t
+      move-cursor editor, screen, t
       loop +next-event
     }
     # keyboard events
@@ -47,7 +47,7 @@ def editor-event-loop screen:&:screen, console:&:console, editor:&:editor -> scr
 ]
 
 # process click, return if it was on current editor
-def move-cursor-in-editor screen:&:screen, editor:&:editor, t:touch-event -> in-focus?:bool, editor:&:editor [
+def move-cursor editor:&:editor, screen:&:screen, t:touch-event -> in-focus?:bool, editor:&:editor [
   local-scope
   load-ingredients
   return-unless editor, 0/false
@@ -62,7 +62,7 @@ def move-cursor-in-editor screen:&:screen, editor:&:editor, t:touch-event -> in-
   return-if too-far-right?, 0/false
   # position cursor
   <move-cursor-begin>
-  editor <- snap-cursor screen, editor, click-row, click-column
+  editor <- snap-cursor editor, screen, click-row, click-column
   undo-coalesce-tag:num <- copy 0/never
   <move-cursor-end>
   # gain focus
@@ -72,7 +72,7 @@ def move-cursor-in-editor screen:&:screen, editor:&:editor, t:touch-event -> in-
 # Variant of 'render' that only moves the cursor (coordinates and
 # before-cursor). If it's past the end of a line, it 'slides' it left. If it's
 # past the last line it positions at end of last line.
-def snap-cursor screen:&:screen, editor:&:editor, target-row:num, target-column:num -> editor:&:editor [
+def snap-cursor editor:&:editor, screen:&:screen, target-row:num, target-column:num -> editor:&:editor [
   local-scope
   load-ingredients
   return-unless editor
diff --git a/sandbox/004-programming-environment.mu b/sandbox/004-programming-environment.mu
index 9e28a215..ab91cdaf 100644
--- a/sandbox/004-programming-environment.mu
+++ b/sandbox/004-programming-environment.mu
@@ -64,7 +64,7 @@ def event-loop screen:&:screen, console:&:console, env:&:environment, resources:
       click-column:num <- get t, column:offset
       # later exceptions for non-editor touches will go here
       <global-touch>
-      move-cursor-in-editor screen, current-sandbox, t
+      move-cursor current-sandbox, screen, t
       screen <- update-cursor screen, current-sandbox, env
       loop +next-event
     }