about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-10-08 23:58:56 -0700
committerKartik K. Agaram <vc@akkartik.com>2016-10-08 23:58:56 -0700
commit71056d6150d2b09241a86cbdf37086265291a358 (patch)
tree6c1a6e3b77c36cc04ddf8d4ccec02047bbc3c0e1
parent3315a7d3bb8560bad215febe7a69187707dac4e3 (diff)
downloadmu-71056d6150d2b09241a86cbdf37086265291a358.tar.gz
3489
Revert commit 3457, where I switched the unicode characters used in the
edit/ app to something that doesn't render double-wide in html. It turns
out that the new unicode characters made iTerm2 sluggish in alt-tabbing
between windows. (Commit 3488 only fixed the screen-clearing issue.)

I haven't reverted the html files. I'm going to redo commit 3457 next so
the html files continue to render like they do now.
-rw-r--r--edit/002-typing.mu40
-rw-r--r--edit/003-shortcuts.mu92
-rw-r--r--edit/004-programming-environment.mu54
-rw-r--r--edit/005-sandbox.mu342
-rw-r--r--edit/006-sandbox-copy.mu126
-rw-r--r--edit/007-sandbox-delete.mu152
-rw-r--r--edit/008-sandbox-edit.mu182
-rw-r--r--edit/009-sandbox-test.mu32
-rw-r--r--edit/010-sandbox-trace.mu96
-rw-r--r--edit/011-errors.mu264
-rw-r--r--edit/012-editor-undo.mu122
-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
22 files changed, 1015 insertions, 1015 deletions
diff --git a/edit/002-typing.mu b/edit/002-typing.mu
index 9fb5042e..2f94f362 100644
--- a/edit/002-typing.mu
+++ b/edit/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/edit/003-shortcuts.mu b/edit/003-shortcuts.mu
index 9c4467a3..2dbc481a 100644
--- a/edit/003-shortcuts.mu
+++ b/edit/003-shortcuts.mu
@@ -57,7 +57,7 @@ scenario editor-handles-backspace-key [
   screen-should-contain [
     .          .
     .bc        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -235,7 +235,7 @@ cd]
   screen-should-contain [
     .          .
     .abcd      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -266,7 +266,7 @@ ghi jkl]
     .          .
     .abc defgh↩.
     .i jkl     .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -282,7 +282,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
@@ -298,7 +298,7 @@ scenario editor-wraps-long-lines-on-backspace [
     .          .
     .abcdef ↩  .
     .ghij      .
-    .╌╌╌╌╌╌╌╌  .
+    .┈┈┈┈┈┈┈┈  .
     .          .
   ]
 ]
@@ -320,7 +320,7 @@ scenario editor-handles-delete-key [
   screen-should-contain [
     .          .
     .bc        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 3, [print-character]  # length of original line to overwrite
@@ -334,7 +334,7 @@ scenario editor-handles-delete-key [
   screen-should-contain [
     .          .
     .c         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 2, [print-character]  # new length to overwrite
@@ -410,7 +410,7 @@ scenario editor-moves-cursor-right-with-key [
   screen-should-contain [
     .          .
     .a0bc      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 3, [print-character]  # 0 and following characters
@@ -521,7 +521,7 @@ d]
     .          .
     .abc       .
     .0d        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 2, [print-character]  # new length of second line
@@ -548,7 +548,7 @@ d]
     .          .
     . abc      .
     . 0d       .
-    . ╌╌╌╌╌╌╌╌╌.
+    . ┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -572,7 +572,7 @@ scenario editor-moves-cursor-to-next-wrapped-line-with-right-arrow [
     .          .
     .abcd↩     .
     .ef        .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
     .          .
   ]
   memory-should-contain [
@@ -638,7 +638,7 @@ scenario editor-moves-cursor-to-next-wrapped-line-with-right-arrow-3 [
     .          .
     . abcd↩    .
     . ef       .
-    . ╌╌╌╌╌    .
+    . ┈┈┈┈┈    .
     .          .
   ]
   memory-should-contain [
@@ -670,7 +670,7 @@ d]
     .          .
     .abc       .
     .0d        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 2, [print-character]
@@ -697,7 +697,7 @@ scenario editor-moves-cursor-left-with-key [
   screen-should-contain [
     .          .
     .a0bc      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 3, [print-character]
@@ -773,7 +773,7 @@ g]
     .abc       .
     .def0      .
     .g         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
   check-trace-count-for-label 1, [print-character]  # just the '0'
 ]
@@ -802,7 +802,7 @@ g]
     .0abc      .
     .def       .
     .g         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
   check-trace-count-for-label 4, [print-character]  # length of first line
 ]
@@ -831,7 +831,7 @@ d]
     .abc       .
     .0         .
     .d         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
   check-trace-count-for-label 1, [print-character]  # just the '0'
 ]
@@ -847,7 +847,7 @@ scenario editor-moves-across-screen-lines-across-wrap-with-left-arrow [
     .          .
     .abcd↩     .
     .ef        .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
     .          .
   ]
   # position cursor right after empty line
@@ -881,7 +881,7 @@ g]
     .abcd↩     .
     .ef        .
     .g         .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
   ]
   # position cursor right after empty line
   assume-console [
@@ -913,7 +913,7 @@ e]
     .          .
     .abcd      .
     .e         .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
     .          .
   ]
   # position cursor right after empty line
@@ -969,7 +969,7 @@ def]
     .          .
     .a0bc      .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1086,7 +1086,7 @@ def]
     .          .
     .ab0       .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1123,7 +1123,7 @@ def]
     .          .
     .0         .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1164,7 +1164,7 @@ ghi]
     .abc       .
     .0def      .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -1203,7 +1203,7 @@ def]
     .          .
     .abc       .
     .0def      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1308,7 +1308,7 @@ de]
     .          .
     .abc       .
     .de0       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1511,7 +1511,7 @@ scenario editor-moves-to-end-of-line-with-ctrl-e [
     .          .
     .123z      .
     .456       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   check-trace-count-for-label 1, [print-character]
@@ -1662,7 +1662,7 @@ scenario editor-deletes-to-start-of-line-with-ctrl-u [
     .          .
     .123       .
     .6         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1726,7 +1726,7 @@ scenario editor-deletes-to-start-of-line-with-ctrl-u-2 [
     .          .
     .3         .
     .456       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1750,7 +1750,7 @@ scenario editor-deletes-to-start-of-line-with-ctrl-u-3 [
     .          .
     .          .
     .456       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1774,7 +1774,7 @@ scenario editor-deletes-to-start-of-final-line-with-ctrl-u [
     .          .
     .123       .
     .          .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1800,7 +1800,7 @@ scenario editor-deletes-to-end-of-line-with-ctrl-k [
     .          .
     .1         .
     .456       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1856,7 +1856,7 @@ scenario editor-deletes-to-end-of-line-with-ctrl-k-2 [
     .          .
     .123       .
     .4         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1880,7 +1880,7 @@ scenario editor-deletes-to-end-of-line-with-ctrl-k-3 [
     .          .
     .12        .
     .456       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1904,7 +1904,7 @@ scenario editor-deletes-to-end-of-line-with-ctrl-k-4 [
     .          .
     .123       .
     .456       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1928,7 +1928,7 @@ scenario editor-deletes-to-end-of-line-with-ctrl-k-5 [
     .          .
     .123       .
     .45        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1952,7 +1952,7 @@ scenario editor-deletes-to-end-of-line-with-ctrl-k-6 [
     .          .
     .123       .
     .456       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -2272,7 +2272,7 @@ de]
   screen-should-contain [
     .          .
     .de0       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # try to move down again
@@ -2301,7 +2301,7 @@ de]
   screen-should-contain [
     .          .
     .de01      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -2495,7 +2495,7 @@ m]
     .k         .
     .l         .
     .m         .
-    .╌╌╌╌╌     .
+    .┈┈┈┈┈     .
   ]
   # move up one line
   assume-console [
@@ -2626,7 +2626,7 @@ e]
     .          .
     .d         .
     .e         .
-    .╌╌╌╌╌╌    .
+    .┈┈┈┈┈┈    .
   ]
   assume-console [
     press page-up
@@ -2765,7 +2765,7 @@ d]
     .          .
     .c         .
     .d         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -2838,7 +2838,7 @@ b]
     .          .
     .a         .
     .b         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
   # scroll down
   assume-console [
@@ -2852,7 +2852,7 @@ b]
     .          .
     .a         .
     .b         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -2885,7 +2885,7 @@ cdefgh]
     .          .
     .cde↩      .
     .fgh       .
-    .╌╌╌╌      .
+    .┈┈┈┈      .
   ]
 ]
 
@@ -2949,7 +2949,7 @@ d]
     .          .
     .c         .
     .d         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
   # scroll back up
   assume-console [
diff --git a/edit/004-programming-environment.mu b/edit/004-programming-environment.mu
index be3d7878..22b8e404 100644
--- a/edit/004-programming-environment.mu
+++ b/edit/004-programming-environment.mu
@@ -36,7 +36,7 @@ def new-programming-environment screen:&:screen, initial-recipe-contents:text, i
   print screen, [ run (F4) ], 255/white, 161/reddish
   # dotted line down the middle
   divider:num, _ <- divide-with-remainder width, 2
-  draw-vertical screen, divider, 1/top, height, 9550/vertical-dashed
+  draw-vertical screen, divider, 1/top, height, 9482/vertical-dotted
   # recipe editor on the left
   recipes:&:editor <- new-editor initial-recipe-contents, screen, 0/left, divider/right
   # sandbox editor on the right
@@ -340,9 +340,9 @@ scenario edit-multiple-editors [
   ]
   screen-should-contain [
     .           run (F4)           .  # this line has a different background, but we don't test that yet
-    .a0bc           ╎d1ef          .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎──────────────.
-    .               ╎              .
+    .a0bc           ┊d1ef          .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━.
+    .               ┊              .
   ]
   memory-should-contain [
     5 <- 2  # cursor column of recipe editor
@@ -355,9 +355,9 @@ scenario edit-multiple-editors [
   ]
   screen-should-contain [
     .           run (F4)           .
-    .a0bc           ╎d1␣f          .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎──────────────.
-    .               ╎              .
+    .a0bc           ┊d1␣f          .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━.
+    .               ┊              .
   ]
 ]
 
@@ -372,10 +372,10 @@ scenario multiple-editors-cover-only-their-own-areas [
   # divider isn't messed up
   screen-should-contain [
     .                                         run (F4)           .
-    .abc                           ╎def                          .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────.
-    .                              ╎                             .
-    .                              ╎                             .
+    .abc                           ┊def                          .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                              ┊                             .
+    .                              ┊                             .
   ]
 ]
 
@@ -395,9 +395,9 @@ scenario editor-in-focus-keeps-cursor [
   # is cursor at the right place?
   screen-should-contain [
     .           run (F4)           .
-    .␣bc            ╎def           .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎──────────────.
-    .               ╎              .
+    .␣bc            ┊def           .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━.
+    .               ┊              .
   ]
   # now try typing a letter
   assume-console [
@@ -411,9 +411,9 @@ scenario editor-in-focus-keeps-cursor [
   # cursor should still be right
   screen-should-contain [
     .           run (F4)           .
-    .z␣bc           ╎def           .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎──────────────.
-    .               ╎              .
+    .z␣bc           ┊def           .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━.
+    .               ┊              .
   ]
 ]
 
@@ -428,10 +428,10 @@ def]
   render-all screen, env, render
   screen-should-contain [
     .           run (F4)           .
-    .               ╎abc           .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎def           .
-    .               ╎──────────────.
-    .               ╎              .
+    .               ┊abc           .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊def           .
+    .               ┊━━━━━━━━━━━━━━.
+    .               ┊              .
   ]
   # position cursor at start of second line and hit backspace
   assume-console [
@@ -446,9 +446,9 @@ def]
   # cursor moves to end of old line
   screen-should-contain [
     .           run (F4)           .
-    .               ╎abc␣ef        .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎──────────────.
-    .               ╎              .
+    .               ┊abc␣ef        .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━.
+    .               ┊              .
   ]
 ]
 
@@ -470,7 +470,7 @@ def render-all screen:&:screen, env:&:environment, {render-editor: (recipe (addr
   trace 11, [app], [render divider]
   divider:num, _ <- divide-with-remainder width, 2
   height:num <- screen-height screen
-  draw-vertical screen, divider, 1/top, height, 9550/vertical-dashed
+  draw-vertical screen, divider, 1/top, height, 9482/vertical-dotted
   #
   screen <- render-recipes screen, env, render-editor
   screen <- render-sandbox-side screen, env, render-editor
@@ -497,7 +497,7 @@ def render-recipes screen:&:screen, env:&:environment, {render-editor: (recipe (
   row <- add row, 1
   <render-recipe-components-end>
   # draw dotted line after recipes
-  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
 ]
@@ -513,7 +513,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/edit/005-sandbox.mu b/edit/005-sandbox.mu
index 68bce87e..9c7f0ee7 100644
--- a/edit/005-sandbox.mu
+++ b/edit/005-sandbox.mu
@@ -58,14 +58,14 @@ scenario run-and-show-results [
   # check that screen prints the results
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎divide-with-remainder 11, 3                      .
-    .                                                  ╎3                                                .
-    .                                                  ╎2                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊divide-with-remainder 11, 3                      .
+    .                                                  ┊3                                                .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   screen-should-contain-in-color 7/white, [
     .                                                                                                    .
@@ -80,14 +80,14 @@ scenario run-and-show-results [
   ]
   screen-should-contain-in-color 245/grey, [
     .                                                                                                    .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
-    .                                                  ╎                                                 .
-    .                                                  ╎3                                                .
-    .                                                  ╎2                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
+    .                                                  ┊                                                 .
+    .                                                  ┊3                                                .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # sandbox menu in reverse video
   screen-should-contain-in-color 232/black, [
@@ -108,18 +108,18 @@ scenario run-and-show-results [
   # check that screen prints both 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                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊1   edit          copy            delete         .
+    .                                                  ┊divide-with-remainder 11, 3                      .
+    .                                                  ┊3                                                .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -251,7 +251,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
   clear-rest-of-screen screen, row, left, right
@@ -297,7 +297,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
   {
@@ -534,14 +534,14 @@ reply z
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .local-scope                                       ╎0   edit          copy            delete         .
-    .z:num <- add 2, 2                                 ╎foo                                              .
-    .reply z                                           ╎4                                                .
-    .]                                                 ╎─────────────────────────────────────────────────.
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .local-scope                                       ┊0   edit          copy            delete         .
+    .z:num <- add 2, 2                                 ┊foo                                              .
+    .reply z                                           ┊4                                                .
+    .]                                                 ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
   # make a change (incrementing one of the args to 'add'), then rerun
   assume-console [
@@ -556,14 +556,14 @@ reply z
   # check that screen updates the result on the right
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .local-scope                                       ╎0   edit          copy            delete         .
-    .z:num <- add 2, 3                                 ╎foo                                              .
-    .reply z                                           ╎5                                                .
-    .]                                                 ╎─────────────────────────────────────────────────.
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .local-scope                                       ┊0   edit          copy            delete         .
+    .z:num <- add 2, 3                                 ┊foo                                              .
+    .reply z                                           ┊5                                                .
+    .]                                                 ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -584,18 +584,18 @@ scenario run-instruction-manages-screen-per-sandbox [
   # check that it prints a little toy screen
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎print-integer screen, 4                          .
-    .                                                  ╎screen:                                          .
-    .                                                  ╎  .4                             .               .
-    .                                                  ╎  .                              .               .
-    .                                                  ╎  .                              .               .
-    .                                                  ╎  .                              .               .
-    .                                                  ╎  .                              .               .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊print-integer screen, 4                          .
+    .                                                  ┊screen:                                          .
+    .                                                  ┊  .4                             .               .
+    .                                                  ┊  .                              .               .
+    .                                                  ┊  .                              .               .
+    .                                                  ┊  .                              .               .
+    .                                                  ┊  .                              .               .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -652,10 +652,10 @@ scenario scrolling-down-past-bottom-of-recipe-editor [
   # no scroll
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -676,10 +676,10 @@ scenario cursor-down-in-recipe-editor [
   # cursor moves back to bottom
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .␣                                                 ╎─────────────────────────────────────────────────.
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .␣                                                 ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -755,10 +755,10 @@ scenario scrolling-down-past-bottom-of-recipe-editor-2 [
   # no scroll, and cursor remains at top line
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -783,10 +783,10 @@ cd]
   # no scroll on recipe side, cursor moves on sandbox side
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎ab                                               .
-    .                                                  ╎␣d                                               .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊ab                                               .
+    .                                                  ┊␣d                                               .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -806,10 +806,10 @@ scenario scrolling-down-past-bottom-of-sandbox-editor [
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎add 2, 2                                         .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
   ]
   # switch to sandbox window and hit 'page-down'
   assume-console [
@@ -825,10 +825,10 @@ 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                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊␣   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
   ]
   # hit 'page-up'
   assume-console [
@@ -842,10 +842,10 @@ scenario scrolling-down-past-bottom-of-sandbox-editor [
   # sandbox editor displays again, cursor is in editor
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎␣                                                .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎add 2, 2                                         .
+    .                                                  ┊␣                                                .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
   ]
 ]
 
@@ -950,10 +950,10 @@ scenario scrolling-down-on-recipe-side [
   # cursor moves down on recipe side
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .␣                                                 ╎                                                 .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎0   edit          copy            delete         .
-    .                                                  ╎add 2, 2                                         .
+    .␣                                                 ┊                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊0   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
   ]
 ]
 
@@ -977,15 +977,15 @@ scenario scrolling-through-multiple-sandboxes [
   print screen, cursor
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎␣                                                .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎add 1, 1                                         .
-    .                                                  ╎2                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎1   edit          copy            delete         .
-    .                                                  ╎add 2, 2                                         .
-    .                                                  ╎4                                                .
+    .                                                  ┊␣                                                .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊1   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
   ]
   # hit 'page-down'
   assume-console [
@@ -1000,14 +1000,14 @@ 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                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊␣   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊1   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
   ]
   # hit 'page-down' again
   assume-console [
@@ -1019,12 +1019,12 @@ scenario scrolling-through-multiple-sandboxes [
   # just second sandbox displayed
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎1   edit          copy            delete         .
-    .                                                  ╎add 2, 2                                         .
-    .                                                  ╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊1   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # hit 'page-down' again
   assume-console [
@@ -1036,12 +1036,12 @@ scenario scrolling-through-multiple-sandboxes [
   # no change
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎1   edit          copy            delete         .
-    .                                                  ╎add 2, 2                                         .
-    .                                                  ╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊1   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # hit 'page-up'
   assume-console [
@@ -1053,14 +1053,14 @@ 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                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊1   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
   ]
   # hit 'page-up' again
   assume-console [
@@ -1074,15 +1074,15 @@ scenario scrolling-through-multiple-sandboxes [
   # back to displaying both sandboxes as well as editor
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎␣                                                .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎add 1, 1                                         .
-    .                                                  ╎2                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎1   edit          copy            delete         .
-    .                                                  ╎add 2, 2                                         .
-    .                                                  ╎4                                                .
+    .                                                  ┊␣                                                .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊1   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
   ]
   # hit 'page-up' again
   assume-console [
@@ -1096,15 +1096,15 @@ scenario scrolling-through-multiple-sandboxes [
   # no change
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎␣                                                .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎add 1, 1                                         .
-    .                                                  ╎2                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎1   edit          copy            delete         .
-    .                                                  ╎add 2, 2                                         .
-    .                                                  ╎4                                                .
+    .                                                  ┊␣                                                .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊1   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
   ]
 ]
 
@@ -1124,13 +1124,13 @@ scenario scrolling-manages-sandbox-index-correctly [
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎add 1, 1                                         .
-    .                                                  ╎2                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # hit 'page-down' and 'page-up' a couple of times. sandbox index should be stable
   assume-console [
@@ -1143,12 +1143,12 @@ scenario scrolling-manages-sandbox-index-correctly [
   # cursor moves to first sandbox
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎0   edit          copy            delete         .
-    .                                                  ╎add 1, 1                                         .
-    .                                                  ╎2                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # hit 'page-up' again
   assume-console [
@@ -1160,13 +1160,13 @@ scenario scrolling-manages-sandbox-index-correctly [
   # back to displaying both sandboxes as well as editor
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎add 1, 1                                         .
-    .                                                  ╎2                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # hit 'page-down'
   assume-console [
@@ -1179,11 +1179,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                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
diff --git a/edit/006-sandbox-copy.mu b/edit/006-sandbox-copy.mu
index 3e7f21e1..35360995 100644
--- a/edit/006-sandbox-copy.mu
+++ b/edit/006-sandbox-copy.mu
@@ -18,13 +18,13 @@ recipe foo [
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # click at left edge of 'copy' button
   assume-console [
@@ -36,13 +36,13 @@ recipe foo [
   # it copies into editor
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎foo                                              .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊foo                                              .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # cursor should be in the right place
   assume-console [
@@ -53,13 +53,13 @@ recipe foo [
   ]
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎0foo                                             .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊0foo                                             .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -80,13 +80,13 @@ recipe foo [
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # click at right edge of 'copy' button (just before 'delete')
   assume-console [
@@ -98,13 +98,13 @@ recipe foo [
   # it copies into editor
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎foo                                              .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊foo                                              .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # cursor should be in the right place
   assume-console [
@@ -115,13 +115,13 @@ recipe foo [
   ]
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎0foo                                             .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊0foo                                             .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -237,13 +237,13 @@ recipe foo [
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # type something into the sandbox editor, then click on the 'copy' button
   assume-console [
@@ -257,13 +257,13 @@ recipe foo [
   # copy doesn't happen
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎0                                                .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊0                                                .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # cursor should be in the right place
   assume-console [
@@ -274,12 +274,12 @@ recipe foo [
   ]
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎01                                               .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊01                                               .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
diff --git a/edit/007-sandbox-delete.mu b/edit/007-sandbox-delete.mu
index 365a4d12..90d24be4 100644
--- a/edit/007-sandbox-delete.mu
+++ b/edit/007-sandbox-delete.mu
@@ -16,18 +16,18 @@ scenario deleting-sandboxes [
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎add 2, 2                                         .
-    .                                                  ╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎1   edit          copy            delete         .
-    .                                                  ╎divide-with-remainder 11, 3                      .
-    .                                                  ╎3                                                .
-    .                                                  ╎2                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊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
   assume-console [
@@ -38,14 +38,14 @@ scenario deleting-sandboxes [
   ]
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎add 2, 2                                         .
-    .                                                  ╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
+    .                                                  ┊                                                 .
   ]
   # delete first sandbox by clicking at right edge of 'delete' button
   assume-console [
@@ -56,10 +56,10 @@ scenario deleting-sandboxes [
   ]
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -165,12 +165,12 @@ 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         .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊1   edit          copy            delete         .
   ]
   # delete the second sandbox
   assume-console [
@@ -182,12 +182,12 @@ 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                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -210,12 +210,12 @@ 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         .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊1   edit          copy            delete         .
   ]
   # delete the second sandbox
   assume-console [
@@ -227,12 +227,12 @@ 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                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊0   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -256,12 +256,12 @@ scenario deleting-final-sandbox-after-scroll [
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎1   edit          copy            delete         .
-    .                                                  ╎add 2, 2                                         .
-    .                                                  ╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊1   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # delete the second sandbox
   assume-console [
@@ -273,13 +273,13 @@ scenario deleting-final-sandbox-after-scroll [
   # implicitly scroll up to first sandbox
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎add 1, 1                                         .
-    .                                                  ╎2                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -301,15 +301,15 @@ scenario deleting-updates-sandbox-count [
   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                                                .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊1   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
   ]
   # delete the second sandbox, then try to scroll down twice
   assume-console [
@@ -323,11 +323,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                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊0   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
diff --git a/edit/008-sandbox-edit.mu b/edit/008-sandbox-edit.mu
index 5e826be0..8f48a2e7 100644
--- a/edit/008-sandbox-edit.mu
+++ b/edit/008-sandbox-edit.mu
@@ -17,13 +17,13 @@ recipe foo [
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # click at left edge of 'edit' button
   assume-console [
@@ -35,12 +35,12 @@ recipe foo [
   # it pops back into editor
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎foo                                              .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎                                                 .
-    .]                                                 ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊foo                                              .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊                                                 .
+    .]                                                 ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
   # cursor should be in the right place
   assume-console [
@@ -51,12 +51,12 @@ recipe foo [
   ]
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎0foo                                             .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎                                                 .
-    .]                                                 ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊0foo                                             .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊                                                 .
+    .]                                                 ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -77,13 +77,13 @@ recipe foo [
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # click at right edge of 'edit' button (just before 'copy')
   assume-console [
@@ -95,12 +95,12 @@ recipe foo [
   # it pops back into editor
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎foo                                              .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎                                                 .
-    .]                                                 ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊foo                                              .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊                                                 .
+    .]                                                 ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
   # cursor should be in the right place
   assume-console [
@@ -111,12 +111,12 @@ recipe foo [
   ]
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎0foo                                             .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎                                                 .
-    .]                                                 ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊0foo                                             .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊                                                 .
+    .]                                                 ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -187,18 +187,18 @@ scenario sandbox-with-print-can-be-edited [
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎print-integer screen, 4                          .
-    .                                                  ╎screen:                                          .
-    .                                                  ╎  .4                             .               .
-    .                                                  ╎  .                              .               .
-    .                                                  ╎  .                              .               .
-    .                                                  ╎  .                              .               .
-    .                                                  ╎  .                              .               .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊print-integer screen, 4                          .
+    .                                                  ┊screen:                                          .
+    .                                                  ┊  .4                             .               .
+    .                                                  ┊  .                              .               .
+    .                                                  ┊  .                              .               .
+    .                                                  ┊  .                              .               .
+    .                                                  ┊  .                              .               .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # edit the sandbox
   assume-console [
@@ -209,10 +209,10 @@ scenario sandbox-with-print-can-be-edited [
   ]
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎print-integer screen, 4                          .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊print-integer screen, 4                          .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -236,12 +236,12 @@ 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                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊1   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # edit the second sandbox
   assume-console [
@@ -253,13 +253,13 @@ scenario editing-sandbox-after-scrolling-resets-scroll [
   # second sandbox shows in editor; scroll resets to display first sandbox
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎add 2, 2                                         .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎add 1, 1                                         .
-    .                                                  ╎2                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊add 2, 2                                         .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -281,15 +281,15 @@ scenario editing-sandbox-updates-sandbox-count [
   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                                                .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊1   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
   ]
   # edit the second sandbox, then resave
   assume-console [
@@ -302,15 +302,15 @@ scenario editing-sandbox-updates-sandbox-count [
   # no change in contents
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎add 1, 1                                         .
-    .                                                  ╎2                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎1   edit          copy            delete         .
-    .                                                  ╎add 2, 2                                         .
-    .                                                  ╎4                                                .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 1, 1                                         .
+    .                                                  ┊2                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊1   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
   ]
   # now try to scroll past end
   assume-console [
@@ -324,11 +324,11 @@ scenario editing-sandbox-updates-sandbox-count [
   # screen should show just final sandbox with the right index (1)
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎1   edit          copy            delete         .
-    .                                                  ╎add 2, 2                                         .
-    .                                                  ╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊1   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
diff --git a/edit/009-sandbox-test.mu b/edit/009-sandbox-test.mu
index 385fced4..460b90aa 100644
--- a/edit/009-sandbox-test.mu
+++ b/edit/009-sandbox-test.mu
@@ -17,13 +17,13 @@ recipe foo [
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # click on the '4' in the result
   assume-console [
@@ -50,15 +50,15 @@ recipe foo [
   ]
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .␣                                                 ╎                                                 .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  reply 4                                         ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
-    .                                                  ╎                                                 .
-    .                                                  ╎                                                 .
+    .␣                                                 ┊                                                 .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  reply 4                                         ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
+    .                                                  ┊                                                 .
+    .                                                  ┊                                                 .
   ]
   # now change the result
   # then rerun
diff --git a/edit/010-sandbox-trace.mu b/edit/010-sandbox-trace.mu
index 0175935d..3837a0b1 100644
--- a/edit/010-sandbox-trace.mu
+++ b/edit/010-sandbox-trace.mu
@@ -17,12 +17,12 @@ recipe foo [
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  stash [abc]                                     ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  stash [abc]                                     ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # click on the code in the sandbox
   assume-console [
@@ -36,19 +36,19 @@ recipe foo [
   # trace now printed and cursor shouldn't have budged
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .␣                                                 ╎                                                 .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  stash [abc]                                     ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎abc                                              .
+    .␣                                                 ┊                                                 .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  stash [abc]                                     ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊abc                                              .
   ]
   screen-should-contain-in-color 245/grey, [
     .                                                                                                    .
-    .                                                  ╎                                                 .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎abc                                              .
+    .                                                  ┊                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊abc                                              .
   ]
   # click again on the same region
   assume-console [
@@ -61,12 +61,12 @@ recipe foo [
   # trace hidden again
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .␣                                                 ╎                                                 .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  stash [abc]                                     ╎0   edit          copy            delete         .
-    .]                                                 ╎foo                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .␣                                                 ┊                                                 .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  stash [abc]                                     ┊0   edit          copy            delete         .
+    .]                                                 ┊foo                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -88,13 +88,13 @@ recipe foo [
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  stash [abc]                                     ╎0   edit          copy            delete         .
-    .  reply 4                                         ╎foo                                              .
-    .]                                                 ╎4                                                .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  stash [abc]                                     ┊0   edit          copy            delete         .
+    .  reply 4                                         ┊foo                                              .
+    .]                                                 ┊4                                                .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # click on the code in the sandbox
   assume-console [
@@ -106,15 +106,15 @@ recipe foo [
   # trace now printed above result
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  stash [abc]                                     ╎0   edit          copy            delete         .
-    .  reply 4                                         ╎foo                                              .
-    .]                                                 ╎abc                                              .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎8 instructions run                               .
-    .                                                  ╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  stash [abc]                                     ┊0   edit          copy            delete         .
+    .  reply 4                                         ┊foo                                              .
+    .]                                                 ┊abc                                              .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊8 instructions run                               .
+    .                                                  ┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -131,11 +131,11 @@ scenario clicking-on-app-trace-does-nothing [
   event-loop screen, console, env
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎stash 123456789                                  .
-    .                                                  ╎123456789                                        .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊stash 123456789                                  .
+    .                                                  ┊123456789                                        .
   ]
   # click on the stash under the edit-button region (or any of the other buttons, really)
   assume-console [
@@ -147,11 +147,11 @@ scenario clicking-on-app-trace-does-nothing [
   # no change; doesn't die
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎stash 123456789                                  .
-    .                                                  ╎123456789                                        .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊stash 123456789                                  .
+    .                                                  ┊123456789                                        .
   ]
 ]
 
diff --git a/edit/011-errors.mu b/edit/011-errors.mu
index 46484176..b1751bd8 100644
--- a/edit/011-errors.mu
+++ b/edit/011-errors.mu
@@ -131,15 +131,15 @@ recipe foo [
   ]
   screen-should-contain [
     .  errors found                                                                   run (F4)           .
-    .                                                  ╎foo                                              .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  get 123:num, foo:offset                         ╎                                                 .
-    .]                                                 ╎                                                 .
-    .foo: unknown element 'foo' in container 'number'  ╎                                                 .
-    .foo: first ingredient of 'get' should be a contai↩╎                                                 .
-    .ner, but got '123:num'                            ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊foo                                              .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  get 123:num, foo:offset                         ┊                                                 .
+    .]                                                 ┊                                                 .
+    .foo: unknown element 'foo' in container 'number'  ┊                                                 .
+    .foo: first ingredient of 'get' should be a contai↩┊                                                 .
+    .ner, but got '123:num'                            ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
   screen-should-contain-in-color 1/red, [
     .  errors found                                                                                      .
@@ -226,13 +226,13 @@ scenario run-hides-errors-from-past-sandboxes [
   # error should disappear
   screen-should-contain [
     .                                                                                 run (F4)           .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎0   edit          copy            delete         .
-    .                                                  ╎add 2, 2                                         .
-    .                                                  ╎4                                                .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊0   edit          copy            delete         .
+    .                                                  ┊add 2, 2                                         .
+    .                                                  ┊4                                                .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -254,14 +254,14 @@ z <- add x, y
   event-loop screen, console, env
   screen-should-contain [
     .  errors found (0)                                                               run (F4)           .
-    .recipe foo x:_elem -> z:_elem [                   ╎                                                 .
-    .local-scope                                       ╎─────────────────────────────────────────────────.
-    .load-ingredients                                  ╎0   edit          copy            delete         .
-    .y:&:num <- copy 0                                 ╎foo 2                                            .
-    .z <- add x, y                                     ╎foo_2: 'add' requires number ingredients, but go↩.
-    .]                                                 ╎t 'y'                                            .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .recipe foo x:_elem -> z:_elem [                   ┊                                                 .
+    .local-scope                                       ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .load-ingredients                                  ┊0   edit          copy            delete         .
+    .y:&:num <- copy 0                                 ┊foo 2                                            .
+    .z <- add x, y                                     ┊foo_2: 'add' requires number ingredients, but go↩.
+    .]                                                 ┊t 'y'                                            .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   # now rerun everything
   assume-console [
@@ -273,14 +273,14 @@ z <- add x, y
   # error should remain unchanged
   screen-should-contain [
     .  errors found (0)                                                               run (F4)           .
-    .recipe foo x:_elem -> z:_elem [                   ╎                                                 .
-    .local-scope                                       ╎─────────────────────────────────────────────────.
-    .load-ingredients                                  ╎0   edit          copy            delete         .
-    .y:&:num <- copy 0                                 ╎foo 2                                            .
-    .z <- add x, y                                     ╎foo_3: 'add' requires number ingredients, but go↩.
-    .]                                                 ╎t 'y'                                            .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .recipe foo x:_elem -> z:_elem [                   ┊                                                 .
+    .local-scope                                       ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .load-ingredients                                  ┊0   edit          copy            delete         .
+    .y:&:num <- copy 0                                 ┊foo 2                                            .
+    .z <- add x, y                                     ┊foo_3: 'add' requires number ingredients, but go↩.
+    .]                                                 ┊t 'y'                                            .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -362,11 +362,11 @@ recipe foo [
   ]
   screen-should-contain [
     .  errors found                                                                   run (F4)           .
-    .                                                  ╎foo                                              .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  x <- copy 0                                     ╎                                                 .
-    .]                                                 ╎                                                 .
-    .foo: missing type for 'x' in 'x <- copy 0'        ╎                                                 .
+    .                                                  ┊foo                                              .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  x <- copy 0                                     ┊                                                 .
+    .]                                                 ┊                                                 .
+    .foo: missing type for 'x' in 'x <- copy 0'        ┊                                                 .
   ]
 ]
 
@@ -388,13 +388,13 @@ recipe foo \\[
   ]
   screen-should-contain [
     .  errors found                                                                   run (F4)           .
-    .                                                  ╎foo                                              .
-    .recipe foo \\[                                      ╎─────────────────────────────────────────────────.
-    .  x <- copy 0                                     ╎                                                 .
-    .                                                  ╎                                                 .
-    .9: unbalanced '\\[' for recipe                      ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊foo                                              .
+    .recipe foo \\[                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  x <- copy 0                                     ┊                                                 .
+    .                                                  ┊                                                 .
+    .9: unbalanced '\\[' for recipe                      ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -417,16 +417,16 @@ recipe foo [
   ]
   screen-should-contain [
     .  errors found                                                                   run (F4)           .
-    .                                                  ╎foo                                              .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  local-scope                                     ╎                                                 .
-    .  x:&:point <- new point:type                     ╎                                                 .
-    .  get x:&:point, 1:offset                         ╎                                                 .
-    .]                                                 ╎                                                 .
-    .foo: first ingredient of 'get' should be a contai↩╎                                                 .
-    .ner, but got 'x:&:point'                          ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊foo                                              .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  local-scope                                     ┊                                                 .
+    .  x:&:point <- new point:type                     ┊                                                 .
+    .  get x:&:point, 1:offset                         ┊                                                 .
+    .]                                                 ┊                                                 .
+    .foo: first ingredient of 'get' should be a contai↩┊                                                 .
+    .ner, but got 'x:&:point'                          ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -450,17 +450,17 @@ recipe foo [
   ]
   screen-should-contain [
     .  errors found                                                                   run (F4)           .
-    .                                                  ╎foo                                              .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  local-scope                                     ╎                                                 .
-    .  x:num <- copy 0                                 ╎                                                 .
-    .  y:&:point <- new point:type                     ╎                                                 .
-    .  get *y:&:point, x:num                           ╎                                                 .
-    .]                                                 ╎                                                 .
-    .foo: second ingredient of 'get' should have type ↩╎                                                 .
-    .'offset', but got 'x:num'                         ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊foo                                              .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  local-scope                                     ┊                                                 .
+    .  x:num <- copy 0                                 ┊                                                 .
+    .  y:&:point <- new point:type                     ┊                                                 .
+    .  get *y:&:point, x:num                           ┊                                                 .
+    .]                                                 ┊                                                 .
+    .foo: second ingredient of 'get' should have type ↩┊                                                 .
+    .'offset', but got 'x:num'                         ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -481,14 +481,14 @@ recipe foo [
   event-loop screen, console, env
   screen-should-contain [
     .  errors found                                                                   run (F4)           .
-    .                                                  ╎foo                                              .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  local-scope                                     ╎                                                 .
-    .  x:num <- copy y:num                             ╎                                                 .
-    .]                                                 ╎                                                 .
-    .foo: use before set: 'y'                          ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊foo                                              .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  local-scope                                     ┊                                                 .
+    .  x:num <- copy y:num                             ┊                                                 .
+    .]                                                 ┊                                                 .
+    .foo: use before set: 'y'                          ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
   # rerun the file, check for the same error
   assume-console [
@@ -499,14 +499,14 @@ recipe foo [
   ]
   screen-should-contain [
     .  errors found                                                                   run (F4)           .
-    .                                                  ╎foo                                              .
-    .recipe foo [                                      ╎─────────────────────────────────────────────────.
-    .  local-scope                                     ╎                                                 .
-    .  x:num <- copy y:num                             ╎                                                 .
-    .]                                                 ╎                                                 .
-    .foo: use before set: 'y'                          ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎                                                 .
-    .                                                  ╎                                                 .
+    .                                                  ┊foo                                              .
+    .recipe foo [                                      ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .  local-scope                                     ┊                                                 .
+    .  x:num <- copy y:num                             ┊                                                 .
+    .]                                                 ┊                                                 .
+    .foo: use before set: 'y'                          ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊                                                 .
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -527,15 +527,15 @@ scenario run-instruction-and-print-errors [
   # check that screen prints error message in red
   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'                              .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊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'                              .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
   screen-should-contain-in-color 7/white, [
     .                                                                                                    .
@@ -560,15 +560,15 @@ scenario run-instruction-and-print-errors [
   ]
   screen-should-contain-in-color 245/grey, [
     .                                                                                                    .
-    .                                                  ╎                                                 .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
-    .                                                  ╎                                                 .
-    .                                                  ╎                                                 .
-    .                                                  ╎                                                ↩.
-    .                                                  ╎                                                 .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
+    .                                                  ┊                                                 .
+    .                                                  ┊                                                 .
+    .                                                  ┊                                                ↩.
+    .                                                  ┊                                                 .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -590,15 +590,15 @@ scenario run-instruction-and-print-errors-only-once [
   # check that screen prints error message just 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'                              .
-    .                                                  ╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .                                                  ┊                                                 .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊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'                              .
+    .                                                  ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -623,13 +623,13 @@ scenario sandbox-can-handle-infinite-loop [
   ]
   screen-should-contain [
     .  errors found (0)                                                               run (F4)           .
-    .recipe foo [                                      ╎                                                 .
-    .  {                                               ╎─────────────────────────────────────────────────.
-    .    loop                                          ╎0   edit          copy            delete         .
-    .  }                                               ╎foo                                              .
-    .]                                                 ╎took too long!                                   .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
-    .                                                  ╎                                                 .
+    .recipe foo [                                      ┊                                                 .
+    .  {                                               ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .    loop                                          ┊0   edit          copy            delete         .
+    .  }                                               ┊foo                                              .
+    .]                                                 ┊took too long!                                   .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .                                                  ┊                                                 .
   ]
 ]
 
@@ -655,14 +655,14 @@ reply b
   # screen prints error message
   screen-should-contain [
     .  errors found (0)                                                               run (F4)           .
-    .recipe foo [                                      ╎                                                 .
-    .local-scope                                       ╎─────────────────────────────────────────────────.
-    .a:num <- next-ingredient                          ╎0   edit          copy            delete         .
-    .b:num <- next-ingredient                          ╎foo 4, 0                                         .
-    .stash [dividing by], b                            ╎foo: divide by zero in '_, c:num <- divide-with-↩.
-    ._, c:num <- divide-with-remainder a, b            ╎remainder a, b'                                  .
-    .reply b                                           ╎─────────────────────────────────────────────────.
-    .]                                                 ╎                                                 .
+    .recipe foo [                                      ┊                                                 .
+    .local-scope                                       ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .a:num <- next-ingredient                          ┊0   edit          copy            delete         .
+    .b:num <- next-ingredient                          ┊foo 4, 0                                         .
+    .stash [dividing by], b                            ┊foo: divide by zero in '_, c:num <- divide-with-↩.
+    ._, c:num <- divide-with-remainder a, b            ┊remainder a, b'                                  .
+    .reply b                                           ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .]                                                 ┊                                                 .
   ]
   # click on the call in the sandbox
   assume-console [
@@ -674,14 +674,14 @@ reply b
   # screen should expand trace
   screen-should-contain [
     .  errors found (0)                                                               run (F4)           .
-    .recipe foo [                                      ╎                                                 .
-    .local-scope                                       ╎─────────────────────────────────────────────────.
-    .a:num <- next-ingredient                          ╎0   edit          copy            delete         .
-    .b:num <- next-ingredient                          ╎foo 4, 0                                         .
-    .stash [dividing by], b                            ╎dividing by 0                                    .
-    ._, c:num <- divide-with-remainder a, b            ╎14 instructions run                              .
-    .reply b                                           ╎foo: divide by zero in '_, c:num <- divide-with-↩.
-    .]                                                 ╎remainder a, b'                                  .
-    .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────.
+    .recipe foo [                                      ┊                                                 .
+    .local-scope                                       ┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
+    .a:num <- next-ingredient                          ┊0   edit          copy            delete         .
+    .b:num <- next-ingredient                          ┊foo 4, 0                                         .
+    .stash [dividing by], b                            ┊dividing by 0                                    .
+    ._, c:num <- divide-with-remainder a, b            ┊14 instructions run                              .
+    .reply b                                           ┊foo: divide by zero in '_, c:num <- divide-with-↩.
+    .]                                                 ┊remainder a, b'                                  .
+    .┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┊━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━.
   ]
 ]
diff --git a/edit/012-editor-undo.mu b/edit/012-editor-undo.mu
index 23fd53bc..9ea67e03 100644
--- a/edit/012-editor-undo.mu
+++ b/edit/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       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -869,7 +869,7 @@ ghi]
     .abc       .
     .def       .
     .g1hi      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -920,7 +920,7 @@ ghi]
     .abc       .
     .def       .
     .g1hi      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -965,7 +965,7 @@ ghi]
     .abc       .
     .d1ef      .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -1068,7 +1068,7 @@ f]
     .d         .
     .e         .
     .f         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -1103,7 +1103,7 @@ f]
     .d         .
     .e         .
     .f         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -1148,7 +1148,7 @@ ghi]
     .abc       .
     .d1ef      .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -1193,7 +1193,7 @@ ghi]
     .abc       .
     .d1ef      .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -1238,7 +1238,7 @@ ghi]
     .abc       .
     .d1ef      .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -1283,7 +1283,7 @@ ghi]
     .abc       .
     .d1ef      .
     .ghi       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -1382,7 +1382,7 @@ ghi]
     .abc       .
     .def       .
     .g1hi      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
   ]
 ]
 
@@ -1417,7 +1417,7 @@ scenario editor-separates-undo-insert-from-undo-cursor-move [
   screen-should-contain [
     .          .
     .adbc      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -1437,7 +1437,7 @@ scenario editor-separates-undo-insert-from-undo-cursor-move [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -1457,7 +1457,7 @@ scenario editor-separates-undo-insert-from-undo-cursor-move [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -1477,7 +1477,7 @@ scenario editor-separates-undo-insert-from-undo-cursor-move [
   screen-should-contain [
     .          .
     .          .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -1497,7 +1497,7 @@ scenario editor-separates-undo-insert-from-undo-cursor-move [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -1517,7 +1517,7 @@ scenario editor-separates-undo-insert-from-undo-cursor-move [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # cursor moves
@@ -1538,7 +1538,7 @@ scenario editor-separates-undo-insert-from-undo-cursor-move [
   screen-should-contain [
     .          .
     .adbc      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   memory-should-contain [
@@ -1565,7 +1565,7 @@ scenario editor-can-undo-and-redo-backspace [
   screen-should-contain [
     .          .
     .a         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -1590,7 +1590,7 @@ scenario editor-can-undo-and-redo-backspace [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # redo
@@ -1609,7 +1609,7 @@ scenario editor-can-undo-and-redo-backspace [
   screen-should-contain [
     .          .
     .a         .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1713,7 +1713,7 @@ scenario editor-can-undo-and-redo-delete [
   screen-should-contain [
     .          .
     .af        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -1738,7 +1738,7 @@ scenario editor-can-undo-and-redo-delete [
   screen-should-contain [
     .          .
     .adef      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # undo backspace
@@ -1757,7 +1757,7 @@ scenario editor-can-undo-and-redo-delete [
   screen-should-contain [
     .          .
     .abdef     .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # undo first delete
@@ -1776,7 +1776,7 @@ scenario editor-can-undo-and-redo-delete [
   screen-should-contain [
     .          .
     .abcdef    .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # redo first delete
@@ -1796,7 +1796,7 @@ scenario editor-can-undo-and-redo-delete [
   screen-should-contain [
     .          .
     .abdef     .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # redo backspace
@@ -1816,7 +1816,7 @@ scenario editor-can-undo-and-redo-delete [
   screen-should-contain [
     .          .
     .adef      .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   # redo deletes
@@ -1836,7 +1836,7 @@ scenario editor-can-undo-and-redo-delete [
   screen-should-contain [
     .          .
     .af        .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -1901,7 +1901,7 @@ def]
     .          .
     .a         .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -1921,7 +1921,7 @@ def]
     .          .
     .abc       .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -1942,7 +1942,7 @@ def]
     .          .
     .a         .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -1962,7 +1962,7 @@ def]
     .          .
     .a1        .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -2004,7 +2004,7 @@ def]
     .          .
     .c         .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -2024,7 +2024,7 @@ def]
     .          .
     .abc       .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -2045,7 +2045,7 @@ def]
     .          .
     .c         .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
   3:num/raw <- get *e, cursor-row:offset
@@ -2065,7 +2065,7 @@ def]
     .          .
     .1c        .
     .def       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
@@ -2104,7 +2104,7 @@ scenario editor-can-undo-and-redo-ctrl-u-2 [
   screen-should-contain [
     .          .
     .abc       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]
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       .
-    .╌╌╌╌╌╌╌╌╌╌.
+    .┈┈┈┈┈┈┈┈┈┈.
     .          .
   ]
 ]