about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-08-22 10:10:54 -0700
committerKartik Agaram <vc@akkartik.com>2020-08-22 10:14:37 -0700
commit66daf3cc1f479300cf3e58278a1167bd862d855a (patch)
tree323e8936cfc599b1255cb007b410bb35a7ac4a08
parente8ffaf29cea786e1c1266273c65bdb5eb42b39ab (diff)
downloadmu-66daf3cc1f479300cf3e58278a1167bd862d855a.tar.gz
6720
-rw-r--r--apps/browse.mu4
-rw-r--r--apps/parse-int.mu4
-rw-r--r--apps/print-file.mu4
-rw-r--r--mu-init.subx2
-rw-r--r--prototypes/browse/1-print-file.mu6
-rw-r--r--prototypes/browse/10.mu6
-rw-r--r--prototypes/browse/11.mu6
-rw-r--r--prototypes/browse/12.mu6
-rw-r--r--prototypes/browse/13.mu6
-rw-r--r--prototypes/browse/14.mu6
-rw-r--r--prototypes/browse/15-headers-broken.mu6
-rw-r--r--prototypes/browse/16-screen-state-broken.mu6
-rw-r--r--prototypes/browse/17-file-state-broken/main.mu6
-rw-r--r--prototypes/browse/18/main.mu6
-rw-r--r--prototypes/browse/19/main.mu6
-rw-r--r--prototypes/browse/2.mu6
-rw-r--r--prototypes/browse/20/main.mu6
-rw-r--r--prototypes/browse/21/main.mu6
-rw-r--r--prototypes/browse/22/main.mu6
-rw-r--r--prototypes/browse/23-multiple-pages/main.mu6
-rw-r--r--prototypes/browse/24-bold/main.mu6
-rw-r--r--prototypes/browse/25-soft-newlines/main.mu6
-rw-r--r--prototypes/browse/26-headers/main.mu6
-rw-r--r--prototypes/browse/27/main.mu6
-rw-r--r--prototypes/browse/28/main.mu6
-rw-r--r--prototypes/browse/29/main.mu6
-rw-r--r--prototypes/browse/3.mu6
-rw-r--r--prototypes/browse/4-render-page.mu6
-rw-r--r--prototypes/browse/5.mu6
-rw-r--r--prototypes/browse/6.mu6
-rw-r--r--prototypes/browse/7.mu6
-rw-r--r--prototypes/browse/8-multiple-pages.mu6
-rw-r--r--prototypes/browse/9-bold.mu6
-rw-r--r--prototypes/tile/10.mu4
-rw-r--r--prototypes/tile/11.mu4
-rw-r--r--prototypes/tile/6.mu4
-rw-r--r--prototypes/tile/7.mu4
-rw-r--r--prototypes/tile/8.mu4
-rw-r--r--prototypes/tile/9.mu4
39 files changed, 106 insertions, 106 deletions
diff --git a/apps/browse.mu b/apps/browse.mu
index 5681060f..2bb020c9 100644
--- a/apps/browse.mu
+++ b/apps/browse.mu
@@ -6,7 +6,7 @@
 #
 # Press 'q' to quit. All other keys scroll down.
 
-fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int {
   # var file/esi: (addr buffered-file) = open args-on-stack[1] for reading {{{
   var file/esi: (addr buffered-file) <- copy 0
   {
@@ -16,7 +16,7 @@ fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
       # var filename/ecx: (addr array byte) = args-on-stack[1] {{{
       var filename/ecx: (addr array byte) <- copy 0
       {
-        var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+        var args/eax: (addr array addr array byte) <- copy args-on-stack
         var tmp/eax: (addr addr array byte) <- index args, 1
         filename <- copy *tmp
       }
diff --git a/apps/parse-int.mu b/apps/parse-int.mu
index 8ad6074f..65ee4da1 100644
--- a/apps/parse-int.mu
+++ b/apps/parse-int.mu
@@ -6,10 +6,10 @@
 #   $ echo $?
 #   123
 
-fn main _args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main _args: (addr array addr array byte) -> exit-status/ebx: int {
 $main-body: {
   # if no args, print a message and exit
-  var args/esi: (addr array (addr array byte)) <- copy _args
+  var args/esi: (addr array addr array byte) <- copy _args
   var n/ecx: int <- length args
   compare n, 1
   {
diff --git a/apps/print-file.mu b/apps/print-file.mu
index 7cd51bdc..c8c487b2 100644
--- a/apps/print-file.mu
+++ b/apps/print-file.mu
@@ -7,8 +7,8 @@
 #   $ ./a.elf x
 #   abc
 
-fn main _args: (addr array (addr array byte)) -> exit-status/ebx: int {
-  var args/eax: (addr array (addr array byte)) <- copy _args
+fn main _args: (addr array addr array byte) -> exit-status/ebx: int {
+  var args/eax: (addr array addr array byte) <- copy _args
 $main-body: {
     var n/ecx: int <- length args
     compare n, 1
diff --git a/mu-init.subx b/mu-init.subx
index 984e4ff7..f20d08d0 100644
--- a/mu-init.subx
+++ b/mu-init.subx
@@ -3,7 +3,7 @@
 # See translate_mu for how this file is used.
 #
 # Mu programs start at a function called 'main' with this signature:
-#   fn main args: (addr array (addr array byte)) -> exit-status/ebx: int
+#   fn main args: (addr array addr array byte) -> exit-status/ebx: int
 # If your program doesn't need commandline arguments you can drop it:
 #   fn main -> exit-status/ebx: int
 #
diff --git a/prototypes/browse/1-print-file.mu b/prototypes/browse/1-print-file.mu
index 8310fc0f..899ce160 100644
--- a/prototypes/browse/1-print-file.mu
+++ b/prototypes/browse/1-print-file.mu
@@ -1,12 +1,12 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/ecx: (addr buffered-file) <- load-file filename
   dump file
   exit-status <- copy 0
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/10.mu b/prototypes/browse/10.mu
index 5025cb7d..e4f094fb 100644
--- a/prototypes/browse/10.mu
+++ b/prototypes/browse/10.mu
@@ -3,7 +3,7 @@
 # monospace font of a terminal window. So underscores and asterisks will both
 # be bold.
 
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/esi: (addr buffered-file) <- load-file filename
   enable-screen-grid-mode
@@ -152,8 +152,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/11.mu b/prototypes/browse/11.mu
index af1ee45a..e3083c09 100644
--- a/prototypes/browse/11.mu
+++ b/prototypes/browse/11.mu
@@ -1,7 +1,7 @@
 # The current organization doesn't really work for the next feature (section
 # headings) so let's inline attribute-handling.
 
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/esi: (addr buffered-file) <- load-file filename
   enable-screen-grid-mode
@@ -148,8 +148,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/12.mu b/prototypes/browse/12.mu
index 6b2780ec..1f72c36d 100644
--- a/prototypes/browse/12.mu
+++ b/prototypes/browse/12.mu
@@ -1,6 +1,6 @@
 # Now the trailing asterisk or underscore renders correctly, for starters.
 
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/esi: (addr buffered-file) <- load-file filename
   enable-screen-grid-mode
@@ -153,8 +153,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/13.mu b/prototypes/browse/13.mu
index 0dac8a4d..f9e76585 100644
--- a/prototypes/browse/13.mu
+++ b/prototypes/browse/13.mu
@@ -1,6 +1,6 @@
 # Support more than two states.
 
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/esi: (addr buffered-file) <- load-file filename
   enable-screen-grid-mode
@@ -154,8 +154,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/14.mu b/prototypes/browse/14.mu
index bccb9767..dc7ac4f7 100644
--- a/prototypes/browse/14.mu
+++ b/prototypes/browse/14.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/esi: (addr buffered-file) <- load-file filename
   enable-screen-grid-mode
@@ -152,8 +152,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/15-headers-broken.mu b/prototypes/browse/15-headers-broken.mu
index 73062bfc..d9209e4e 100644
--- a/prototypes/browse/15-headers-broken.mu
+++ b/prototypes/browse/15-headers-broken.mu
@@ -3,7 +3,7 @@
 # The state machine is getting out of control, and I notice old bugs like
 # turning '*abc_' into bold text.
 
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/esi: (addr buffered-file) <- load-file filename
   enable-screen-grid-mode
@@ -194,8 +194,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/16-screen-state-broken.mu b/prototypes/browse/16-screen-state-broken.mu
index 9324244a..544bb1ca 100644
--- a/prototypes/browse/16-screen-state-broken.mu
+++ b/prototypes/browse/16-screen-state-broken.mu
@@ -19,7 +19,7 @@
 # Then again, maybe I should just keep going and not try to be compatible with
 # GitHub-Flavored Markdown. Require that new headings are also new paragraphs.
 
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/esi: (addr buffered-file) <- load-file filename
   enable-screen-grid-mode
@@ -163,8 +163,8 @@ fn done-drawing? self: (addr screen-position-state) -> result/eax: boolean {
   # self->rightcol >= self->ncols
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/17-file-state-broken/main.mu b/prototypes/browse/17-file-state-broken/main.mu
index a273c0fe..a7d41529 100644
--- a/prototypes/browse/17-file-state-broken/main.mu
+++ b/prototypes/browse/17-file-state-broken/main.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   # initialize fs from args[1]
   var filename/eax: (addr array byte) <- first-arg args
   var file-state-storage: file-state
@@ -99,8 +99,8 @@ fn render-header-line fs: (addr file-state), state: (addr screen-position-state)
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/18/main.mu b/prototypes/browse/18/main.mu
index 7a551e6c..f98e9a2b 100644
--- a/prototypes/browse/18/main.mu
+++ b/prototypes/browse/18/main.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   # initialize fs from args[1]
   var filename/eax: (addr array byte) <- first-arg args
   var file-state-storage: file-state
@@ -26,8 +26,8 @@ fn render-normal fs: (addr file-state) {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/19/main.mu b/prototypes/browse/19/main.mu
index c936a575..5470a7e2 100644
--- a/prototypes/browse/19/main.mu
+++ b/prototypes/browse/19/main.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   # initialize fs from args[1]
   var filename/eax: (addr array byte) <- first-arg args
   var file-state-storage: file-state
@@ -43,8 +43,8 @@ fn render-normal fs: (addr file-state), state: (addr screen-position-state) {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/2.mu b/prototypes/browse/2.mu
index 119e063a..6bfacfe4 100644
--- a/prototypes/browse/2.mu
+++ b/prototypes/browse/2.mu
@@ -1,12 +1,12 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/eax: (addr buffered-file) <- load-file filename
   dump file
   exit-status <- copy 0
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/20/main.mu b/prototypes/browse/20/main.mu
index c936a575..5470a7e2 100644
--- a/prototypes/browse/20/main.mu
+++ b/prototypes/browse/20/main.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   # initialize fs from args[1]
   var filename/eax: (addr array byte) <- first-arg args
   var file-state-storage: file-state
@@ -43,8 +43,8 @@ fn render-normal fs: (addr file-state), state: (addr screen-position-state) {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/21/main.mu b/prototypes/browse/21/main.mu
index c936a575..5470a7e2 100644
--- a/prototypes/browse/21/main.mu
+++ b/prototypes/browse/21/main.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   # initialize fs from args[1]
   var filename/eax: (addr array byte) <- first-arg args
   var file-state-storage: file-state
@@ -43,8 +43,8 @@ fn render-normal fs: (addr file-state), state: (addr screen-position-state) {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/22/main.mu b/prototypes/browse/22/main.mu
index c936a575..5470a7e2 100644
--- a/prototypes/browse/22/main.mu
+++ b/prototypes/browse/22/main.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   # initialize fs from args[1]
   var filename/eax: (addr array byte) <- first-arg args
   var file-state-storage: file-state
@@ -43,8 +43,8 @@ fn render-normal fs: (addr file-state), state: (addr screen-position-state) {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/23-multiple-pages/main.mu b/prototypes/browse/23-multiple-pages/main.mu
index cf2fef0d..c485a5c0 100644
--- a/prototypes/browse/23-multiple-pages/main.mu
+++ b/prototypes/browse/23-multiple-pages/main.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   # initialize fs from args[1]
   var filename/eax: (addr array byte) <- first-arg args
   var file-state-storage: file-state
@@ -45,8 +45,8 @@ fn render-normal fs: (addr file-state), state: (addr screen-position-state) {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/24-bold/main.mu b/prototypes/browse/24-bold/main.mu
index 393eb29f..aa2c07a1 100644
--- a/prototypes/browse/24-bold/main.mu
+++ b/prototypes/browse/24-bold/main.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   # initialize fs from args[1]
   var filename/eax: (addr array byte) <- first-arg args
   var file-state-storage: file-state
@@ -108,8 +108,8 @@ fn render-until-underscore fs: (addr file-state), state: (addr screen-position-s
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/25-soft-newlines/main.mu b/prototypes/browse/25-soft-newlines/main.mu
index af19faa2..e19c2a64 100644
--- a/prototypes/browse/25-soft-newlines/main.mu
+++ b/prototypes/browse/25-soft-newlines/main.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   # initialize fs from args[1]
   var filename/eax: (addr array byte) <- first-arg args
   var file-state-storage: file-state
@@ -152,8 +152,8 @@ fn render-until-underscore fs: (addr file-state), state: (addr screen-position-s
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/26-headers/main.mu b/prototypes/browse/26-headers/main.mu
index b87f1416..0ecd3469 100644
--- a/prototypes/browse/26-headers/main.mu
+++ b/prototypes/browse/26-headers/main.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   # initialize fs from args[1]
   var filename/eax: (addr array byte) <- first-arg args
   var file-state-storage: file-state
@@ -240,8 +240,8 @@ fn render-until-underscore fs: (addr file-state), state: (addr screen-position-s
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/27/main.mu b/prototypes/browse/27/main.mu
index 9d578ccc..c0d1dfd2 100644
--- a/prototypes/browse/27/main.mu
+++ b/prototypes/browse/27/main.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   # initialize fs from args[1]
   var filename/eax: (addr array byte) <- first-arg args
   var file-state-storage: file-state
@@ -247,8 +247,8 @@ fn render-until-underscore fs: (addr file-state), state: (addr screen-position-s
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/28/main.mu b/prototypes/browse/28/main.mu
index a3e207d2..96944d40 100644
--- a/prototypes/browse/28/main.mu
+++ b/prototypes/browse/28/main.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   # initialize fs from args[1]
   var filename/eax: (addr array byte) <- first-arg args
   var file-state-storage: file-state
@@ -249,8 +249,8 @@ fn render-until-underscore fs: (addr file-state), state: (addr screen-position-s
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/29/main.mu b/prototypes/browse/29/main.mu
index 748bdaed..ca7bcab1 100644
--- a/prototypes/browse/29/main.mu
+++ b/prototypes/browse/29/main.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   # initialize fs from args[1]
   var filename/eax: (addr array byte) <- first-arg args
   var file-state-storage: file-state
@@ -259,8 +259,8 @@ fn render-until-underscore fs: (addr file-state), state: (addr screen-position-s
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/3.mu b/prototypes/browse/3.mu
index 2938e9b1..95fc235c 100644
--- a/prototypes/browse/3.mu
+++ b/prototypes/browse/3.mu
@@ -1,12 +1,12 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/eax: (addr buffered-file) <- load-file filename
   dump file
   exit-status <- copy 0
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/4-render-page.mu b/prototypes/browse/4-render-page.mu
index f0473387..6e78534f 100644
--- a/prototypes/browse/4-render-page.mu
+++ b/prototypes/browse/4-render-page.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/eax: (addr buffered-file) <- load-file filename
   enable-screen-grid-mode
@@ -58,8 +58,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/5.mu b/prototypes/browse/5.mu
index 17a6e240..0384b96a 100644
--- a/prototypes/browse/5.mu
+++ b/prototypes/browse/5.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/eax: (addr buffered-file) <- load-file filename
   enable-screen-grid-mode
@@ -60,8 +60,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/6.mu b/prototypes/browse/6.mu
index bd51182b..17fda312 100644
--- a/prototypes/browse/6.mu
+++ b/prototypes/browse/6.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/eax: (addr buffered-file) <- load-file filename
   enable-screen-grid-mode
@@ -71,8 +71,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/7.mu b/prototypes/browse/7.mu
index df89cd15..d6f31218 100644
--- a/prototypes/browse/7.mu
+++ b/prototypes/browse/7.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/esi: (addr buffered-file) <- load-file filename
   enable-screen-grid-mode
@@ -75,8 +75,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/8-multiple-pages.mu b/prototypes/browse/8-multiple-pages.mu
index 78aba2f9..2ae2fc66 100644
--- a/prototypes/browse/8-multiple-pages.mu
+++ b/prototypes/browse/8-multiple-pages.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/esi: (addr buffered-file) <- load-file filename
   enable-screen-grid-mode
@@ -91,8 +91,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/browse/9-bold.mu b/prototypes/browse/9-bold.mu
index dec8e581..121cd0bf 100644
--- a/prototypes/browse/9-bold.mu
+++ b/prototypes/browse/9-bold.mu
@@ -1,4 +1,4 @@
-fn main args: (addr array (addr array byte)) -> exit-status/ebx: int {
+fn main args: (addr array addr array byte) -> exit-status/ebx: int {
   var filename/eax: (addr array byte) <- first-arg args
   var file/esi: (addr buffered-file) <- load-file filename
   enable-screen-grid-mode
@@ -128,8 +128,8 @@ fn clear toprow: int, leftcol: int, botrow: int, rightcol: int {
   }
 }
 
-fn first-arg args-on-stack: (addr array (addr array byte)) -> out/eax: (addr array byte) {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn first-arg args-on-stack: (addr array addr array byte) -> out/eax: (addr array byte) {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var result/eax: (addr addr array byte) <- index args, 1
   out <- copy *result
 }
diff --git a/prototypes/tile/10.mu b/prototypes/tile/10.mu
index a9a4c85c..32790364 100644
--- a/prototypes/tile/10.mu
+++ b/prototypes/tile/10.mu
@@ -14,8 +14,8 @@
 
 # To run unit tests:
 #   $ ./a.elf test
-fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var tmp/ecx: int <- length args
   $main-body: {
     # if (len(args) > 1 && args[1] == "test") run-tests()
diff --git a/prototypes/tile/11.mu b/prototypes/tile/11.mu
index 3bd2181d..932e358d 100644
--- a/prototypes/tile/11.mu
+++ b/prototypes/tile/11.mu
@@ -14,8 +14,8 @@
 
 # To run unit tests:
 #   $ ./a.elf test
-fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var tmp/ecx: int <- length args
   $main-body: {
     # if (len(args) > 1 && args[1] == "test") run-tests()
diff --git a/prototypes/tile/6.mu b/prototypes/tile/6.mu
index ecd22ae4..bf601e00 100644
--- a/prototypes/tile/6.mu
+++ b/prototypes/tile/6.mu
@@ -13,8 +13,8 @@
 
 # We also have tests now:
 #   $ ./a.elf test
-fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var tmp/ecx: int <- length args
   $main-body: {
     # if (len(args) > 1 && args[1] == "test") run-tests()
diff --git a/prototypes/tile/7.mu b/prototypes/tile/7.mu
index 42182745..129cb616 100644
--- a/prototypes/tile/7.mu
+++ b/prototypes/tile/7.mu
@@ -17,8 +17,8 @@
 
 # To run unit tests:
 #   $ ./a.elf test
-fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var tmp/ecx: int <- length args
   $main-body: {
     # if (len(args) > 1 && args[1] == "test") run-tests()
diff --git a/prototypes/tile/8.mu b/prototypes/tile/8.mu
index d86f3f8e..b8f450c6 100644
--- a/prototypes/tile/8.mu
+++ b/prototypes/tile/8.mu
@@ -17,8 +17,8 @@
 
 # To run unit tests:
 #   $ ./a.elf test
-fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var tmp/ecx: int <- length args
   $main-body: {
     # if (len(args) > 1 && args[1] == "test") run-tests()
diff --git a/prototypes/tile/9.mu b/prototypes/tile/9.mu
index 298db795..e7289fc2 100644
--- a/prototypes/tile/9.mu
+++ b/prototypes/tile/9.mu
@@ -11,8 +11,8 @@
 
 # To run unit tests:
 #   $ ./a.elf test
-fn main args-on-stack: (addr array (addr array byte)) -> exit-status/ebx: int {
-  var args/eax: (addr array (addr array byte)) <- copy args-on-stack
+fn main args-on-stack: (addr array addr array byte) -> exit-status/ebx: int {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
   var tmp/ecx: int <- length args
   $main-body: {
     # if (len(args) > 1 && args[1] == "test") run-tests()