about summary refs log tree commit diff stats
path: root/sandbox
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox')
-rw-r--r--sandbox/002-typing.mu40
-rw-r--r--sandbox/003-shortcuts.mu74
-rw-r--r--sandbox/004-programming-environment.mu2
-rw-r--r--sandbox/005-sandbox.mu96
-rw-r--r--sandbox/006-sandbox-copy.mu36
-rw-r--r--sandbox/007-sandbox-delete.mu48
-rw-r--r--sandbox/008-sandbox-edit.mu34
-rw-r--r--sandbox/009-sandbox-test.mu8
-rw-r--r--sandbox/010-sandbox-trace.mu24
-rw-r--r--sandbox/011-errors.mu48
-rw-r--r--sandbox/012-editor-undo.mu118
11 files changed, 264 insertions, 264 deletions
diff --git a/sandbox/002-typing.mu b/sandbox/002-typing.mu
index 9fb5042e..2f94f362 100644
--- a/sandbox/002-typing.mu
+++ b/sandbox/002-typing.mu
@@ -275,7 +275,7 @@ def editor-render screen:&:screen, editor:&:editor -> screen:&:screen, editor:&:
   row:num, column:num <- render screen, editor
   clear-line-until screen, right
   row <- add row, 1
-  draw-horizontal screen, row, left, right, 9548/horizontal-dashed
+  draw-horizontal screen, row, left, right, 9480/horizontal-dotted
   row <- add row, 1
   clear-screen-from screen, row, left, left, right
 ]
@@ -292,7 +292,7 @@ scenario editor-handles-empty-event-queue [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -314,7 +314,7 @@ scenario editor-handles-mouse-clicks [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -407,7 +407,7 @@ scenario editor-handles-mouse-clicks-outside-column [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
     .          .
   ]
   memory-should-contain [
@@ -454,7 +454,7 @@ scenario editor-inserts-characters-into-empty-editor [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
     .          .
   ]
   check-trace-count-for-label 3, [print-character]
@@ -478,7 +478,7 @@ scenario editor-inserts-characters-at-cursor [
   screen-should-contain [
     .          .
     .0adbc     .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 7, [print-character]  # 4 for first letter, 3 for second
@@ -500,7 +500,7 @@ scenario editor-inserts-characters-at-cursor-2 [
   screen-should-contain [
     .          .
     .abcd      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 1, [print-character]
@@ -525,7 +525,7 @@ d]
     .          .
     .abce      .
     .d         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 1, [print-character]
@@ -547,7 +547,7 @@ scenario editor-inserts-characters-at-cursor-3 [
   screen-should-contain [
     .          .
     .abcd      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 1, [print-character]
@@ -572,7 +572,7 @@ d]
     .          .
     .abc       .
     .de        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 1, [print-character]
@@ -597,7 +597,7 @@ d]
     .          .
     .abc       .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 2, [print-character]
@@ -617,7 +617,7 @@ scenario editor-moves-cursor-after-inserting-characters [
   screen-should-contain [
     .          .
     .01ab      .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
     .          .
   ]
 ]
@@ -640,7 +640,7 @@ scenario editor-wraps-line-on-insert [
   screen-should-contain [
     .     .
     .eabc .
-    .╌╌╌╌╌.
+    .┈┈┈┈┈.
     .     .
     .     .
   ]
@@ -656,7 +656,7 @@ scenario editor-wraps-line-on-insert [
     .     .
     .efab↩.
     .c    .
-    .╌╌╌╌╌.
+    .┈┈┈┈┈.
     .     .
   ]
 ]
@@ -762,7 +762,7 @@ scenario editor-wraps-cursor-after-inserting-characters-in-middle-of-line [
     .          .
     .abcf↩     .
     .de        .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
     .          .
   ]
   memory-should-contain [
@@ -796,7 +796,7 @@ xyz]
     .abcd↩     .
     .e         .
     .xyz       .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
   ]
 ]
 
@@ -817,7 +817,7 @@ scenario editor-wraps-cursor-to-left-margin [
     .          .
     .  abc0↩   .
     .  1de     .
-    .  ╌╌╌╌╌   .
+    .  ┈┈┈┈┈   .
     .          .
   ]
   memory-should-contain [
@@ -851,7 +851,7 @@ scenario editor-moves-cursor-down-after-inserting-newline [
     .          .
     .0         .
     .1abc      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -957,7 +957,7 @@ scenario editor-moves-cursor-down-after-inserting-newline-2 [
     .          .
     . 0        .
     . 1abc     .
-    . ╌╌╌╌╌╌╌╌╌.
+    . ┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -985,7 +985,7 @@ scenario editor-clears-previous-line-completely-after-inserting-newline [
     .          .
     .abcd↩     .
     .e         .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
   ]
 ]
 
diff --git a/sandbox/003-shortcuts.mu b/sandbox/003-shortcuts.mu
index 005cefd6..7c5d0df2 100644
--- a/sandbox/003-shortcuts.mu
+++ b/sandbox/003-shortcuts.mu
@@ -57,7 +57,7 @@ scenario editor-handles-backspace-key [
   screen-should-contain [
     .          .
     .bc        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -229,7 +229,7 @@ cd]
   screen-should-contain [
     .          .
     .abcd      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -260,7 +260,7 @@ ghi jkl]
     .          .
     .abc defgh↩.
     .i jkl     .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -276,7 +276,7 @@ scenario editor-wraps-long-lines-on-backspace [
     .          .
     .abc def↩  .
     . ghij     .
-    .╌╌╌╌╌╌╌╌  .
+    .┈┈┈┈┈┈┈┈  .
   ]
   $clear-trace
   # position the cursor somewhere in the middle of the top screen line and hit backspace
@@ -292,7 +292,7 @@ scenario editor-wraps-long-lines-on-backspace [
     .          .
     .abcdef ↩  .
     .ghij      .
-    .╌╌╌╌╌╌╌╌  .
+    .┈┈┈┈┈┈┈┈  .
     .          .
   ]
 ]
@@ -314,7 +314,7 @@ scenario editor-handles-delete-key [
   screen-should-contain [
     .          .
     .bc        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 3, [print-character]  # length of original line to overwrite
@@ -328,7 +328,7 @@ scenario editor-handles-delete-key [
   screen-should-contain [
     .          .
     .c         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 2, [print-character]  # new length to overwrite
@@ -404,7 +404,7 @@ scenario editor-moves-cursor-right-with-key [
   screen-should-contain [
     .          .
     .a0bc      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 3, [print-character]  # 0 and following characters
@@ -513,7 +513,7 @@ d]
     .          .
     .abc       .
     .0d        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 2, [print-character]  # new length of second line
@@ -540,7 +540,7 @@ d]
     .          .
     . abc      .
     . 0d       .
-    . ╌╌╌╌╌╌╌╌╌.
+    . ┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -564,7 +564,7 @@ scenario editor-moves-cursor-to-next-wrapped-line-with-right-arrow [
     .          .
     .abcd↩     .
     .ef        .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
     .          .
   ]
   memory-should-contain [
@@ -630,7 +630,7 @@ scenario editor-moves-cursor-to-next-wrapped-line-with-right-arrow-3 [
     .          .
     . abcd↩    .
     . ef       .
-    . ╌╌╌╌╌    .
+    . ┈┈┈┈┈    .
     .          .
   ]
   memory-should-contain [
@@ -662,7 +662,7 @@ d]
     .          .
     .abc       .
     .0d        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 2, [print-character]
@@ -689,7 +689,7 @@ scenario editor-moves-cursor-left-with-key [
   screen-should-contain [
     .          .
     .a0bc      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 3, [print-character]
@@ -765,7 +765,7 @@ g]
     .abc       .
     .def0      .
     .g         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
   check-trace-count-for-label 1, [print-character]  # just the '0'
 ]
@@ -794,7 +794,7 @@ g]
     .0abc      .
     .def       .
     .g         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
   check-trace-count-for-label 4, [print-character]  # length of first line
 ]
@@ -823,7 +823,7 @@ d]
     .abc       .
     .0         .
     .d         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
   check-trace-count-for-label 1, [print-character]  # just the '0'
 ]
@@ -839,7 +839,7 @@ scenario editor-moves-across-screen-lines-across-wrap-with-left-arrow [
     .          .
     .abcd↩     .
     .ef        .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
     .          .
   ]
   # position cursor right after empty line
@@ -873,7 +873,7 @@ g]
     .abcd↩     .
     .ef        .
     .g         .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
   ]
   # position cursor right after empty line
   assume-console [
@@ -905,7 +905,7 @@ e]
     .          .
     .abcd      .
     .e         .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
     .          .
   ]
   # position cursor right after empty line
@@ -961,7 +961,7 @@ def]
     .          .
     .a0bc      .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1077,7 +1077,7 @@ def]
     .          .
     .ab0       .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1114,7 +1114,7 @@ def]
     .          .
     .0         .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1155,7 +1155,7 @@ ghi]
     .abc       .
     .0def      .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -1194,7 +1194,7 @@ def]
     .          .
     .abc       .
     .0def      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1285,7 +1285,7 @@ de]
     .          .
     .abc       .
     .de0       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1488,7 +1488,7 @@ scenario editor-moves-to-end-of-line-with-ctrl-e [
     .          .
     .123z      .
     .456       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 1, [print-character]
@@ -1639,7 +1639,7 @@ scenario editor-deletes-to-start-of-line-with-ctrl-u [
     .          .
     .123       .
     .6         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1703,7 +1703,7 @@ scenario editor-deletes-to-start-of-line-with-ctrl-u-2 [
     .          .
     .3         .
     .456       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1727,7 +1727,7 @@ scenario editor-deletes-to-start-of-line-with-ctrl-u-3 [
     .          .
     .          .
     .456       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1751,7 +1751,7 @@ scenario editor-deletes-to-start-of-final-line-with-ctrl-u [
     .          .
     .123       .
     .          .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1777,7 +1777,7 @@ scenario editor-deletes-to-end-of-line-with-ctrl-k [
     .          .
     .1         .
     .456       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1833,7 +1833,7 @@ scenario editor-deletes-to-end-of-line-with-ctrl-k-2 [
     .          .
     .123       .
     .4         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1857,7 +1857,7 @@ scenario editor-deletes-to-end-of-line-with-ctrl-k-3 [
     .          .
     .12        .
     .456       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1881,7 +1881,7 @@ scenario editor-deletes-to-end-of-line-with-ctrl-k-4 [
     .          .
     .123       .
     .456       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1905,7 +1905,7 @@ scenario editor-deletes-to-end-of-line-with-ctrl-k-5 [
     .          .
     .123       .
     .45        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1929,7 +1929,7 @@ scenario editor-deletes-to-end-of-line-with-ctrl-k-6 [
     .          .
     .123       .
     .456       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
diff --git a/sandbox/004-programming-environment.mu b/sandbox/004-programming-environment.mu
index af136deb..f39f0b35 100644
--- a/sandbox/004-programming-environment.mu
+++ b/sandbox/004-programming-environment.mu
@@ -269,7 +269,7 @@ def render-sandbox-side screen:&:screen, env:&:environment, {render-editor: (rec
   clear-line-until screen, right
   row <- add row, 1
   # draw solid line after code (you'll see why in later layers)
-  draw-horizontal screen, row, left, right
+  draw-horizontal screen, row, left, right, 9473/horizontal
   row <- add row, 1
   clear-screen-from screen, row, left, left, right
 ]
diff --git a/sandbox/005-sandbox.mu b/sandbox/005-sandbox.mu
index 45dc259c..cd37e7a8 100644
--- a/sandbox/005-sandbox.mu
+++ b/sandbox/005-sandbox.mu
@@ -45,12 +45,12 @@ scenario run-and-show-results [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .divide-with-remainder 11, 3                       .
     .3                                                 .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   screen-should-contain-in-color 7/white, [
@@ -67,12 +67,12 @@ scenario run-and-show-results [
   screen-should-contain-in-color 245/grey, [
     .                                                  .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
     .                                                  .
     .3                                                 .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # run another command
@@ -88,16 +88,16 @@ scenario run-and-show-results [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .divide-with-remainder 11, 3                       .
     .3                                                 .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -236,7 +236,7 @@ def! render-sandbox-side screen:&:screen, env:&:environment, {render-editor: (re
     row <- add row, 1
   }
   # render sandboxes
-  draw-horizontal screen, row, left, right
+  draw-horizontal screen, row, left, right, 9473/horizontal-double
   sandbox:&:sandbox <- get *env, sandbox:offset
   row, screen <- render-sandboxes screen, sandbox, left, right, row, render-from, 0, env
   clear-rest-of-screen screen, row, left, right
@@ -283,7 +283,7 @@ def render-sandboxes screen:&:screen, sandbox:&:sandbox, left:num, right:num, ro
     at-bottom?:bool <- greater-or-equal row, screen-height
     return-if at-bottom?
     # draw solid line after sandbox
-    draw-horizontal screen, row, left, right
+    draw-horizontal screen, row, left, right, 9473/horizontal-double
   }
   # if hidden, reset row attributes
   {
@@ -521,11 +521,11 @@ reply z
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo                                               .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # make a change (incrementing one of the args to 'add'), then rerun
@@ -545,11 +545,11 @@ return z
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo                                               .
     .5                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -571,7 +571,7 @@ scenario run-instruction-manages-screen-per-sandbox [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .print-integer screen, 4                           .
     .screen:                                           .
@@ -580,7 +580,7 @@ scenario run-instruction-manages-screen-per-sandbox [
     .  .                              .                .
     .  .                              .                .
     .  .                              .                .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -639,11 +639,11 @@ scenario scrolling-down-past-bottom-of-sandbox-editor [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # hit 'page-down'
@@ -659,11 +659,11 @@ scenario scrolling-down-past-bottom-of-sandbox-editor [
   # cursor moves to first sandbox
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .␣   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # hit 'page-up'
@@ -679,11 +679,11 @@ scenario scrolling-down-past-bottom-of-sandbox-editor [
   screen-should-contain [
     .                               run (F4)           .
     .␣                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -781,15 +781,15 @@ scenario scrolling-through-multiple-sandboxes [
   screen-should-contain [
     .                               run (F4)           .
     .␣                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # hit 'page-down'
@@ -805,15 +805,15 @@ scenario scrolling-through-multiple-sandboxes [
   # cursor moves to first sandbox
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .␣   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # hit 'page-down' again
@@ -826,11 +826,11 @@ scenario scrolling-through-multiple-sandboxes [
   # just second sandbox displayed
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # hit 'page-down' again
@@ -843,11 +843,11 @@ scenario scrolling-through-multiple-sandboxes [
   # no change
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # hit 'page-up'
@@ -860,15 +860,15 @@ scenario scrolling-through-multiple-sandboxes [
   # back to displaying both sandboxes without editor
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # hit 'page-up' again
@@ -884,15 +884,15 @@ scenario scrolling-through-multiple-sandboxes [
   screen-should-contain [
     .                               run (F4)           .
     .␣                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # hit 'page-up' again
@@ -908,15 +908,15 @@ scenario scrolling-through-multiple-sandboxes [
   screen-should-contain [
     .                               run (F4)           .
     .␣                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -938,11 +938,11 @@ scenario scrolling-manages-sandbox-index-correctly [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # hit 'page-down' and 'page-up' a couple of times. sandbox index should be stable
@@ -956,11 +956,11 @@ scenario scrolling-manages-sandbox-index-correctly [
   # cursor moves to first sandbox
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # hit 'page-up' again
@@ -974,11 +974,11 @@ scenario scrolling-manages-sandbox-index-correctly [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # hit 'page-down'
@@ -992,11 +992,11 @@ scenario scrolling-manages-sandbox-index-correctly [
   # cursor moves to first sandbox
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .  # no change
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
diff --git a/sandbox/006-sandbox-copy.mu b/sandbox/006-sandbox-copy.mu
index fdc1409a..784ae1eb 100644
--- a/sandbox/006-sandbox-copy.mu
+++ b/sandbox/006-sandbox-copy.mu
@@ -13,11 +13,11 @@ scenario copy-a-sandbox-to-editor [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
     .                                                  .
     .                                                  .
@@ -33,11 +33,11 @@ scenario copy-a-sandbox-to-editor [
   screen-should-contain [
     .                               run (F4)           .
     .add 1, 1                                          .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
     .                                                  .
     .                                                  .
@@ -52,11 +52,11 @@ scenario copy-a-sandbox-to-editor [
   screen-should-contain [
     .                               run (F4)           .
     .0add 1, 1                                         .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
     .                                                  .
     .                                                  .
@@ -75,11 +75,11 @@ scenario copy-a-sandbox-to-editor-2 [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
     .                                                  .
     .                                                  .
@@ -95,11 +95,11 @@ scenario copy-a-sandbox-to-editor-2 [
   screen-should-contain [
     .                               run (F4)           .
     .add 1, 1                                          .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
     .                                                  .
     .                                                  .
@@ -114,11 +114,11 @@ scenario copy-a-sandbox-to-editor-2 [
   screen-should-contain [
     .                               run (F4)           .
     .0add 1, 1                                         .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
     .                                                  .
     .                                                  .
@@ -226,11 +226,11 @@ scenario copy-fails-if-sandbox-editor-not-empty [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # type something into the sandbox editor, then click on the 'copy' button
@@ -246,11 +246,11 @@ scenario copy-fails-if-sandbox-editor-not-empty [
   screen-should-contain [
     .                               run (F4)           .
     .0                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # cursor should be in the right place
@@ -263,11 +263,11 @@ scenario copy-fails-if-sandbox-editor-not-empty [
   screen-should-contain [
     .                               run (F4)           .
     .01                                                .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
diff --git a/sandbox/007-sandbox-delete.mu b/sandbox/007-sandbox-delete.mu
index dba40a8f..ff04344f 100644
--- a/sandbox/007-sandbox-delete.mu
+++ b/sandbox/007-sandbox-delete.mu
@@ -16,16 +16,16 @@ scenario deleting-sandboxes [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .divide-with-remainder 11, 3                       .
     .3                                                 .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # delete second sandbox by clicking on left edge of 'delete' button
@@ -38,11 +38,11 @@ scenario deleting-sandboxes [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # delete first sandbox by clicking at right edge of 'delete' button
@@ -55,7 +55,7 @@ scenario deleting-sandboxes [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -162,15 +162,15 @@ scenario deleting-sandbox-after-scroll [
   event-loop screen, console, env
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
   ]
   # delete the second sandbox
   assume-console [
@@ -182,11 +182,11 @@ scenario deleting-sandbox-after-scroll [
   # second sandbox shows in editor; scroll resets to display first sandbox
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -210,15 +210,15 @@ scenario deleting-top-sandbox-after-scroll [
   event-loop screen, console, env
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
   ]
   # delete the second sandbox
   assume-console [
@@ -230,11 +230,11 @@ scenario deleting-top-sandbox-after-scroll [
   # second sandbox shows in editor; scroll resets to display first sandbox
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -259,11 +259,11 @@ scenario deleting-final-sandbox-after-scroll [
   event-loop screen, console, env
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # delete the second sandbox
@@ -277,11 +277,11 @@ scenario deleting-final-sandbox-after-scroll [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -305,11 +305,11 @@ scenario deleting-updates-sandbox-count [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
@@ -326,11 +326,11 @@ scenario deleting-updates-sandbox-count [
   # shouldn't go past last sandbox
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
diff --git a/sandbox/008-sandbox-edit.mu b/sandbox/008-sandbox-edit.mu
index 42778faa..533e664c 100644
--- a/sandbox/008-sandbox-edit.mu
+++ b/sandbox/008-sandbox-edit.mu
@@ -13,11 +13,11 @@ scenario clicking-on-a-sandbox-moves-it-to-editor [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # click somewhere on the sandbox
@@ -31,7 +31,7 @@ scenario clicking-on-a-sandbox-moves-it-to-editor [
   screen-should-contain [
     .                               run (F4)           .
     .add 2, 2                                          .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # cursor should be in the right place
@@ -44,7 +44,7 @@ scenario clicking-on-a-sandbox-moves-it-to-editor [
   screen-should-contain [
     .                               run (F4)           .
     .0add 2, 2                                         .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -114,7 +114,7 @@ scenario sandbox-with-print-can-be-edited [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .print-integer screen, 4                           .
     .screen:                                           .
@@ -123,7 +123,7 @@ scenario sandbox-with-print-can-be-edited [
     .  .                              .                .
     .  .                              .                .
     .  .                              .                .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # edit the sandbox
@@ -136,7 +136,7 @@ scenario sandbox-with-print-can-be-edited [
   screen-should-contain [
     .                               run (F4)           .
     .print-integer screen, 4                           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
     .                                                  .
   ]
@@ -162,11 +162,11 @@ scenario editing-sandbox-after-scrolling-resets-scroll [
   event-loop screen, console, env
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # edit the second sandbox
@@ -180,11 +180,11 @@ scenario editing-sandbox-after-scrolling-resets-scroll [
   screen-should-contain [
     .                               run (F4)           .
     .add 2, 2                                          .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -208,11 +208,11 @@ scenario editing-sandbox-updates-sandbox-count [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
   ]
   # edit the second sandbox, then resave
@@ -227,11 +227,11 @@ scenario editing-sandbox-updates-sandbox-count [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 1, 1                                          .
     .2                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
   ]
   # now try to scroll past end
@@ -246,11 +246,11 @@ scenario editing-sandbox-updates-sandbox-count [
   # screen should show just final sandbox
   screen-should-contain [
     .                               run (F4)           .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .1   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
diff --git a/sandbox/009-sandbox-test.mu b/sandbox/009-sandbox-test.mu
index f27b4a06..eb7fc274 100644
--- a/sandbox/009-sandbox-test.mu
+++ b/sandbox/009-sandbox-test.mu
@@ -18,11 +18,11 @@ recipe foo [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo                                               .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # click on the '4' in the result
@@ -50,11 +50,11 @@ recipe foo [
   screen-should-contain [
     .                               run (F4)           .
     .␣                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo                                               .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # now change the result
diff --git a/sandbox/010-sandbox-trace.mu b/sandbox/010-sandbox-trace.mu
index 15a4f931..5116b43b 100644
--- a/sandbox/010-sandbox-trace.mu
+++ b/sandbox/010-sandbox-trace.mu
@@ -13,10 +13,10 @@ scenario sandbox-click-on-code-toggles-app-trace [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .stash [abc]                                       .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # click on the code in the sandbox
@@ -32,7 +32,7 @@ scenario sandbox-click-on-code-toggles-app-trace [
   screen-should-contain [
     .                               run (F4)           .
     .␣                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .stash [abc]                                       .
     .abc                                               .
@@ -40,7 +40,7 @@ scenario sandbox-click-on-code-toggles-app-trace [
   screen-should-contain-in-color 245/grey, [
     .                                                  .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
     .                                                  .
     .abc                                               .
@@ -57,10 +57,10 @@ scenario sandbox-click-on-code-toggles-app-trace [
   screen-should-contain [
     .                               run (F4)           .
     .␣                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .stash [abc]                                       .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -80,12 +80,12 @@ add 2, 2]
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .stash [abc]                                       .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # click on the code in the sandbox
@@ -99,14 +99,14 @@ add 2, 2]
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .stash [abc]                                       .
     .add 2, 2                                          .
     .abc                                               .
     .7 instructions run                                .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
   ]
 ]
 
@@ -124,7 +124,7 @@ scenario clicking-on-app-trace-does-nothing [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .stash 123456789                                   .
     .123456789                                         .
@@ -140,7 +140,7 @@ scenario clicking-on-app-trace-does-nothing [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .stash 123456789                                   .
     .123456789                                         .
diff --git a/sandbox/011-errors.mu b/sandbox/011-errors.mu
index bd6d4e7c..b420ed6b 100644
--- a/sandbox/011-errors.mu
+++ b/sandbox/011-errors.mu
@@ -142,7 +142,7 @@ recipe foo [
   screen-should-contain [
     .  errors found                 run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo                                               .
     .foo: unknown element 'foo' in container 'number'  .
@@ -224,11 +224,11 @@ scenario run-hides-errors-from-past-sandboxes [
   screen-should-contain [
     .                               run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .add 2, 2                                          .
     .4                                                 .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -252,12 +252,12 @@ z <- add x, y
   screen-should-contain [
     .  errors found (0)             run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo 2                                             .
     .foo_2: 'add' requires number ingredients, but got↩.
     . 'y'                                              .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # now rerun everything
@@ -271,12 +271,12 @@ z <- add x, y
   screen-should-contain [
     .  errors found (0)             run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo 2                                             .
     .foo_3: 'add' requires number ingredients, but got↩.
     . 'y'                                              .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -348,7 +348,7 @@ recipe foo [
   screen-should-contain [
     .  errors found                 run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo                                               .
     .foo: missing type for 'x' in 'x <- copy 0'        .
@@ -374,12 +374,12 @@ recipe foo \\[
   screen-should-contain [
     .  errors found                 run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo                                               .
     .9: unbalanced '\\[' for recipe                      .
     .9: unbalanced '\\[' for recipe                      .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -404,7 +404,7 @@ recipe foo [
   screen-should-contain [
     .  errors found                 run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo                                               .
     .foo: first ingredient of 'get' should be a contai↩.
@@ -433,7 +433,7 @@ recipe foo [
   screen-should-contain [
     .  errors found                 run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo                                               .
     .foo: second ingredient of 'get' should have type ↩.
@@ -459,7 +459,7 @@ recipe foo [
   screen-should-contain [
     .  errors found                 run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo                                               .
     .foo: use before set: 'y'                          .
@@ -474,7 +474,7 @@ recipe foo [
   screen-should-contain [
     .  errors found                 run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo                                               .
     .foo: use before set: 'y'                          .
@@ -496,12 +496,12 @@ scenario run-instruction-and-print-errors [
   screen-should-contain [
     .  errors found (0)             run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .get 1:&:point, 1:offset                           .
     .first ingredient of 'get' should be a container, ↩.
     .but got '1:&:point'                               .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   screen-should-contain-in-color 1/red, [
@@ -536,13 +536,13 @@ scenario run-instruction-and-print-errors-only-once [
   screen-should-contain [
     .  errors found (0)             run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .get 1234:num, foo:offset                          .
     .unknown element 'foo' in container 'number'       .
     .first ingredient of 'get' should be a container, ↩.
     .but got '1234:num'                                .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -566,13 +566,13 @@ loop
   screen-should-contain [
     .  errors found (0)             run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .{                                                 .
     .loop                                              .
     .}                                                 .
     .took too long!                                    .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
@@ -600,12 +600,12 @@ reply b
   screen-should-contain [
     .  errors found (0)             run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo 4, 0                                          .
     .foo: divide by zero in '_, c:num <- divide-with-r↩.
     .emainder a, b'                                    .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
   # click on the call in the sandbox
@@ -619,14 +619,14 @@ reply b
   screen-should-contain [
     .  errors found (0)             run (F4)           .
     .                                                  .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .0   edit           copy           delete          .
     .foo 4, 0                                          .
     .dividing by 0                                     .
     .14 instructions run                               .
     .foo: divide by zero in '_, c:num <- divide-with-r↩.
     .emainder a, b'                                    .
-    .──────────────────────────────────────────────────.
+    .━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
     .                                                  .
   ]
 ]
diff --git a/sandbox/012-editor-undo.mu b/sandbox/012-editor-undo.mu
index 368ef4bb..ce8c9e21 100644
--- a/sandbox/012-editor-undo.mu
+++ b/sandbox/012-editor-undo.mu
@@ -119,7 +119,7 @@ scenario editor-can-undo-typing [
   screen-should-contain [
     .          .
     .          .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # cursor should be in the right place
@@ -132,7 +132,7 @@ scenario editor-can-undo-typing [
   screen-should-contain [
     .          .
     .1         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -249,7 +249,7 @@ scenario editor-can-undo-typing-multiple [
   screen-should-contain [
     .          .
     .          .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -268,7 +268,7 @@ scenario editor-can-undo-typing-multiple-2 [
   screen-should-contain [
     .          .
     .012a      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # undo
@@ -282,7 +282,7 @@ scenario editor-can-undo-typing-multiple-2 [
   screen-should-contain [
     .          .
     .a         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # cursor should be in the right place
@@ -295,7 +295,7 @@ scenario editor-can-undo-typing-multiple-2 [
   screen-should-contain [
     .          .
     .3a        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -316,7 +316,7 @@ scenario editor-can-undo-typing-enter [
     .          .
     .  abc     .
     .          .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # line is indented
@@ -343,7 +343,7 @@ scenario editor-can-undo-typing-enter [
   screen-should-contain [
     .          .
     .  abc     .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # cursor should be at end of line
@@ -356,7 +356,7 @@ scenario editor-can-undo-typing-enter [
   screen-should-contain [
     .          .
     .  abc1    .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -377,7 +377,7 @@ scenario editor-redo-typing [
   screen-should-contain [
     .          .
     .a         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # redo
@@ -391,7 +391,7 @@ scenario editor-redo-typing [
   screen-should-contain [
     .          .
     .012a      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # cursor should be in the right place
@@ -404,7 +404,7 @@ scenario editor-redo-typing [
   screen-should-contain [
     .          .
     .0123a     .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -441,7 +441,7 @@ scenario editor-redo-typing-empty [
   screen-should-contain [
     .          .
     .          .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # redo
@@ -455,7 +455,7 @@ scenario editor-redo-typing-empty [
   screen-should-contain [
     .          .
     .012       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # cursor should be in the right place
@@ -468,7 +468,7 @@ scenario editor-redo-typing-empty [
   screen-should-contain [
     .          .
     .0123      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -497,7 +497,7 @@ ghi]
     .0abc      .
     .def       .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
   # redo
   assume-console [
@@ -512,7 +512,7 @@ ghi]
     .0abc      .
     .def       .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -537,7 +537,7 @@ scenario editor-can-redo-typing-and-enter-and-tab [
     .          .
     .  ab  cd  .
     .    efg   .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -564,7 +564,7 @@ scenario editor-can-redo-typing-and-enter-and-tab [
     .          .
     .  ab  cd  .
     .          .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # undo again
@@ -584,7 +584,7 @@ scenario editor-can-redo-typing-and-enter-and-tab [
   screen-should-contain [
     .          .
     .  ab  cd  .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # undo again
@@ -604,7 +604,7 @@ scenario editor-can-redo-typing-and-enter-and-tab [
   screen-should-contain [
     .          .
     .          .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # redo
@@ -624,7 +624,7 @@ scenario editor-can-redo-typing-and-enter-and-tab [
   screen-should-contain [
     .          .
     .  ab  cd  .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # redo again
@@ -645,7 +645,7 @@ scenario editor-can-redo-typing-and-enter-and-tab [
     .          .
     .  ab  cd  .
     .          .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # redo again
@@ -666,7 +666,7 @@ scenario editor-can-redo-typing-and-enter-and-tab [
     .          .
     .  ab  cd  .
     .    efg   .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -713,7 +713,7 @@ ghi]
     .1abc      .
     .def       .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -805,7 +805,7 @@ ghi]
     .abc       .
     .def       .
     .g1hi      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -856,7 +856,7 @@ ghi]
     .abc       .
     .def       .
     .g1hi      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -901,7 +901,7 @@ ghi]
     .abc       .
     .d1ef      .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -946,7 +946,7 @@ ghi]
     .abc       .
     .d1ef      .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -991,7 +991,7 @@ ghi]
     .abc       .
     .d1ef      .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -1036,7 +1036,7 @@ ghi]
     .abc       .
     .d1ef      .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -1081,7 +1081,7 @@ ghi]
     .abc       .
     .d1ef      .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -1180,7 +1180,7 @@ ghi]
     .abc       .
     .def       .
     .g1hi      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -1215,7 +1215,7 @@ scenario editor-separates-undo-insert-from-undo-cursor-move [
   screen-should-contain [
     .          .
     .adbc      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -1235,7 +1235,7 @@ scenario editor-separates-undo-insert-from-undo-cursor-move [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -1255,7 +1255,7 @@ scenario editor-separates-undo-insert-from-undo-cursor-move [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -1275,7 +1275,7 @@ scenario editor-separates-undo-insert-from-undo-cursor-move [
   screen-should-contain [
     .          .
     .          .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -1295,7 +1295,7 @@ scenario editor-separates-undo-insert-from-undo-cursor-move [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -1315,7 +1315,7 @@ scenario editor-separates-undo-insert-from-undo-cursor-move [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # cursor moves
@@ -1336,7 +1336,7 @@ scenario editor-separates-undo-insert-from-undo-cursor-move [
   screen-should-contain [
     .          .
     .adbc      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -1363,7 +1363,7 @@ scenario editor-can-undo-and-redo-backspace [
   screen-should-contain [
     .          .
     .a         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -1388,7 +1388,7 @@ scenario editor-can-undo-and-redo-backspace [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # redo
@@ -1407,7 +1407,7 @@ scenario editor-can-undo-and-redo-backspace [
   screen-should-contain [
     .          .
     .a         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1511,7 +1511,7 @@ scenario editor-can-undo-and-redo-delete [
   screen-should-contain [
     .          .
     .af        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -1536,7 +1536,7 @@ scenario editor-can-undo-and-redo-delete [
   screen-should-contain [
     .          .
     .adef      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # undo backspace
@@ -1555,7 +1555,7 @@ scenario editor-can-undo-and-redo-delete [
   screen-should-contain [
     .          .
     .abdef     .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # undo first delete
@@ -1574,7 +1574,7 @@ scenario editor-can-undo-and-redo-delete [
   screen-should-contain [
     .          .
     .abcdef    .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # redo first delete
@@ -1594,7 +1594,7 @@ scenario editor-can-undo-and-redo-delete [
   screen-should-contain [
     .          .
     .abdef     .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # redo backspace
@@ -1614,7 +1614,7 @@ scenario editor-can-undo-and-redo-delete [
   screen-should-contain [
     .          .
     .adef      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # redo deletes
@@ -1634,7 +1634,7 @@ scenario editor-can-undo-and-redo-delete [
   screen-should-contain [
     .          .
     .af        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1699,7 +1699,7 @@ def]
     .          .
     .a         .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -1719,7 +1719,7 @@ def]
     .          .
     .abc       .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -1740,7 +1740,7 @@ def]
     .          .
     .a         .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -1760,7 +1760,7 @@ def]
     .          .
     .a1        .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1802,7 +1802,7 @@ def]
     .          .
     .c         .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -1822,7 +1822,7 @@ def]
     .          .
     .abc       .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -1843,7 +1843,7 @@ def]
     .          .
     .c         .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -1863,7 +1863,7 @@ def]
     .          .
     .1c        .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1902,7 +1902,7 @@ scenario editor-can-undo-and-redo-ctrl-u-2 [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]