--- old/CHANGELOG	2017-04-12 16:50:33.223293674 -0700
+++ new/CHANGELOG	2017-05-25 12:43:49.165410451 -0700
@@ -9,3 +9,9 @@
 2017-04-12: 2.4: Changed behavior of mul() when sizeof(long)==sizeof(long long).
                  Compensated for recent brain damage in GCC.
 
+2017-05-25: 2.5: Removed extraneous lines from Makefile.
+                 Fixed disassemble-print for opcodes like (pop . 1).
+                 Fixed typo and reduced max line length in documentation.txt.
+                 Fixed (loop (catch #f (catch #f (exit-loop) #f) #f)).
+                 Changed macro-doublequote to support \x[0-9A-Fa-f][0-9A-Fa-f].
+
--- old/Makefile	2017-04-12 16:48:18.755288222 -0700
+++ new/Makefile	2017-05-17 20:43:29.481586982 -0700
@@ -15,7 +15,7 @@
 # Has targets related to building tarballs, etc.
 -include .local.Makefile
 
-$(BUILDDIR)mikelisp : $(SRCS:%.c=$(BUILDDIR)%.o) opcodes.c lisp.h $(DYNSRCS:%.c=$(BUILDDIR)%.mikelisp)
+$(BUILDDIR)mikelisp : $(SRCS:%.c=$(BUILDDIR)%.o) opcodes.c lisp.h
 	$(CC) $(CFLAGS) -o $@ $(SRCS:%.c=$(BUILDDIR)%.o) $(LIBS)
 
 $(BUILDDIR)preload.o : preload.c lisp.h $(LISPS:%.lisp=$(BUILDDIR)%.c)
@@ -27,9 +27,6 @@
 $(BUILDDIR)%.o : %.c lisp.h
 	$(CC) $(CFLAGS) -c -o $@ $<
 
-$(BUILDDIR)%.mikelisp : %.c lisp.h
-	$(CC) $(CFLAGS) $(DYNCFLAGS) -o $@ $<
-
 opcodes.c : vm.h
 	perl -ne 'print "\tADD_OP(\"".lc($$2)."\",$$1);\n" if(/#define (OP_([A-Z]+)) /)' vm.h | tac > opcodes.c2
 	mv opcodes.c2 opcodes.c
@@ -39,5 +36,5 @@
 	mv $(BUILDDIR)$*.c2 $(BUILDDIR)$*.c
 
 clean :
-	rm -f $(BUILDDIR)mikelisp $(BUILDDIR)*.o $(BUILDDIR)*.mikelisp
+	rm -f $(BUILDDIR)mikelisp $(BUILDDIR)*.o
 
--- old/documentation.txt	2015-07-15 12:31:44.000000000 -0700
+++ new/documentation.txt	2017-05-18 17:26:26.567700897 -0700
@@ -52,12 +52,12 @@
 functions.c, and macroexpand.c) are generated from the corresponding .lisp file
 by the compile-file function.  The other files that don't correspond to object
 types are:
-	main.c       the location of the main() function
-	opcodes.c    generated from vm.h by Perl
-	preload.c    #includes the .c files generated from .lisp code
-	throw.c      throw and catch functions, and exception/exceptionvalue obj*s
-	util.c       miscellaneous utility functions for internal use
-	vm.c         implements the VM; may eventually subsume bytefunc.c
+	main.c     the location of the main() function
+	opcodes.c  generated from vm.h by Perl
+	preload.c  #includes the .c files generated from .lisp code
+	throw.c    throw and catch functions, and exception/exceptionvalue obj*s
+	util.c     miscellaneous utility functions for internal use
+	vm.c       implements the VM; may eventually subsume bytefunc.c
 
 Flow Control
 ------------
@@ -245,8 +245,8 @@
 used; rather, the arguments for branch opcodes are simple integers that tell
 how many opcodes to branch forwards (positive) or backwards (negative) from the
 next opcode.  However, the disassemble function converts branch arguments into
-words and and inserts those words as labels into the opcode list.  This allows
-the peephole optimizer to know which runs of opcodes will always be executed in
+words and inserts those words as labels into the opcode list.  This allows the
+peephole optimizer to know which runs of opcodes will always be executed in
 series.  The reassemble function takes out the labels and translates their uses
 back into "number of instructions to skip" before reassembling the function.
 
--- old/compiler.lisp	2010-08-12 14:55:19.000000000 -0700
+++ new/compiler.lisp	2017-05-24 15:57:51.908892070 -0700
@@ -1,4 +1,4 @@
-; compiler.lisp   by Michael Thorpe   2010-08-12
+; compiler.lisp   by Michael Thorpe   2017-05-24
 
 (define (opcode-to-byte opcode)
 	(let ((val (get #vm-opcodes opcode)))
@@ -61,12 +61,12 @@
 	#f)
 
 ; Numeric comparison opcodes
-(define (byte-compile-numeric-comparison code stackitems loopheight arg)
-	(if byte-compile-debug (dprint 'byte-compile-numeric-comparison code stackitems loopheight arg))
+(define (byte-compile-numeric-comparison code stackitems flowstack arg)
+	(if byte-compile-debug (dprint 'byte-compile-numeric-comparison code stackitems flowstack arg))
 	(if (<> 3 (list-length code)) (throw 'argument-error code))
 	(append
-		(byte-compile-helper (cadr code) stackitems loopheight)
-		(byte-compile-helper (caddr code) (cons #f stackitems) loopheight)
+		(byte-compile-helper (cadr code) stackitems flowstack)
+		(byte-compile-helper (caddr code) (cons #f stackitems) flowstack)
 		`((cmp . ,arg))))
 (define (byte-compile-lt c s l)
 	(byte-compile-numeric-comparison c s l 1))
@@ -88,12 +88,12 @@
 (function-compiler '>= byte-compile-ge)
 
 ; Basic two-argument opcodes
-(define (byte-compile-basic-two-op code stackitems loopheight opcode)
-	(if byte-compile-debug (dprint 'byte-compile-basic-two-op code stackitems loopheight opcode))
+(define (byte-compile-basic-two-op code stackitems flowstack opcode)
+	(if byte-compile-debug (dprint 'byte-compile-basic-two-op code stackitems flowstack opcode))
 	(if (<> 3 (list-length code)) (throw 'argument-error code))
 	(append
-		(byte-compile-helper (cadr code) stackitems loopheight)
-		(byte-compile-helper (caddr code) (cons #f stackitems) loopheight)
+		(byte-compile-helper (cadr code) stackitems flowstack)
+		(byte-compile-helper (caddr code) (cons #f stackitems) flowstack)
 		`((,opcode . 0))))
 (define (byte-compile-add c s l)
 	(byte-compile-basic-two-op c s l 'add))
@@ -118,11 +118,11 @@
 (function-compiler '>> byte-compile-asr)
 
 ; Basic one-argument opcodes
-(define (byte-compile-basic-one-op code stackitems loopheight opcode)
-	(if byte-compile-debug (dprint 'byte-compile-basic-one-op code stackitems loopheight opcode))
+(define (byte-compile-basic-one-op code stackitems flowstack opcode)
+	(if byte-compile-debug (dprint 'byte-compile-basic-one-op code stackitems flowstack opcode))
 	(if (<> 2 (list-length code)) (throw 'argument-error code))
 	(append
-		(byte-compile-helper (cadr code) stackitems loopheight)
+		(byte-compile-helper (cadr code) stackitems flowstack)
 		`((,opcode . 0))))
 (define (byte-compile-car c s l)
 	(byte-compile-basic-one-op c s l 'car))
@@ -146,24 +146,24 @@
 	(byte-compile-basic-one-op c s l 'undefine))
 (function-compiler 'undefine byte-compile-undefine)
 
-(define (byte-compile-and code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-and code stackitems loopheight))
+(define (byte-compile-and code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-and code stackitems flowstack))
 	(if (<> 3 (list-length code)) (throw 'argument-error code))
-	(let ((b (byte-compile-helper (unquote (caddr code)) stackitems loopheight)))
+	(let ((b (byte-compile-helper (unquote (caddr code)) stackitems flowstack)))
 		(append
-			(byte-compile-helper (cadr code) stackitems loopheight)
+			(byte-compile-helper (cadr code) stackitems flowstack)
 			`((index . 0))
 			`((bf . ,(+ 1 (list-length b))))
 			`((pop . 0))
 			b)))
 (function-compiler '#and byte-compile-and)
 
-(define (byte-compile-append/reversed code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-append/reversed code stackitems loopheight))
+(define (byte-compile-append/reversed code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-append/reversed code stackitems flowstack))
 	(if (<> 3 (list-length code)) (throw 'argument-error code))
 	(append
-		(byte-compile-helper (cadr code) stackitems loopheight)
-		(byte-compile-helper (caddr code) (cons #f stackitems) loopheight)
+		(byte-compile-helper (cadr code) stackitems flowstack)
+		(byte-compile-helper (caddr code) (cons #f stackitems) flowstack)
 ; If the list to be reversed is empty, skip all the processing
 		`((index . 0))
 		`((bf . 8))
@@ -179,49 +179,49 @@
 		`((pop . 0))))
 (function-compiler '#append/reversed byte-compile-append/reversed)
 
-(define (byte-compile-bit-select code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-bit-select code stackitems loopheight))
+(define (byte-compile-bit-select code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-bit-select code stackitems flowstack))
 	(if (<> 4 (list-length code)) (throw 'argument-error code))
 	(append
-		(byte-compile-helper (cadr code) stackitems loopheight)
-		(byte-compile-helper (caddr code) (cons #f stackitems) loopheight)
-		(byte-compile-helper (cadddr code) (cons #f (cons #f stackitems)) loopheight)
+		(byte-compile-helper (cadr code) stackitems flowstack)
+		(byte-compile-helper (caddr code) (cons #f stackitems) flowstack)
+		(byte-compile-helper (cadddr code) (cons #f (cons #f stackitems)) flowstack)
 		`((bitsel . 0))))
 (function-compiler 'bit-select byte-compile-bit-select)
-(define (byte-compile-bit-not code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-bit-not code stackitems loopheight))
+(define (byte-compile-bit-not code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-bit-not code stackitems flowstack))
 	(if (<> 2 (list-length code)) (throw 'argument-error code))
 	(append
-		(byte-compile-helper (cadr code) stackitems loopheight)
-		(byte-compile-helper -1 (cons #f stackitems) loopheight)
-		(byte-compile-helper 0 (cons #f (cons #f stackitems)) loopheight)
+		(byte-compile-helper (cadr code) stackitems flowstack)
+		(byte-compile-helper -1 (cons #f stackitems) flowstack)
+		(byte-compile-helper 0 (cons #f (cons #f stackitems)) flowstack)
 		`((bitsel . 0))))
 (function-compiler 'bit-not byte-compile-bit-not)
-(define (byte-compile-bit-and code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-bit-and code stackitems loopheight))
+(define (byte-compile-bit-and code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-bit-and code stackitems flowstack))
 	(if (<> 3 (list-length code)) (throw 'argument-error code))
 	(append
-		(byte-compile-helper (cadr code) stackitems loopheight)
-		(byte-compile-helper 0 (cons #f stackitems) loopheight)
-		(byte-compile-helper (caddr code) (cons #f (cons #f stackitems)) loopheight)
+		(byte-compile-helper (cadr code) stackitems flowstack)
+		(byte-compile-helper 0 (cons #f stackitems) flowstack)
+		(byte-compile-helper (caddr code) (cons #f (cons #f stackitems)) flowstack)
 		`((bitsel . 0))))
 (function-compiler 'bit-and byte-compile-bit-and)
-(define (byte-compile-bit-or code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-bit-or code stackitems loopheight))
+(define (byte-compile-bit-or code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-bit-or code stackitems flowstack))
 	(if (<> 3 (list-length code)) (throw 'argument-error code))
 	(append
-		(byte-compile-helper (cadr code) stackitems loopheight)
-		(byte-compile-helper (caddr code) (cons #f stackitems) loopheight)
-		(byte-compile-helper -1 (cons #f (cons #f stackitems)) loopheight)
+		(byte-compile-helper (cadr code) stackitems flowstack)
+		(byte-compile-helper (caddr code) (cons #f stackitems) flowstack)
+		(byte-compile-helper -1 (cons #f (cons #f stackitems)) flowstack)
 		`((bitsel . 0))))
 (function-compiler 'bit-or byte-compile-bit-or)
 
-(define (byte-compile-bit-xor code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-bit-xor code stackitems loopheight))
+(define (byte-compile-bit-xor code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-bit-xor code stackitems flowstack))
 	(if (<> 3 (list-length code)) (throw 'argument-error code))
 	(append
-		(byte-compile-helper (cadr code) stackitems loopheight)
-		(byte-compile-helper (caddr code) (cons #f stackitems) loopheight)
+		(byte-compile-helper (cadr code) stackitems flowstack)
+		(byte-compile-helper (caddr code) (cons #f stackitems) flowstack)
 		`((index . 0))
 		`((pushi . -1))
 		`((pushi . 0))
@@ -229,20 +229,20 @@
 		`((bitsel . 0))))
 (function-compiler 'bit-xor byte-compile-bit-xor)
 
-(define (byte-compile-catch code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-catch code stackitems loopheight))
+(define (byte-compile-catch code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-catch code stackitems flowstack))
 	(if (<> 4 (list-length code)) (throw 'argument-error code))
 	(let ((type (cadr code))
 	      (trialcode (caddr code))
 	      (badcode (cadddr code)))
 		(if (eq? type '#f)
 			(set type #f))
-		(set trialcode (byte-compile-helper (unquote trialcode) stackitems loopheight))
-		(set badcode (byte-compile-helper (unquote badcode) stackitems loopheight))
+		(set trialcode (byte-compile-helper (unquote trialcode) stackitems (cons (cons 'catch #f) flowstack)))
+		(set badcode (byte-compile-helper (unquote badcode) stackitems flowstack))
 		(if type
 			(set badcode
 				(append
-					(byte-compile-helper type stackitems loopheight)
+					(byte-compile-helper type stackitems flowstack)
 					`((extype . 0))
 					`((eq . 0))
 					`((bt . 3))
@@ -258,12 +258,12 @@
 			badcode)))
 (function-compiler '#catch byte-compile-catch)
 
-(define (byte-compile-define code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-define code stackitems loopheight))
+(define (byte-compile-define code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-define code stackitems flowstack))
 	(if (<> 3 (list-length code)) (throw 'argument-error code))
 	(ifelse (quoted? (cadr code))
 		(let ((var (unquote (cadr code)))
-		      (val (byte-compile-helper (caddr code) stackitems loopheight)))
+		      (val (byte-compile-helper (caddr code) stackitems flowstack)))
 			(unless (eq? 'word (object-type var)) (throw 'argument-error code))
 			(let ((pos (list-index stackitems var)))
 				(ifelse pos
@@ -275,8 +275,8 @@
 						val
 						`((localobj . ,var))
 						`((define . 0))))))
-		(let ((val (byte-compile-helper (caddr code) stackitems loopheight))
-		      (var (byte-compile-helper (cadr code) (cons #f stackitems) loopheight)))
+		(let ((val (byte-compile-helper (caddr code) stackitems flowstack))
+		      (var (byte-compile-helper (cadr code) (cons #f stackitems) flowstack)))
 			(append
 				val
 				var
@@ -287,15 +287,15 @@
 ; Two loops are run:
 ;   The first filters the list into a new, reversed list
 ;   The second reverses the reversed list into the result
-(define (byte-compile-filter code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-filter code stackitems loopheight))
+(define (byte-compile-filter code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-filter code stackitems flowstack))
 	(if (<> 4 (list-length code)) (throw 'argument-error code))
 	(unless (quoted? (cadr code)) (throw 'argument-error code))
 	(let ((var (unquote (cadr code)))
-	      (filter (byte-compile-helper (unquote (caddr code)) (cons var (cons #f (cons #f stackitems))) loopheight)))
+	      (filter (byte-compile-helper (unquote (caddr code)) (cons var (cons #f (cons #f stackitems))) flowstack)))
 		(unless (word? var) (throw 'argument-error code))
 		(append
-	      (byte-compile-helper (cadddr code) stackitems loopheight)
+	      (byte-compile-helper (cadddr code) stackitems flowstack)
 ; If the list is empty, skip all the processing
 			`((index . 0))
 			`((bf . ,(+ 3 (list-length filter) 20)))
@@ -331,37 +331,37 @@
 			`((pop . 0)))))
 (function-compiler '#filter byte-compile-filter)
 
-(define (byte-compile-ifelse code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-ifelse code stackitems loopheight))
+(define (byte-compile-ifelse code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-ifelse code stackitems flowstack))
 	(if (<> 4 (list-length code)) (throw 'argument-error code))
-	(let ((iftrue (byte-compile-helper (unquote (caddr code)) stackitems loopheight))
-	      (iffalse (byte-compile-helper (unquote (cadddr code)) stackitems loopheight)))
+	(let ((iftrue (byte-compile-helper (unquote (caddr code)) stackitems flowstack))
+	      (iffalse (byte-compile-helper (unquote (cadddr code)) stackitems flowstack)))
 		(append
-			(byte-compile-helper (cadr code) stackitems loopheight)
+			(byte-compile-helper (cadr code) stackitems flowstack)
 			`((bf . ,(+ (list-length iftrue) 1)))
 			iftrue
 			`((goto . ,(list-length iffalse)))
 			iffalse)))
 (function-compiler '#ifelse byte-compile-ifelse)
 
-(define (byte-compile-let code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-let code stackitems loopheight))
+(define (byte-compile-let code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-let code stackitems flowstack))
 	(if (<> 4 (list-length code)) (throw 'argument-error code))
 	(let ((var (unquote (cadr code)))
-	      (val (byte-compile-helper (caddr code) stackitems loopheight))
+	      (val (byte-compile-helper (caddr code) stackitems flowstack))
 	      (subcode (cadddr code)))
 		(unless (eq? 'word (object-type var)) (throw 'argument-error code))
 		(append
 			val
-			(byte-compile-helper (unquote subcode) (cons var stackitems) loopheight)
+			(byte-compile-helper (unquote subcode) (cons var stackitems) flowstack)
 ; "Pop" the var location (which is currently under the topmost value)
 			`((put . 0)))))
 (function-compiler '#let byte-compile-let)
 
-(define (byte-compile-loop code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-loop code stackitems loopheight))
+(define (byte-compile-loop code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-loop code stackitems flowstack))
 	(if (<> 2 (list-length code)) (throw 'argument-error code))
-	(set code (byte-compile-helper (unquote (cadr code)) stackitems (list-length stackitems)))
+	(set code (byte-compile-helper (unquote (cadr code)) stackitems (cons (cons 'loop (list-length stackitems)) flowstack)))
 	(let ((rev ())
 	      (jumpdistance -1))
 ; Expand next-loop "opcodes"
@@ -384,26 +384,50 @@
 	code)
 (function-compiler '#loop byte-compile-loop)
 
-(define (byte-compile-exit-loop code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-exit-loop code stackitems loopheight))
+; Calculates how many pops and tosses we need to get back to the innermost loop
+(define (byte-compile-loop-assistant stackitems flowstack)
+	(let ((tosses 0))
+		(cons
+			(loop
+				(unless flowstack (throw 'assembler-error stackitems))
+				(if (eq? 'loop (caar flowstack))
+					(let ((extra (- (list-length stackitems) (cdar flowstack))))
+						(if (< extra 0) (throw 'assembler-error stackitems))
+						(exit-loop extra)))
+				(ifelse (eq? 'catch (caar flowstack))
+					(set tosses (+ tosses 1))
+					(throw 'assembler-error flowstack))
+				(set flowstack (cdr flowstack)))
+			tosses)))
+
+(define (byte-compile-exit-loop code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-exit-loop code stackitems flowstack))
 	(if (<> 2 (list-length code)) (throw 'argument-error code))
-	(let ((extra (- (list-length stackitems) loopheight))
-	      (revcode (reverse (byte-compile-helper (cadr code) stackitems loopheight))))
-		(if (< extra 0) (throw 'assembler-error code))
+	(let ((extra/tosses (byte-compile-loop-assistant stackitems flowstack))
+	      (extra (car extra/tosses))
+	      (tosses (cdr extra/tosses))
+	      (revcode (reverse (byte-compile-helper (cadr code) stackitems flowstack))))
 		(if (> extra 0)
 			(set revcode (cons `(put . ,(- extra 1)) revcode)))
 		(if (> extra 1)
 			(set revcode (cons `(pop . ,(- extra 2)) revcode)))
+		(while (> tosses 0)
+			(set revcode (cons `(toss . 0) revcode))
+			(set tosses (- tosses 1)))
 		(set revcode (cons `(exit-loop . #f) revcode))
 		(reverse revcode)))
 (function-compiler '#exit-loop byte-compile-exit-loop)
 
-(define (byte-compile-next-loop code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-next-loop code stackitems loopheight))
+(define (byte-compile-next-loop code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-next-loop code stackitems flowstack))
 	(if (<> 1 (list-length code)) (throw 'argument-error code))
-	(let ((extra (- (list-length stackitems) loopheight)))
-		(if (< extra 0) (throw 'assembler-error code))
+	(let ((extra/tosses (byte-compile-loop-assistant stackitems flowstack))
+	      (extra (car extra/tosses))
+	      (tosses (cdr extra/tosses)))
 		(set code `((next-loop . #f)))
+		(while (> tosses 0)
+			(set code (cons `(toss . 0) code))
+			(set tosses (- tosses 1)))
 		(if (> extra 0)
 			(set code (cons `(pop . ,(- extra 1)) code)))
 		code))
@@ -413,15 +437,15 @@
 ; Two loops are run:
 ;   The first maps the list into a new, reversed list
 ;   The second reverses the reversed list into the result
-(define (byte-compile-map code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-map code stackitems loopheight))
+(define (byte-compile-map code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-map code stackitems flowstack))
 	(if (<> 4 (list-length code)) (throw 'argument-error code))
 	(unless (quoted? (cadr code)) (throw 'argument-error code))
 	(let ((var (unquote (cadr code)))
-	      (mapper (byte-compile-helper (unquote (caddr code)) (cons var (cons #f (cons #f stackitems))) loopheight)))
+	      (mapper (byte-compile-helper (unquote (caddr code)) (cons var (cons #f (cons #f stackitems))) flowstack)))
 		(unless (word? var) (throw 'argument-error code))
 		(append
-	      (byte-compile-helper (cadddr code) stackitems loopheight)
+	      (byte-compile-helper (cadddr code) stackitems flowstack)
 ; If the list is empty, skip all the processing
 			`((index . 0))
 			`((bf . ,(+ 3 (list-length mapper) 17)))
@@ -455,15 +479,15 @@
 ;   (#map-safe 'a '(+ a 10) '(1 2 . 3))
 ; which will return:
 ;   (11 12 . 13)
-(define (byte-compile-map-safe code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-map-safe code stackitems loopheight))
+(define (byte-compile-map-safe code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-map-safe code stackitems flowstack))
 	(if (<> 4 (list-length code)) (throw 'argument-error code))
 	(unless (quoted? (cadr code)) (throw 'argument-error code))
 	(let ((var (unquote (cadr code)))
-	      (mapper (byte-compile-helper (unquote (caddr code)) (cons var (cons #f (cons #f stackitems))) loopheight)))
+	      (mapper (byte-compile-helper (unquote (caddr code)) (cons var (cons #f (cons #f stackitems))) flowstack)))
 		(unless (word? var) (throw 'argument-error code))
 		(append
-	      (byte-compile-helper (cadddr code) stackitems loopheight)
+	      (byte-compile-helper (cadddr code) stackitems flowstack)
 ; If the list is empty, skip all the processing
 			`((index . 0))
 			`((bf . ,(+ 3 (list-length mapper) 12 (list-length mapper) 11)))
@@ -502,50 +526,50 @@
 			`((pop . 0)))))
 (function-compiler '#map-safe byte-compile-map-safe)
 
-(define (byte-compile-or code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-or code stackitems loopheight))
+(define (byte-compile-or code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-or code stackitems flowstack))
 	(if (<> 3 (list-length code)) (throw 'argument-error code))
-	(let ((b (byte-compile-helper (unquote (caddr code)) stackitems loopheight)))
+	(let ((b (byte-compile-helper (unquote (caddr code)) stackitems flowstack)))
 		(append
-			(byte-compile-helper (cadr code) stackitems loopheight)
+			(byte-compile-helper (cadr code) stackitems flowstack)
 			`((index . 0))
 			`((bt . ,(+ 1 (list-length b))))
 			`((pop . 0))
 			b)))
 (function-compiler '#or byte-compile-or)
 
-(define (byte-compile-prog1of2 code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-prog1of2 code stackitems loopheight))
+(define (byte-compile-prog1of2 code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-prog1of2 code stackitems flowstack))
 	(if (<> 3 (list-length code)) (throw 'argument-error code))
 	(append
-		(byte-compile-helper (cadr code) stackitems loopheight)
-		(byte-compile-helper (caddr code) (cons #f stackitems) loopheight)
+		(byte-compile-helper (cadr code) stackitems flowstack)
+		(byte-compile-helper (caddr code) (cons #f stackitems) flowstack)
 		`((pop . 0))))
 (function-compiler '#prog1of2 byte-compile-prog1of2)
 
-(define (byte-compile-prog2of2 code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-prog2of2 code stackitems loopheight))
+(define (byte-compile-prog2of2 code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-prog2of2 code stackitems flowstack))
 	(if (<> 3 (list-length code)) (throw 'argument-error code))
 	(append
-		(byte-compile-helper (cadr code) stackitems loopheight)
+		(byte-compile-helper (cadr code) stackitems flowstack)
 		`((pop . 0))
-		(byte-compile-helper (unquote (caddr code)) stackitems loopheight)))
+		(byte-compile-helper (unquote (caddr code)) stackitems flowstack)))
 (function-compiler '#prog2of2 byte-compile-prog2of2)
 
-(define (byte-compile-quote code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-quote code stackitems loopheight))
+(define (byte-compile-quote code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-quote code stackitems flowstack))
 	(if (<> 2 (list-length code)) (throw 'argument-error code))
 	(append
-		(byte-compile-helper (cadr code) stackitems loopheight)
+		(byte-compile-helper (cadr code) stackitems flowstack)
 		`((quote . 0))))
 (function-compiler 'quote byte-compile-quote)
 
-(define (byte-compile-set code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-set code stackitems loopheight))
+(define (byte-compile-set code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-set code stackitems flowstack))
 	(if (<> 3 (list-length code)) (throw 'argument-error code))
 	(ifelse (quoted? (cadr code))
 		(let ((var (unquote (cadr code)))
-		      (val (byte-compile-helper (caddr code) stackitems loopheight)))
+		      (val (byte-compile-helper (caddr code) stackitems flowstack)))
 			(unless (word? var) (throw 'argument-error code))
 			(let ((pos (list-index stackitems var)))
 				(ifelse pos
@@ -559,45 +583,45 @@
 						`((set . 0))))))
 ; set is "backwards" (the opcode takes value then var)
 		(append
-			(byte-compile-helper (caddr code) stackitems loopheight)
-			(byte-compile-helper (cadr code) (cons #f stackitems) loopheight)
+			(byte-compile-helper (caddr code) stackitems flowstack)
+			(byte-compile-helper (cadr code) (cons #f stackitems) flowstack)
 			`((set . 0)))))
 (function-compiler '#set byte-compile-set)
 
-(define (byte-compile-throw code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-throw code stackitems loopheight))
+(define (byte-compile-throw code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-throw code stackitems flowstack))
 	(if (<> 3 (list-length code)) (throw 'argument-error code))
 ; throw is "backwards" (the opcode takes value then type)
 	(append
-		(byte-compile-helper (caddr code) stackitems loopheight)
-		(byte-compile-helper (cadr code) (cons #f stackitems) loopheight)
+		(byte-compile-helper (caddr code) stackitems flowstack)
+		(byte-compile-helper (cadr code) (cons #f stackitems) flowstack)
 		`((throw . 0))))
 (function-compiler 'throw byte-compile-throw)
 
-(define (byte-compile-unquote code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-unquote code stackitems loopheight))
+(define (byte-compile-unquote code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-unquote code stackitems flowstack))
 	(if (<> 2 (list-length code)) (throw 'argument-error code))
 	(append
-		(byte-compile-helper (cadr code) stackitems loopheight)
+		(byte-compile-helper (cadr code) stackitems flowstack)
 		`((unquote . 0))))
 (function-compiler 'unquote byte-compile-unquote)
 
-(define (byte-compile-helper-unknown-function code stackitems loopheight)
-	(if byte-compile-debug (dprint 'byte-compile-helper-unknown-function code stackitems loopheight))
+(define (byte-compile-helper-unknown-function code stackitems flowstack)
+	(if byte-compile-debug (dprint 'byte-compile-helper-unknown-function code stackitems flowstack))
 	(let ((args (cdr code))
 	      (instructions #f)
 	      (numargs (list-length args)))
 		(while args
-			(set instructions (append instructions (byte-compile-helper (car args) stackitems loopheight)))
+			(set instructions (append instructions (byte-compile-helper (car args) stackitems flowstack)))
 			(set args (cdr args))
 			(set stackitems (cons #f stackitems)))
 		(append
 			instructions
-			(byte-compile-helper (car code) stackitems loopheight)
+			(byte-compile-helper (car code) stackitems flowstack)
 			`((call . ,numargs)))))
 
-(define (byte-compile-helper code stackitems loopheight)
-	(if (and byte-compile-debug (neq? 'cons (object-type code))) (dprint 'byte-compile-helper code stackitems loopheight))
+(define (byte-compile-helper code stackitems flowstack)
+	(if (and byte-compile-debug (neq? 'cons (object-type code))) (dprint 'byte-compile-helper code stackitems flowstack))
 	(switch (object-type code)
 		(('word)
 			(let ((pos (list-index stackitems code)))
@@ -612,13 +636,13 @@
 		(('cons)
 			(let ((helper (get #function-compilers (car code))))
 				(ifelse helper
-					(helper code stackitems loopheight)
-					(byte-compile-helper-unknown-function code stackitems loopheight))))
+					(helper code stackitems flowstack)
+					(byte-compile-helper-unknown-function code stackitems flowstack))))
 		(('quote)
 			(set code (unquote code))
 			(ifelse code
 				(ifelse (eq? (object-type code) 'integer)
-					(byte-compile-helper code stackitems loopheight)
+					(byte-compile-helper code stackitems flowstack)
 					`((localobj . ,code)))
 				`((nil . 0))))
 		(('integer)
@@ -840,7 +864,9 @@
 					(write-object file op)
 					(switch op
 						(('nil 'pop 'exch 'add 'sub 'mul 'div 'toss 'throw 'define 'lookup 'set 'evaluate 'extype 'exvalue 'eq 'and 'or 'not 'objtype 'cons 'car 'cdr 'quote 'unquote 'bitsel 'asr)
-							#f)
+							(unless (= 0 arg)
+								(write-string file " ")
+								(write-object file arg)))
 						(else
 							(write-string file " ")
 							(if (and (eq? 'localobj op) (word? arg))
--- old/functions.lisp	2010-08-12 14:56:31.000000000 -0700
+++ new/functions.lisp	2017-05-24 16:03:59.020887692 -0700
@@ -1,4 +1,4 @@
-; functions.lisp   by Michael Thorpe   2010-08-12
+; functions.lisp   by Michael Thorpe   2017-05-24
 
 (define (pair? o)
 	(eq? (object-type o) 'cons))
@@ -92,6 +92,16 @@
 (define (is-ascii c) ; space through tilde
 	(and (< 31 c) (< c 127)))
 
+; Returns the value of the hexchar, or #f if it's not a hexchar
+(define (hexchar? c)
+	(ifelse (and (<= 48 c) (<= c 57))
+		(- c 48)
+		(ifelse (and (<= 65 c) (<= c 70))
+			(- c 55)
+			(ifelse (and (<= 97 c) (<= c 102))
+				(- c 87)
+				#f))))
+
 ; Skips whitespace and returns the peek-char of the character after that.
 ; Skips over comments as if they were whitespace.
 (define (skip-whitespace stream)
@@ -178,8 +188,26 @@
 			(throw 'reader-error stream))))
 (define-character-macro 96 macro-backtick)
 
+(define (subsubmacro-doublequote-backslash-x stream)
+	(let ((c (hexchar? (catch 'end-of-file (peek-char stream) (throw 'reader-error stream)))))
+		(unless c (throw 'reader-error stream))
+		(read-char stream)
+		(catch 'end-of-file
+			(let ((c2 (hexchar? (peek-char stream))))
+				(if c2
+					(read-char stream)
+					(set c (+ (* c 16) c2))))
+			#f)
+		c))
+
+(define (submacro-doublequote-backslash stream)
+	(let ((c (catch 'end-of-file (read-char stream) (throw 'reader-error stream))))
+		(ifelse (= 120 c) ; x
+			(subsubmacro-doublequote-backslash-x stream)
+			c)))
+
 (define (macro-doublequote stream)
-	(let ((c 0)
+	(let ((c #f)
 	      (i 0)
 	      (string (new-string 512)))
 		(loop
@@ -192,10 +220,7 @@
 			(if (= c 34) ; 34 = ASCII double quote
 				(exit-loop))
 			(if (= c 92) ; 92 = ASCII backslash
-				(set c 
-					(catch 'end-of-file
-						(read-char stream)
-						(throw 'reader-error stream))))
+				(set c (submacro-doublequote-backslash stream)))
 			(put-char string i c)
 			(set i (+ i 1)))
 		(substring string 0 i)))
--- old/obj/compiler.c	2010-08-12 15:23:41.000000000 -0700
+++ new/obj/compiler.c	2017-05-25 12:44:20.293407213 -0700
@@ -102,8 +102,8 @@
 // (define (arg-to-raw-bytecode arg) (if (or (< arg -134217728) (< 134217727 arg)) (throw 'opcode-argument-too-big arg)) (let ((raw (new-string 4)) (i 3)) (loop (put-char raw i (bit-select 127 128 arg)) (if (and (<= -64 arg) (<= arg 63)) (exit-loop (substring raw i (- 4 i)))) (set i (- i 1)) (set arg (>> arg 7)))))
 // (#define 'arg-to-raw-bytecode (byte-compile '(arg) '(#prog2of2 (#ifelse (#or (< arg -134217728) '(< 134217727 arg)) '(throw 'opcode-argument-too-big arg) '#f) '(#let 'raw (new-string 4) '(#let 'i 3 '(#loop '(#prog2of2 (put-char raw i (bit-select 127 128 arg)) '(#prog2of2 (#ifelse (#and (<= -64 arg) '(<= arg 63)) '(#exit-loop (substring raw i (- 4 i))) '#f) '(#prog2of2 (#set 'i (- i 1)) '(#set 'arg (>> arg 7)))))))))))
 // (#lambda "\x81#I\xC0\x80\x80\x80i\x81?I\x8ATD\xBF\xFF\xFF\xFFi\x81I\x81?\x85\x46IL:\x81G0D\x84i\x81Ll\x81\x43\x83i\x81I\x81I\x80\xFFi\x81\x80i\x86I%\x82Ll\x83\x43\x44\xC0i\x83I\x83?I\x87\x46\x44\x82I\xBFi\x83?\x92\x46\x81I\x81I\x84i\x83I-\x83Ll\x83\x43\x98G\x81G0DI\x81i-I\x81PD\x82I\x87i>I\x83PD\xFF\xB3GPP\x81R" '(opcode-argument-too-big new-string put-char substring))
-// (#lambda "\x81#I\xC0\x80\x80\x80i\x81?I\x8ATD\xBF\xFF\xFF\xFFi\x81I\x81?\x83\x46IL:\x84i\x81Ll\x81\x43\x83i\x81I\x81I\x80\xFFi\x81\x80i\x86I%\x82Ll\x83\x43\x44\xC0i\x83I\x83?I\x87\x46\x44\x82I\xBFi\x83?\x90\x46\x81I\x81I\x84i\x83I-\x83Ll\x83\x43\x8FGI\x81i-P\x82I\x87i>\x82P\xFF\xBCGPPPR" '(opcode-argument-too-big new-string put-char substring))
-	s=new_string("\x81#I\xC0\x80\x80\x80i\x81?I\x8ATD\xBF\xFF\xFF\xFFi\x81I\x81?\x83\x46IL:\x84i\x81Ll\x81\x43\x83i\x81I\x81I\x80\xFFi\x81\x80i\x86I%\x82Ll\x83\x43\x44\xC0i\x83I\x83?I\x87\x46\x44\x82I\xBFi\x83?\x90\x46\x81I\x81I\x84i\x83I-\x83Ll\x83\x43\x8FGI\x81i-P\x82I\x87i>\x82P\xFF\xBCGPPPR",109);
+// (#lambda "\x81#I\xC0\x80\x80\x80i\x81?I\x8ATD\xBF\xFF\xFF\xFFi\x81I\x81?\x83\x46IL:\x84i\x81Ll\x81\x43\x83i\x81I\x81I\x80\xFFi\x81\x80i\x86I%\x82Ll\x83\x43\x44\xC0i\x83I\x83?I\x87\x46\x44\x82I\xBFi\x83?\x90\x46\x81I\x81I\x84i\x83I-\x83Ll\x83\x43\x8DG\x81i-\x82I\x87i>\x82P\xFF\xBEGPPPR" '(opcode-argument-too-big new-string put-char substring))
+	s=new_string("\x81#I\xC0\x80\x80\x80i\x81?I\x8ATD\xBF\xFF\xFF\xFFi\x81I\x81?\x83\x46IL:\x84i\x81Ll\x81\x43\x83i\x81I\x81I\x80\xFFi\x81\x80i\x86I%\x82Ll\x83\x43\x44\xC0i\x83I\x83?I\x87\x46\x44\x82I\xBFi\x83?\x90\x46\x81I\x81I\x84i\x83I-\x83Ll\x83\x43\x8DG\x81i-\x82I\x87i>\x82P\xFF\xBEGPPPR",107);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_word("substring",9);
@@ -225,8 +225,8 @@
 	if(!o) return(1);
 	DECREF(o);
 
-// (define (byte-compile-numeric-comparison code stackitems loopheight arg) (if byte-compile-debug (dprint 'byte-compile-numeric-comparison code stackitems loopheight arg)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems loopheight) (byte-compile-helper (caddr code) (cons #f stackitems) loopheight) (list (cons 'cmp arg))))
-// (#define 'byte-compile-numeric-comparison (byte-compile '(code stackitems loopheight arg) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-numeric-comparison (cons code (cons stackitems (cons loopheight (cons arg #f)))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (cons (cons 'cmp arg) #f) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f stackitems) loopheight))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)))))))
+// (define (byte-compile-numeric-comparison code stackitems flowstack arg) (if byte-compile-debug (dprint 'byte-compile-numeric-comparison code stackitems flowstack arg)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems flowstack) (byte-compile-helper (caddr code) (cons #f stackitems) flowstack) (list (cons 'cmp arg))))
+// (#define 'byte-compile-numeric-comparison (byte-compile '(code stackitems flowstack arg) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-numeric-comparison (cons code (cons stackitems (cons flowstack (cons arg #f)))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (cons (cons 'cmp arg) #f) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f stackitems) flowstack))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)))))))
 // (#lambda "\x84#Ll\x97\x46\x81L\x84I\x84I\x84I\x84I0ccccc\x82Ll\x81\x43\x81G0D\x83i\x84I\x83Ll\x81\x43\x85?\x87\x46\x83I\x84L:\x81G0D\x85L\x81Ic0c0\x85Idda0\x86Ic\x85I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x85Ida\x85I\x85I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x84R" '(byte-compile-debug byte-compile-numeric-comparison #dprint list-length argument-error cmp byte-compile-helper))
 // (#lambda "\x84#Ll\x96\x46\x81L\x84I\x84I\x84I\x84I0ccccc\x82Ll\x81\x43\x44\x83i\x84I\x83Ll\x81\x43\x85?\x85\x46\x83I\x84L:\x85L\x81Ic0c0\x85Idda0\x86Ic\x85I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x85Ida\x85I\x85I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83P\x82\x44R" '(byte-compile-debug byte-compile-numeric-comparison #dprint list-length argument-error cmp byte-compile-helper))
 	s=new_string("\x84#Ll\x96\x46\x81L\x84I\x84I\x84I\x84I0ccccc\x82Ll\x81\x43\x44\x83i\x84I\x83Ll\x81\x43\x85?\x85\x46\x83I\x84L:\x85L\x81Ic0c0\x85Idda0\x86Ic\x85I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x85Ida\x85I\x85I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83P\x82\x44R",149);
@@ -516,8 +516,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-basic-two-op code stackitems loopheight opcode) (if byte-compile-debug (dprint 'byte-compile-basic-two-op code stackitems loopheight opcode)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems loopheight) (byte-compile-helper (caddr code) (cons #f stackitems) loopheight) (list (list opcode . '0))))
-// (#define 'byte-compile-basic-two-op (byte-compile '(code stackitems loopheight opcode) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-basic-two-op (cons code (cons stackitems (cons loopheight (cons opcode #f)))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (cons (cons opcode '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f stackitems) loopheight))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)))))))
+// (define (byte-compile-basic-two-op code stackitems flowstack opcode) (if byte-compile-debug (dprint 'byte-compile-basic-two-op code stackitems flowstack opcode)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems flowstack) (byte-compile-helper (caddr code) (cons #f stackitems) flowstack) (list (list opcode . '0))))
+// (#define 'byte-compile-basic-two-op (byte-compile '(code stackitems flowstack opcode) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-basic-two-op (cons code (cons stackitems (cons flowstack (cons opcode #f)))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (cons (cons opcode '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f stackitems) flowstack))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)))))))
 // (#lambda "\x84#Ll\x97\x46\x81L\x84I\x84I\x84I\x84I0ccccc\x82Ll\x81\x43\x81G0D\x83i\x84I\x83Ll\x81\x43\x85?\x87\x46\x83I\x84L:\x81G0DIic0c0\x85Idda0\x86Ic\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x85Ida\x85I\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x84R" '(byte-compile-debug byte-compile-basic-two-op #dprint list-length argument-error byte-compile-helper))
 // (#lambda "\x84#Ll\x96\x46\x81L\x84I\x84I\x84I\x84I0ccccc\x82Ll\x81\x43\x44\x83i\x84I\x83Ll\x81\x43\x85?\x85\x46\x83I\x84L:Iic0c0\x85Idda0\x86Ic\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x85Ida\x85I\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83P\x82\x44R" '(byte-compile-debug byte-compile-basic-two-op #dprint list-length argument-error byte-compile-helper))
 	s=new_string("\x84#Ll\x96\x46\x81L\x84I\x84I\x84I\x84I0ccccc\x82Ll\x81\x43\x44\x83i\x84I\x83Ll\x81\x43\x85?\x85\x46\x83I\x84L:Iic0c0\x85Idda0\x86Ic\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x85Ida\x85I\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83P\x82\x44R",147);
@@ -872,8 +872,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-basic-one-op code stackitems loopheight opcode) (if byte-compile-debug (dprint 'byte-compile-basic-one-op code stackitems loopheight opcode)) (if (<> 2 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems loopheight) (list (list opcode . '0))))
-// (#define 'byte-compile-basic-one-op (byte-compile '(code stackitems loopheight opcode) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-basic-one-op (cons code (cons stackitems (cons loopheight (cons opcode #f)))))) '#f) '(#prog2of2 (#ifelse (<> 2 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (cons (cons opcode '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)))))))
+// (define (byte-compile-basic-one-op code stackitems flowstack opcode) (if byte-compile-debug (dprint 'byte-compile-basic-one-op code stackitems flowstack opcode)) (if (<> 2 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems flowstack) (list (list opcode . '0))))
+// (#define 'byte-compile-basic-one-op (byte-compile '(code stackitems flowstack opcode) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-basic-one-op (cons code (cons stackitems (cons flowstack (cons opcode #f)))))) '#f) '(#prog2of2 (#ifelse (<> 2 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (cons (cons opcode '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)))))))
 // (#lambda "\x84#Ll\x97\x46\x81L\x84I\x84I\x84I\x84I0ccccc\x82Ll\x81\x43\x81G0D\x82i\x84I\x83Ll\x81\x43\x85?\x87\x46\x83I\x84L:\x81G0DIic0c0\x85Ida\x85I\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x84R" '(byte-compile-debug byte-compile-basic-one-op #dprint list-length argument-error byte-compile-helper))
 // (#lambda "\x84#Ll\x96\x46\x81L\x84I\x84I\x84I\x84I0ccccc\x82Ll\x81\x43\x44\x82i\x84I\x83Ll\x81\x43\x85?\x85\x46\x83I\x84L:Iic0c0\x85Ida\x85I\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83P\x82\x44R" '(byte-compile-debug byte-compile-basic-one-op #dprint list-length argument-error byte-compile-helper))
 	s=new_string("\x84#Ll\x96\x46\x81L\x84I\x84I\x84I\x84I0ccccc\x82Ll\x81\x43\x44\x82i\x84I\x83Ll\x81\x43\x85?\x85\x46\x83I\x84L:Iic0c0\x85Ida\x85I\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83P\x82\x44R",100);
@@ -1228,8 +1228,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-and code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-and code stackitems loopheight)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (let ((b (byte-compile-helper (unquote (caddr code)) stackitems loopheight))) (append (byte-compile-helper (cadr code) stackitems loopheight) (list (list 'index . '0)) (list (cons 'bf (+ 1 (list-length b)))) (list (list 'pop . '0)) b)))
-// (#define 'byte-compile-and (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-and (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#let 'b (byte-compile-helper (unquote (car (cdr (cdr code)))) stackitems loopheight) '(#append/reversed (cons (cons 'index '0) (cons (cons 'bf (+ 1 (list-length b))) (cons (cons 'pop '0) b))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight))))))))
+// (define (byte-compile-and code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-and code stackitems flowstack)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (let ((b (byte-compile-helper (unquote (caddr code)) stackitems flowstack))) (append (byte-compile-helper (cadr code) stackitems flowstack) (list (list 'index . '0)) (list (cons 'bf (+ 1 (list-length b)))) (list (list 'pop . '0)) b)))
+// (#define 'byte-compile-and (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-and (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#let 'b (byte-compile-helper (unquote (car (cdr (cdr code)))) stackitems flowstack) '(#append/reversed (cons (cons 'index '0) (cons (cons 'bf (+ 1 (list-length b))) (cons (cons 'pop '0) b))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack))))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x83i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x82Idda,\x82I\x82I\x85Ll\x83\x43\x86Lic\x87L\x81i\x83I\x83Ll\x81\x43+c\x88Lic\x83Iccc0\x85Ida\x85I\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDP\x83R" '(byte-compile-debug byte-compile-and #dprint list-length argument-error byte-compile-helper index bf pop))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Idda,\x82I\x82I\x85Ll\x83\x43\x86Lic\x87L\x81i\x83I\x83Ll\x81\x43+c\x88Lic\x83Iccc0\x85Ida\x85I\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDP\x82P\x81\x44R" '(byte-compile-debug byte-compile-and #dprint list-length argument-error byte-compile-helper index bf pop))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Idda,\x82I\x82I\x85Ll\x83\x43\x86Lic\x87L\x81i\x83I\x83Ll\x81\x43+c\x88Lic\x83Iccc0\x85Ida\x85I\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDP\x82P\x81\x44R",134);
@@ -1301,8 +1301,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-append/reversed code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-append/reversed code stackitems loopheight)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems loopheight) (byte-compile-helper (caddr code) (cons #f stackitems) loopheight) (list (list 'index . '0)) (list (list 'bf . '8)) (list (list 'index . '0)) (list (list 'car . '0)) (list (list 'index . '2)) (list (list 'cons . '0)) (list (list 'put . '1)) (list (list 'cdr . '0)) (list (list 'index . '0)) (list (list 'bt . '-8)) (list (list 'pop . '0))))
-// (#define 'byte-compile-append/reversed (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-append/reversed (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (cons (cons 'index '0) (cons (cons 'bf '8) (cons (cons 'index '0) (cons (cons 'car '0) (cons (cons 'index '2) (cons (cons 'cons '0) (cons (cons 'put '1) (cons (cons 'cdr '0) (cons (cons 'index '0) (cons (cons 'bt '-8) (cons (cons 'pop '0) #f))))))))))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f stackitems) loopheight))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)))))))
+// (define (byte-compile-append/reversed code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-append/reversed code stackitems flowstack)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems flowstack) (byte-compile-helper (caddr code) (cons #f stackitems) flowstack) (list (list 'index . '0)) (list (list 'bf . '8)) (list (list 'index . '0)) (list (list 'car . '0)) (list (list 'index . '2)) (list (list 'cons . '0)) (list (list 'put . '1)) (list (list 'cdr . '0)) (list (list 'index . '0)) (list (list 'bt . '-8)) (list (list 'pop . '0))))
+// (#define 'byte-compile-append/reversed (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-append/reversed (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (cons (cons 'index '0) (cons (cons 'bf '8) (cons (cons 'index '0) (cons (cons 'car '0) (cons (cons 'index '2) (cons (cons 'cons '0) (cons (cons 'put '1) (cons (cons 'cdr '0) (cons (cons 'index '0) (cons (cons 'bt '-8) (cons (cons 'pop '0) #f))))))))))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f stackitems) flowstack))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x83i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x85Lic\x86L\x88ic\x85Lic\x87Lic\x85L\x82ic\x88Lic\x89L\x81ic\x8ALic\x85Lic\x8BL\xF8ic\x8CLic0ccccccccccc0\x84Idda0\x85Ic\x84I\x8DLl\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x8DLl\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83R" '(byte-compile-debug byte-compile-append/reversed #dprint list-length argument-error index bf car cons put cdr bt pop byte-compile-helper))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic\x86L\x88ic\x85Lic\x87Lic\x85L\x82ic\x88Lic\x89L\x81ic\x8ALic\x85Lic\x8BL\xF8ic\x8CLic0ccccccccccc0\x84Idda0\x85Ic\x84I\x8DLl\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x8DLl\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R" '(byte-compile-debug byte-compile-append/reversed #dprint list-length argument-error index bf car cons put cdr bt pop byte-compile-helper))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic\x86L\x88ic\x85Lic\x87Lic\x85L\x82ic\x88Lic\x89L\x81ic\x8ALic\x85Lic\x8BL\xF8ic\x8CLic0ccccccccccc0\x84Idda0\x85Ic\x84I\x8DLl\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x8DLl\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R",199);
@@ -1394,8 +1394,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-bit-select code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-bit-select code stackitems loopheight)) (if (<> 4 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems loopheight) (byte-compile-helper (caddr code) (cons #f stackitems) loopheight) (byte-compile-helper (cadddr code) (cons #f (cons #f stackitems)) loopheight) (list (list 'bitsel . '0))))
-// (#define 'byte-compile-bit-select (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-bit-select (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 4 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (#append/reversed (cons (cons 'bitsel '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr (cdr (cdr code)))) (cons #f (cons #f stackitems)) loopheight))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f stackitems) loopheight))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)))))))
+// (define (byte-compile-bit-select code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-bit-select code stackitems flowstack)) (if (<> 4 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems flowstack) (byte-compile-helper (caddr code) (cons #f stackitems) flowstack) (byte-compile-helper (cadddr code) (cons #f (cons #f stackitems)) flowstack) (list (list 'bitsel . '0))))
+// (#define 'byte-compile-bit-select (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-bit-select (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 4 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (#append/reversed (cons (cons 'bitsel '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr (cdr (cdr code)))) (cons #f (cons #f stackitems)) flowstack))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f stackitems) flowstack))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x84i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x85Lic0c0\x84Iddda00\x86Icc\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Idda0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83R" '(byte-compile-debug byte-compile-bit-select #dprint list-length argument-error bitsel byte-compile-helper))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0\x84Iddda00\x86Icc\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Idda0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R" '(byte-compile-debug byte-compile-bit-select #dprint list-length argument-error bitsel byte-compile-helper))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0\x84Iddda00\x86Icc\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Idda0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R",195);
@@ -1459,8 +1459,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-bit-not code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-bit-not code stackitems loopheight)) (if (<> 2 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems loopheight) (byte-compile-helper -1 (cons #f stackitems) loopheight) (byte-compile-helper 0 (cons #f (cons #f stackitems)) loopheight) (list (list 'bitsel . '0))))
-// (#define 'byte-compile-bit-not (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-bit-not (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 2 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (#append/reversed (cons (cons 'bitsel '0) #f) (#append/reversed #f (byte-compile-helper 0 (cons #f (cons #f stackitems)) loopheight))) (#append/reversed #f (byte-compile-helper -1 (cons #f stackitems) loopheight))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)))))))
+// (define (byte-compile-bit-not code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-bit-not code stackitems flowstack)) (if (<> 2 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems flowstack) (byte-compile-helper -1 (cons #f stackitems) flowstack) (byte-compile-helper 0 (cons #f (cons #f stackitems)) flowstack) (list (list 'bitsel . '0))))
+// (#define 'byte-compile-bit-not (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-bit-not (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 2 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (#append/reversed (cons (cons 'bitsel '0) #f) (#append/reversed #f (byte-compile-helper 0 (cons #f (cons #f stackitems)) flowstack))) (#append/reversed #f (byte-compile-helper -1 (cons #f stackitems) flowstack))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x82i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x85Lic0c0i00\x86Icc\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\xFFi0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83R" '(byte-compile-debug byte-compile-bit-not #dprint list-length argument-error bitsel byte-compile-helper))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0i00\x86Icc\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\xFFi0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R" '(byte-compile-debug byte-compile-bit-not #dprint list-length argument-error bitsel byte-compile-helper))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0i00\x86Icc\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\xFFi0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R",187);
@@ -1524,8 +1524,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-bit-and code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-bit-and code stackitems loopheight)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems loopheight) (byte-compile-helper 0 (cons #f stackitems) loopheight) (byte-compile-helper (caddr code) (cons #f (cons #f stackitems)) loopheight) (list (list 'bitsel . '0))))
-// (#define 'byte-compile-bit-and (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-bit-and (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (#append/reversed (cons (cons 'bitsel '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f (cons #f stackitems)) loopheight))) (#append/reversed #f (byte-compile-helper 0 (cons #f stackitems) loopheight))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)))))))
+// (define (byte-compile-bit-and code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-bit-and code stackitems flowstack)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems flowstack) (byte-compile-helper 0 (cons #f stackitems) flowstack) (byte-compile-helper (caddr code) (cons #f (cons #f stackitems)) flowstack) (list (list 'bitsel . '0))))
+// (#define 'byte-compile-bit-and (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-bit-and (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (#append/reversed (cons (cons 'bitsel '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f (cons #f stackitems)) flowstack))) (#append/reversed #f (byte-compile-helper 0 (cons #f stackitems) flowstack))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x83i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x85Lic0c0\x84Idda00\x86Icc\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0i0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83R" '(byte-compile-debug byte-compile-bit-and #dprint list-length argument-error bitsel byte-compile-helper))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0\x84Idda00\x86Icc\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0i0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R" '(byte-compile-debug byte-compile-bit-and #dprint list-length argument-error bitsel byte-compile-helper))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0\x84Idda00\x86Icc\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0i0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R",190);
@@ -1589,8 +1589,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-bit-or code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-bit-or code stackitems loopheight)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems loopheight) (byte-compile-helper (caddr code) (cons #f stackitems) loopheight) (byte-compile-helper -1 (cons #f (cons #f stackitems)) loopheight) (list (list 'bitsel . '0))))
-// (#define 'byte-compile-bit-or (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-bit-or (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (#append/reversed (cons (cons 'bitsel '0) #f) (#append/reversed #f (byte-compile-helper -1 (cons #f (cons #f stackitems)) loopheight))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f stackitems) loopheight))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)))))))
+// (define (byte-compile-bit-or code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-bit-or code stackitems flowstack)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems flowstack) (byte-compile-helper (caddr code) (cons #f stackitems) flowstack) (byte-compile-helper -1 (cons #f (cons #f stackitems)) flowstack) (list (list 'bitsel . '0))))
+// (#define 'byte-compile-bit-or (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-bit-or (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (#append/reversed (cons (cons 'bitsel '0) #f) (#append/reversed #f (byte-compile-helper -1 (cons #f (cons #f stackitems)) flowstack))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f stackitems) flowstack))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x83i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x85Lic0c0\xFFi00\x86Icc\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Idda0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83R" '(byte-compile-debug byte-compile-bit-or #dprint list-length argument-error bitsel byte-compile-helper))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0\xFFi00\x86Icc\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Idda0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R" '(byte-compile-debug byte-compile-bit-or #dprint list-length argument-error bitsel byte-compile-helper))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0\xFFi00\x86Icc\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Idda0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R",191);
@@ -1654,8 +1654,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-bit-xor code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-bit-xor code stackitems loopheight)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems loopheight) (byte-compile-helper (caddr code) (cons #f stackitems) loopheight) (list (list 'index . '0)) (list (list 'pushi . '-1)) (list (list 'pushi . '0)) (list (list 'bitsel . '0)) (list (list 'bitsel . '0))))
-// (#define 'byte-compile-bit-xor (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-bit-xor (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (cons (cons 'index '0) (cons (cons 'pushi '-1) (cons (cons 'pushi '0) (cons (cons 'bitsel '0) (cons (cons 'bitsel '0) #f))))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f stackitems) loopheight))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)))))))
+// (define (byte-compile-bit-xor code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-bit-xor code stackitems flowstack)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems flowstack) (byte-compile-helper (caddr code) (cons #f stackitems) flowstack) (list (list 'index . '0)) (list (list 'pushi . '-1)) (list (list 'pushi . '0)) (list (list 'bitsel . '0)) (list (list 'bitsel . '0))))
+// (#define 'byte-compile-bit-xor (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-bit-xor (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (cons (cons 'index '0) (cons (cons 'pushi '-1) (cons (cons 'pushi '0) (cons (cons 'bitsel '0) (cons (cons 'bitsel '0) #f))))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f stackitems) flowstack))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x83i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x85Lic\x86L\xFFic\x86Lic\x87Lic\x87Lic0ccccc0\x84Idda0\x85Ic\x84I\x88Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x88Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83R" '(byte-compile-debug byte-compile-bit-xor #dprint list-length argument-error index pushi bitsel byte-compile-helper))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic\x86L\xFFic\x86Lic\x87Lic\x87Lic0ccccc0\x84Idda0\x85Ic\x84I\x88Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x88Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R" '(byte-compile-debug byte-compile-bit-xor #dprint list-length argument-error index pushi bitsel byte-compile-helper))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic\x86L\xFFic\x86Lic\x87Lic\x87Lic0ccccc0\x84Idda0\x85Ic\x84I\x88Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x88Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R",166);
@@ -1727,11 +1727,11 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-catch code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-catch code stackitems loopheight)) (if (<> 4 (list-length code)) (throw 'argument-error code)) (let ((type (cadr code)) (trialcode (caddr code)) (badcode (cadddr code))) (if (eq? type '#f) (set type #f)) (set trialcode (byte-compile-helper (unquote trialcode) stackitems loopheight)) (set badcode (byte-compile-helper (unquote badcode) stackitems loopheight)) (if type (set badcode (append (byte-compile-helper type stackitems loopheight) (list (list 'extype . '0)) (list (list 'eq . '0)) (list (list 'bt . '3)) (list (list 'exvalue . '0)) (list (list 'extype . '0)) (list (list 'throw . '0)) badcode))) (append (list (cons 'catch (+ (list-length trialcode) 2))) trialcode (list (list 'toss . '0)) (list (cons 'goto (list-length badcode))) badcode)))
-// (#define 'byte-compile-catch (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-catch (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 4 (list-length code)) '(throw 'argument-error code) '#f) '(#let 'type (car (cdr code)) '(#let 'trialcode (car (cdr (cdr code))) '(#let 'badcode (car (cdr (cdr (cdr code)))) '(#prog2of2 (#ifelse (eq? type '#f) '(#set 'type #f) '#f) '(#prog2of2 (#set 'trialcode (byte-compile-helper (unquote trialcode) stackitems loopheight)) '(#prog2of2 (#set 'badcode (byte-compile-helper (unquote badcode) stackitems loopheight)) '(#prog2of2 (#ifelse type '(#set 'badcode (#append/reversed (cons (cons 'extype '0) (cons (cons 'eq '0) (cons (cons 'bt '3) (cons (cons 'exvalue '0) (cons (cons 'extype '0) (cons (cons 'throw '0) badcode)))))) (#append/reversed #f (byte-compile-helper type stackitems loopheight)))) '#f) '(cons (cons 'catch (+ (list-length trialcode) 2)) (#append/reversed (cons (cons 'toss '0) (cons (cons 'goto (list-length badcode)) badcode)) (#append/reversed #f trialcode))))))))))))))
-// (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x84i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x82Ida\x83Idda\x84Iddda\x82I0=\x86\x46\x30I\x83P\x81G0D\x81I,\x85I\x85I\x85Ll\x83\x43I\x82PDI,\x85I\x85I\x85Ll\x83\x43I\x81PD\x82I\x80\xD0\x46\x86Lic\x87Lic\x88L\x83ic\x89Lic\x86Lic\x8ALic\x86Icccccc0\x84I\x87I\x87I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x81P\x81G0D\x8BL\x82I\x83Ll\x81\x43\x82i+c\x8CLic\x8DL\x83I\x83Ll\x81\x43\x63\x83Icc0\x84II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDcPPP\x83R" '(byte-compile-debug byte-compile-catch #dprint list-length argument-error byte-compile-helper extype eq bt exvalue throw catch toss goto))
-// (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida\x83Idda\x84Iddda\x82I0=\x83\x46\x30\x82P\x81I,\x85I\x85I\x85Ll\x83\x43\x81PI,\x85I\x85I\x85Ll\x83\x43P\x82I\x80\xCC\x46\x86Lic\x87Lic\x88L\x83ic\x89Lic\x86Lic\x8ALic\x86Icccccc0\x84I\x87I\x87I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDP\x8BL\x82I\x83Ll\x81\x43\x82i+c\x8CLic\x8DL\x83I\x83Ll\x81\x43\x63\x83Icc0\x84II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDcPPP\x82P\x81\x44R" '(byte-compile-debug byte-compile-catch #dprint list-length argument-error byte-compile-helper extype eq bt exvalue throw catch toss goto))
-	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida\x83Idda\x84Iddda\x82I0=\x83\x46\x30\x82P\x81I,\x85I\x85I\x85Ll\x83\x43\x81PI,\x85I\x85I\x85Ll\x83\x43P\x82I\x80\xCC\x46\x86Lic\x87Lic\x88L\x83ic\x89Lic\x86Lic\x8ALic\x86Icccccc0\x84I\x87I\x87I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDP\x8BL\x82I\x83Ll\x81\x43\x82i+c\x8CLic\x8DL\x83I\x83Ll\x81\x43\x63\x83Icc0\x84II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDcPPP\x82P\x81\x44R",247);
+// (define (byte-compile-catch code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-catch code stackitems flowstack)) (if (<> 4 (list-length code)) (throw 'argument-error code)) (let ((type (cadr code)) (trialcode (caddr code)) (badcode (cadddr code))) (if (eq? type '#f) (set type #f)) (set trialcode (byte-compile-helper (unquote trialcode) stackitems (cons (cons 'catch #f) flowstack))) (set badcode (byte-compile-helper (unquote badcode) stackitems flowstack)) (if type (set badcode (append (byte-compile-helper type stackitems flowstack) (list (list 'extype . '0)) (list (list 'eq . '0)) (list (list 'bt . '3)) (list (list 'exvalue . '0)) (list (list 'extype . '0)) (list (list 'throw . '0)) badcode))) (append (list (cons 'catch (+ (list-length trialcode) 2))) trialcode (list (list 'toss . '0)) (list (cons 'goto (list-length badcode))) badcode)))
+// (#define 'byte-compile-catch (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-catch (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 4 (list-length code)) '(throw 'argument-error code) '#f) '(#let 'type (car (cdr code)) '(#let 'trialcode (car (cdr (cdr code))) '(#let 'badcode (car (cdr (cdr (cdr code)))) '(#prog2of2 (#ifelse (eq? type '#f) '(#set 'type #f) '#f) '(#prog2of2 (#set 'trialcode (byte-compile-helper (unquote trialcode) stackitems (cons (cons 'catch #f) flowstack))) '(#prog2of2 (#set 'badcode (byte-compile-helper (unquote badcode) stackitems flowstack)) '(#prog2of2 (#ifelse type '(#set 'badcode (#append/reversed (cons (cons 'extype '0) (cons (cons 'eq '0) (cons (cons 'bt '3) (cons (cons 'exvalue '0) (cons (cons 'extype '0) (cons (cons 'throw '0) badcode)))))) (#append/reversed #f (byte-compile-helper type stackitems flowstack)))) '#f) '(cons (cons 'catch (+ (list-length trialcode) 2)) (#append/reversed (cons (cons 'toss '0) (cons (cons 'goto (list-length badcode)) badcode)) (#append/reversed #f trialcode))))))))))))))
+// (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x84i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x82Ida\x83Idda\x84Iddda\x82I0=\x86\x46\x30I\x83P\x81G0D\x81I,\x85I\x85L0c\x86Ic\x86Ll\x83\x43I\x82PDI,\x85I\x85I\x86Ll\x83\x43I\x81PD\x82I\x80\xD0\x46\x87Lic\x88Lic\x89L\x83ic\x8ALic\x87Lic\x8BLic\x86Icccccc0\x84I\x87I\x87I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x81P\x81G0D\x85L\x82I\x83Ll\x81\x43\x82i+c\x8CLic\x8DL\x83I\x83Ll\x81\x43\x63\x83Icc0\x84II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDcPPP\x83R" '(byte-compile-debug byte-compile-catch #dprint list-length argument-error catch byte-compile-helper extype eq bt exvalue throw toss goto))
+// (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida\x83Idda\x84Iddda\x82I0=\x83\x46\x30\x82P\x81I,\x85I\x85L0c\x86Ic\x86Ll\x83\x43\x81PI,\x85I\x85I\x86Ll\x83\x43P\x82I\x80\xCC\x46\x87Lic\x88Lic\x89L\x83ic\x8ALic\x87Lic\x8BLic\x86Icccccc0\x84I\x87I\x87I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDP\x85L\x82I\x83Ll\x81\x43\x82i+c\x8CLic\x8DL\x83I\x83Ll\x81\x43\x63\x83Icc0\x84II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDcPPP\x82P\x81\x44R" '(byte-compile-debug byte-compile-catch #dprint list-length argument-error catch byte-compile-helper extype eq bt exvalue throw toss goto))
+	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida\x83Idda\x84Iddda\x82I0=\x83\x46\x30\x82P\x81I,\x85I\x85L0c\x86Ic\x86Ll\x83\x43\x81PI,\x85I\x85I\x86Ll\x83\x43P\x82I\x80\xCC\x46\x87Lic\x88Lic\x89L\x83ic\x8ALic\x87Lic\x8BLic\x86Icccccc0\x84I\x87I\x87I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDP\x85L\x82I\x83Ll\x81\x43\x82i+c\x8CLic\x8DL\x83I\x83Ll\x81\x43\x63\x83Icc0\x84II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDcPPP\x82P\x81\x44R",252);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_word("goto",4);
@@ -1742,10 +1742,6 @@
 	if(!o) return(1);
 	c=cons(o,c);
 	if(!c) return(1);
-	o=new_word("catch",5);
-	if(!o) return(1);
-	c=cons(o,c);
-	if(!c) return(1);
 	o=new_word("throw",5);
 	if(!o) return(1);
 	c=cons(o,c);
@@ -1770,6 +1766,10 @@
 	if(!o) return(1);
 	c=cons(o,c);
 	if(!c) return(1);
+	o=new_word("catch",5);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
 	o=new_word("argument-error",14);
 	if(!o) return(1);
 	c=cons(o,c);
@@ -1820,8 +1820,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-define code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-define code stackitems loopheight)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (ifelse (quoted? (cadr code)) (let ((var (unquote (cadr code))) (val (byte-compile-helper (caddr code) stackitems loopheight))) (unless (eq? 'word (object-type var)) (throw 'argument-error code)) (let ((pos (list-index stackitems var))) (ifelse pos (append val (list (list 'index . '0)) (list (cons 'put (+ pos 1)))) (append val (list (cons 'localobj var)) (list (list 'define . '0)))))) (let ((val (byte-compile-helper (caddr code) stackitems loopheight)) (var (byte-compile-helper (cadr code) (cons #f stackitems) loopheight))) (append val var (list (list 'define . '0))))))
-// (#define 'byte-compile-define (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-define (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#ifelse (quoted? (car (cdr code))) '(#let 'var (unquote (car (cdr code))) '(#let 'val (byte-compile-helper (car (cdr (cdr code))) stackitems loopheight) '(#prog2of2 (#ifelse (eq? 'word (object-type var)) '#f '(throw 'argument-error code)) '(#let 'pos (list-index stackitems var) '(#ifelse pos '(#append/reversed (cons (cons 'index '0) (cons (cons 'put (+ pos 1)) #f)) (#append/reversed #f val)) '(#append/reversed (cons (cons 'localobj var) (cons (cons 'define '0) #f)) (#append/reversed #f val))))))) '(#let 'val (byte-compile-helper (car (cdr (cdr code))) stackitems loopheight) '(#let 'var (byte-compile-helper (car (cdr code)) (cons #f stackitems) loopheight) '(#append/reversed (#append/reversed (cons (cons 'define '0) #f) (#append/reversed #f var)) (#append/reversed #f val)))))))))
+// (define (byte-compile-define code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-define code stackitems flowstack)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (ifelse (quoted? (cadr code)) (let ((var (unquote (cadr code))) (val (byte-compile-helper (caddr code) stackitems flowstack))) (unless (eq? 'word (object-type var)) (throw 'argument-error code)) (let ((pos (list-index stackitems var))) (ifelse pos (append val (list (list 'index . '0)) (list (cons 'put (+ pos 1)))) (append val (list (cons 'localobj var)) (list (list 'define . '0)))))) (let ((val (byte-compile-helper (caddr code) stackitems flowstack)) (var (byte-compile-helper (cadr code) (cons #f stackitems) flowstack))) (append val var (list (list 'define . '0))))))
+// (#define 'byte-compile-define (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-define (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#ifelse (quoted? (car (cdr code))) '(#let 'var (unquote (car (cdr code))) '(#let 'val (byte-compile-helper (car (cdr (cdr code))) stackitems flowstack) '(#prog2of2 (#ifelse (eq? 'word (object-type var)) '#f '(throw 'argument-error code)) '(#let 'pos (list-index stackitems var) '(#ifelse pos '(#append/reversed (cons (cons 'index '0) (cons (cons 'put (+ pos 1)) #f)) (#append/reversed #f val)) '(#append/reversed (cons (cons 'localobj var) (cons (cons 'define '0) #f)) (#append/reversed #f val))))))) '(#let 'val (byte-compile-helper (car (cdr (cdr code))) stackitems flowstack) '(#let 'var (byte-compile-helper (car (cdr code)) (cons #f stackitems) flowstack) '(#append/reversed (#append/reversed (cons (cons 'define '0) #f) (#append/reversed #f var)) (#append/reversed #f val)))))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x83i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x82Ida\x85Ll\x81\x43\x81\x95\x46\x82Ida,\x83Idda\x83I\x83I\x86Ll\x83\x43\x87L\x82IO=\x83\x46\x30\x85G\x84I\x84L:D\x83I\x82I\x88Ll\x82\x43I\xB2\x46\x89Lic\x8AL\x82I\x81i+c0cc0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\xADG\x8BL\x83Ic\x8CLic0cc0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPP\x80\xE7G\x82Idda\x82I\x82I\x86Ll\x83\x43\x83Ida0\x84Ic\x83I\x86Ll\x83\x43\x8CLic0c0\x82II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x83R" '(byte-compile-debug byte-compile-define #dprint list-length argument-error quoted? byte-compile-helper word list-index index put localobj define))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida\x85Ll\x81\x43\x81\x93\x46\x82Ida,\x83Idda\x83I\x83I\x86Ll\x83\x43\x87L\x82IO=\x85T\x84I\x84L:\x83I\x82I\x88Ll\x82\x43I\xB2\x46\x89Lic\x8AL\x82I\x81i+c0cc0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\xADG\x8BL\x83Ic\x8CLic0cc0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPP\x82P\x81\x44R\x82Idda\x82I\x82I\x86Ll\x83\x43\x83Ida0\x84Ic\x83I\x86Ll\x83\x43\x8CLic0c0\x82II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x82P\x81\x44R" '(byte-compile-debug byte-compile-define #dprint list-length argument-error quoted? byte-compile-helper word list-index index put localobj define))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida\x85Ll\x81\x43\x81\x93\x46\x82Ida,\x83Idda\x83I\x83I\x86Ll\x83\x43\x87L\x82IO=\x85T\x84I\x84L:\x83I\x82I\x88Ll\x82\x43I\xB2\x46\x89Lic\x8AL\x82I\x81i+c0cc0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\xADG\x8BL\x83Ic\x8CLic0cc0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPP\x82P\x81\x44R\x82Idda\x82I\x82I\x86Ll\x83\x43\x83Ida0\x84Ic\x83I\x86Ll\x83\x43\x8CLic0c0\x82II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x82P\x81\x44R",310);
@@ -1909,8 +1909,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-filter code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-filter code stackitems loopheight)) (if (<> 4 (list-length code)) (throw 'argument-error code)) (unless (quoted? (cadr code)) (throw 'argument-error code)) (let ((var (unquote (cadr code))) (filter (byte-compile-helper (unquote (caddr code)) (cons var (cons #f (cons #f stackitems))) loopheight))) (unless (word? var) (throw 'argument-error code)) (append (byte-compile-helper (cadddr code) stackitems loopheight) (list (list 'index . '0)) (list (cons 'bf (+ 3 (list-length filter) 20))) (list (list 'nil . '0)) (list (list 'index . '1)) (list (list 'car . '0)) filter (list (list 'put . '0)) (list (list 'bf . '4)) (list (list 'index . '1)) (list (list 'car . '0)) (list (list 'exch . '0)) (list (list 'cons . '0)) (list (list 'index . '1)) (list (list 'cdr . '0)) (list (list 'put . '1)) (list (list 'index . '1)) (list (cons 'bt (- 0 2 (list-length filter) 11))) (list (list 'index . '0)) (list (list 'car . '0)) (list (list 'index . '2)) (list (list 'cons . '0)) (list (list 'put . '1)) (list (list 'cdr . '0)) (list (list 'index . '0)) (list (list 'bt . '-8)) (list (list 'pop . '0)))))
-// (#define 'byte-compile-filter (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-filter (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 4 (list-length code)) '(throw 'argument-error code) '#f) '(#prog2of2 (#ifelse (quoted? (car (cdr code))) '#f '(throw 'argument-error code)) '(#let 'var (unquote (car (cdr code))) '(#let 'filter (byte-compile-helper (unquote (car (cdr (cdr code)))) (cons var (cons #f (cons #f stackitems))) loopheight) '(#prog2of2 (#ifelse (word? var) '#f '(throw 'argument-error code)) '(#append/reversed (cons (cons 'index '0) (cons (cons 'bf (+ (+ 3 (list-length filter)) 20)) (cons (cons 'nil '0) (cons (cons 'index '1) (cons (cons 'car '0) (#append/reversed (cons (cons 'put '0) (cons (cons 'bf '4) (cons (cons 'index '1) (cons (cons 'car '0) (cons (cons 'exch '0) (cons (cons 'cons '0) (cons (cons 'index '1) (cons (cons 'cdr '0) (cons (cons 'put '1) (cons (cons 'index '1) (cons (cons 'bt (- (- (- 0 2) (list-length filter)) 11)) (cons (cons 'index '0) (cons (cons 'car '0) (cons (cons 'index '2) (cons (cons 'cons '0) (cons (cons 'put '1) (cons (cons 'cdr '0) (cons (cons 'index '0) (cons (cons 'bt '-8) (cons (cons 'pop '0) #f)))))))))))))))))))) (#append/reversed #f filter))))))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr (cdr code)))) stackitems loopheight)))))))))))
+// (define (byte-compile-filter code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-filter code stackitems flowstack)) (if (<> 4 (list-length code)) (throw 'argument-error code)) (unless (quoted? (cadr code)) (throw 'argument-error code)) (let ((var (unquote (cadr code))) (filter (byte-compile-helper (unquote (caddr code)) (cons var (cons #f (cons #f stackitems))) flowstack))) (unless (word? var) (throw 'argument-error code)) (append (byte-compile-helper (cadddr code) stackitems flowstack) (list (list 'index . '0)) (list (cons 'bf (+ 3 (list-length filter) 20))) (list (list 'nil . '0)) (list (list 'index . '1)) (list (list 'car . '0)) filter (list (list 'put . '0)) (list (list 'bf . '4)) (list (list 'index . '1)) (list (list 'car . '0)) (list (list 'exch . '0)) (list (list 'cons . '0)) (list (list 'index . '1)) (list (list 'cdr . '0)) (list (list 'put . '1)) (list (list 'index . '1)) (list (cons 'bt (- 0 2 (list-length filter) 11))) (list (list 'index . '0)) (list (list 'car . '0)) (list (list 'index . '2)) (list (list 'cons . '0)) (list (list 'put . '1)) (list (list 'cdr . '0)) (list (list 'index . '0)) (list (list 'bt . '-8)) (list (list 'pop . '0)))))
+// (#define 'byte-compile-filter (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-filter (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 4 (list-length code)) '(throw 'argument-error code) '#f) '(#prog2of2 (#ifelse (quoted? (car (cdr code))) '#f '(throw 'argument-error code)) '(#let 'var (unquote (car (cdr code))) '(#let 'filter (byte-compile-helper (unquote (car (cdr (cdr code)))) (cons var (cons #f (cons #f stackitems))) flowstack) '(#prog2of2 (#ifelse (word? var) '#f '(throw 'argument-error code)) '(#append/reversed (cons (cons 'index '0) (cons (cons 'bf (+ (+ 3 (list-length filter)) 20)) (cons (cons 'nil '0) (cons (cons 'index '1) (cons (cons 'car '0) (#append/reversed (cons (cons 'put '0) (cons (cons 'bf '4) (cons (cons 'index '1) (cons (cons 'car '0) (cons (cons 'exch '0) (cons (cons 'cons '0) (cons (cons 'index '1) (cons (cons 'cdr '0) (cons (cons 'put '1) (cons (cons 'index '1) (cons (cons 'bt (- (- (- 0 2) (list-length filter)) 11)) (cons (cons 'index '0) (cons (cons 'car '0) (cons (cons 'index '2) (cons (cons 'cons '0) (cons (cons 'put '1) (cons (cons 'cdr '0) (cons (cons 'index '0) (cons (cons 'bt '-8) (cons (cons 'pop '0) #f)))))))))))))))))))) (#append/reversed #f filter))))))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr (cdr code)))) stackitems flowstack)))))))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x84i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x82Ida\x85Ll\x81\x43\x83\x46\x30\x85G\x82I\x84L:D\x82Ida,\x83Idda,\x81I00\x86Iccc\x83I\x86Ll\x83\x43\x81I\x87Ll\x81\x43\x83\x46\x30\x85G\x84I\x84L:D\x88Lic\x89L\x83i\x83I\x83Ll\x81\x43+\x94i+c\x8ALic\x88L\x81ic\x8BLic\x8CLic\x89L\x84ic\x88L\x81ic\x8BLic\x8DLic\x8ELic\x88L\x81ic\x8FLic\x8CL\x81ic\x88L\x81ic\x90Li\x82i-\x91I\x83Ll\x81\x43-\x8Bi-c\x88Lic\x8BLic\x88L\x82ic\x8ELic\x8CL\x81ic\x8FLic\x88Lic\x90L\xF8ic\x91Lic0cccccccccccccccccccc0\x87II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDccccc0\x86Iddda\x86I\x86I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x83R" '(byte-compile-debug byte-compile-filter #dprint list-length argument-error quoted? byte-compile-helper word? index bf nil car put exch cons cdr bt pop))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida\x85Ll\x81\x43\x85T\x82I\x84L:\x82Ida,\x83Idda,\x81I00\x86Iccc\x83I\x86Ll\x83\x43\x81I\x87Ll\x81\x43\x85T\x84I\x84L:\x88Lic\x89L\x83i\x83I\x83Ll\x81\x43+\x94i+c\x8ALic\x88L\x81ic\x8BLic\x8CLic\x89L\x84ic\x88L\x81ic\x8BLic\x8DLic\x8ELic\x88L\x81ic\x8FLic\x8CL\x81ic\x88L\x81ic\x90L\xFEi\x91I\x83Ll\x81\x43-\x8Bi-c\x88Lic\x8BLic\x88L\x82ic\x8ELic\x8CL\x81ic\x8FLic\x88Lic\x90L\xF8ic\x91Lic0cccccccccccccccccccc0\x87II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDccccc0\x86Iddda\x86I\x86I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x82P\x81\x44R" '(byte-compile-debug byte-compile-filter #dprint list-length argument-error quoted? byte-compile-helper word? index bf nil car put exch cons cdr bt pop))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida\x85Ll\x81\x43\x85T\x82I\x84L:\x82Ida,\x83Idda,\x81I00\x86Iccc\x83I\x86Ll\x83\x43\x81I\x87Ll\x81\x43\x85T\x84I\x84L:\x88Lic\x89L\x83i\x83I\x83Ll\x81\x43+\x94i+c\x8ALic\x88L\x81ic\x8BLic\x8CLic\x89L\x84ic\x88L\x81ic\x8BLic\x8DLic\x8ELic\x88L\x81ic\x8FLic\x8CL\x81ic\x88L\x81ic\x90L\xFEi\x91I\x83Ll\x81\x43-\x8Bi-c\x88Lic\x8BLic\x88L\x82ic\x8ELic\x8CL\x81ic\x8FLic\x88Lic\x90L\xF8ic\x91Lic0cccccccccccccccccccc0\x87II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDccccc0\x86Iddda\x86I\x86I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x82P\x81\x44R",345);
@@ -2018,8 +2018,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-ifelse code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-ifelse code stackitems loopheight)) (if (<> 4 (list-length code)) (throw 'argument-error code)) (let ((iftrue (byte-compile-helper (unquote (caddr code)) stackitems loopheight)) (iffalse (byte-compile-helper (unquote (cadddr code)) stackitems loopheight))) (append (byte-compile-helper (cadr code) stackitems loopheight) (list (cons 'bf (+ (list-length iftrue) 1))) iftrue (list (cons 'goto (list-length iffalse))) iffalse)))
-// (#define 'byte-compile-ifelse (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-ifelse (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 4 (list-length code)) '(throw 'argument-error code) '#f) '(#let 'iftrue (byte-compile-helper (unquote (car (cdr (cdr code)))) stackitems loopheight) '(#let 'iffalse (byte-compile-helper (unquote (car (cdr (cdr (cdr code))))) stackitems loopheight) '(#append/reversed (cons (cons 'bf (+ (list-length iftrue) 1)) (#append/reversed (cons (cons 'goto (list-length iffalse)) iffalse) (#append/reversed #f iftrue))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)))))))))
+// (define (byte-compile-ifelse code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-ifelse code stackitems flowstack)) (if (<> 4 (list-length code)) (throw 'argument-error code)) (let ((iftrue (byte-compile-helper (unquote (caddr code)) stackitems flowstack)) (iffalse (byte-compile-helper (unquote (cadddr code)) stackitems flowstack))) (append (byte-compile-helper (cadr code) stackitems flowstack) (list (cons 'bf (+ (list-length iftrue) 1))) iftrue (list (cons 'goto (list-length iffalse))) iffalse)))
+// (#define 'byte-compile-ifelse (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-ifelse (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 4 (list-length code)) '(throw 'argument-error code) '#f) '(#let 'iftrue (byte-compile-helper (unquote (car (cdr (cdr code)))) stackitems flowstack) '(#let 'iffalse (byte-compile-helper (unquote (car (cdr (cdr (cdr code))))) stackitems flowstack) '(#append/reversed (cons (cons 'bf (+ (list-length iftrue) 1)) (#append/reversed (cons (cons 'goto (list-length iffalse)) iffalse) (#append/reversed #f iftrue))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)))))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x84i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x82Idda,\x82I\x82I\x85Ll\x83\x43\x83Iddda,\x83I\x83I\x85Ll\x83\x43\x86L\x82I\x83Ll\x81\x43\x81i+c\x87L\x82I\x83Ll\x81\x43\x63\x82Ic0\x84II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDc0\x86Ida\x86I\x86I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x83R" '(byte-compile-debug byte-compile-ifelse #dprint list-length argument-error byte-compile-helper bf goto))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Idda,\x82I\x82I\x85Ll\x83\x43\x83Iddda,\x83I\x83I\x85Ll\x83\x43\x86L\x82I\x83Ll\x81\x43\x81i+c\x87L\x82I\x83Ll\x81\x43\x63\x82Ic0\x84II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDc0\x86Ida\x86I\x86I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x82P\x81\x44R" '(byte-compile-debug byte-compile-ifelse #dprint list-length argument-error byte-compile-helper bf goto))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Idda,\x82I\x82I\x85Ll\x83\x43\x83Iddda,\x83I\x83I\x85Ll\x83\x43\x86L\x82I\x83Ll\x81\x43\x81i+c\x87L\x82I\x83Ll\x81\x43\x63\x82Ic0\x84II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDc0\x86Ida\x86I\x86I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x82P\x81\x44R",185);
@@ -2087,8 +2087,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-let code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-let code stackitems loopheight)) (if (<> 4 (list-length code)) (throw 'argument-error code)) (let ((var (unquote (cadr code))) (val (byte-compile-helper (caddr code) stackitems loopheight)) (subcode (cadddr code))) (unless (eq? 'word (object-type var)) (throw 'argument-error code)) (append val (byte-compile-helper (unquote subcode) (cons var stackitems) loopheight) (list (list 'put . '0)))))
-// (#define 'byte-compile-let (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-let (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 4 (list-length code)) '(throw 'argument-error code) '#f) '(#let 'var (unquote (car (cdr code))) '(#let 'val (byte-compile-helper (car (cdr (cdr code))) stackitems loopheight) '(#let 'subcode (car (cdr (cdr (cdr code)))) '(#prog2of2 (#ifelse (eq? 'word (object-type var)) '#f '(throw 'argument-error code)) '(#append/reversed (#append/reversed (cons (cons 'put '0) #f) (#append/reversed #f (byte-compile-helper (unquote subcode) (cons var stackitems) loopheight))) (#append/reversed #f val))))))))))
+// (define (byte-compile-let code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-let code stackitems flowstack)) (if (<> 4 (list-length code)) (throw 'argument-error code)) (let ((var (unquote (cadr code))) (val (byte-compile-helper (caddr code) stackitems flowstack)) (subcode (cadddr code))) (unless (eq? 'word (object-type var)) (throw 'argument-error code)) (append val (byte-compile-helper (unquote subcode) (cons var stackitems) flowstack) (list (list 'put . '0)))))
+// (#define 'byte-compile-let (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-let (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 4 (list-length code)) '(throw 'argument-error code) '#f) '(#let 'var (unquote (car (cdr code))) '(#let 'val (byte-compile-helper (car (cdr (cdr code))) stackitems flowstack) '(#let 'subcode (car (cdr (cdr (cdr code)))) '(#prog2of2 (#ifelse (eq? 'word (object-type var)) '#f '(throw 'argument-error code)) '(#append/reversed (#append/reversed (cons (cons 'put '0) #f) (#append/reversed #f (byte-compile-helper (unquote subcode) (cons var stackitems) flowstack))) (#append/reversed #f val))))))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x84i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x82Ida,\x83Idda\x83I\x83I\x85Ll\x83\x43\x84Iddda\x86L\x83IO=\x83\x46\x30\x85G\x85I\x84L:D\x87Lic0c0\x82I,\x85I\x88Ic\x87I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPP\x83R" '(byte-compile-debug byte-compile-let #dprint list-length argument-error byte-compile-helper word put))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida,\x83Idda\x83I\x83I\x85Ll\x83\x43\x84Iddda\x86L\x83IO=\x85T\x85I\x84L:\x87Lic0c0\x82I,\x85I\x88Ic\x87I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPP\x82P\x81\x44R" '(byte-compile-debug byte-compile-let #dprint list-length argument-error byte-compile-helper word put))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida,\x83Idda\x83I\x83I\x85Ll\x83\x43\x84Iddda\x86L\x83IO=\x85T\x85I\x84L:\x87Lic0c0\x82I,\x85I\x88Ic\x87I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPP\x82P\x81\x44R",174);
@@ -2156,11 +2156,11 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-loop code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-loop code stackitems loopheight)) (if (<> 2 (list-length code)) (throw 'argument-error code)) (set code (byte-compile-helper (unquote (cadr code)) stackitems (list-length stackitems))) (let ((rev #f) (jumpdistance -1)) (while code (ifelse (and (pair? (car code)) (eq? 'next-loop (caar code))) (set rev (cons (cons 'goto jumpdistance) rev)) (set rev (cons (car code) rev))) (set jumpdistance (- jumpdistance 1)) (set code (cdr code))) (set code (list (list 'pop . '0) (cons 'goto (- jumpdistance 1)))) (set jumpdistance 2) (while rev (ifelse (and (pair? (car rev)) (eq? 'exit-loop (caar rev))) (set code (cons (cons 'goto jumpdistance) code)) (set code (cons (car rev) code))) (set jumpdistance (+ jumpdistance 1)) (set rev (cdr rev)))) code)
-// (#define 'byte-compile-loop (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-loop (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 2 (list-length code)) '(throw 'argument-error code) '#f) '(#prog2of2 (#set 'code (byte-compile-helper (unquote (car (cdr code))) stackitems (list-length stackitems))) '(#prog2of2 (#let 'rev #f '(#let 'jumpdistance -1 '(#prog2of2 (#loop '(#ifelse code '(#prog2of2 (#ifelse (#and (pair? (car code)) '(eq? 'next-loop (car (car code)))) '(#set 'rev (cons (cons 'goto jumpdistance) rev)) '(#set 'rev (cons (car code) rev))) '(#prog2of2 (#set 'jumpdistance (- jumpdistance 1)) '(#set 'code (cdr code)))) '(#exit-loop #f))) '(#prog2of2 (#set 'code (cons (cons 'pop '0) (cons (cons 'goto (- jumpdistance 1)) #f))) '(#prog2of2 (#set 'jumpdistance 2) '(#loop '(#ifelse rev '(#prog2of2 (#ifelse (#and (pair? (car rev)) '(eq? 'exit-loop (car (car rev)))) '(#set 'code (cons (cons 'goto jumpdistance) code)) '(#set 'code (cons (car rev) code))) '(#prog2of2 (#set 'jumpdistance (+ jumpdistance 1)) '(#set 'rev (cdr rev)))) '(#exit-loop #f)))))))) 'code))))))
-// (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x82i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x82Ida,\x82I\x83I\x83Ll\x81\x43\x85Ll\x83\x43I\x83PD0\xFFi\x84I\xB8\x46\x84IapI\x88\x46\x44\x86L\x85Iaa=\x8D\x46\x87L\x81Ic\x82IcI\x82P\x89G\x84Ia\x82IcI\x82PDI\x81i-I\x81PD\x84IdI\x85P\x83G0\x84GD\xFF\xBDGD\x88Lic\x87L\x82I\x81i-c0ccI\x85PD\x82iI\x81PD\x81I\xB8\x46\x81IapI\x88\x46\x44\x89L\x82Iaa=\x8D\x46\x87L\x81Ic\x85IcI\x85P\x89G\x81Ia\x85IcI\x85PDI\x81i+I\x81PD\x81IdI\x82P\x83G0\x84GD\xFF\xBDGPPD\x82I\x83R" '(byte-compile-debug byte-compile-loop #dprint list-length argument-error byte-compile-helper next-loop goto pop exit-loop))
-// (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida,\x82I\x83I\x83Ll\x81\x43\x85Ll\x83\x43\x82P0\xFFi\x84I\xB1\x46\x84IapI\x88\x46\x44\x86L\x85Iaa=\x8C\x46\x87L\x81Ic\x82Ic\x81P\x88G\x84Ia\x82Ic\x81PI\x81i-P\x84Id\x84P\xCBG\x88Lic\x87L\x82I\x81i-c0cc\x84PD\x82i\x81I\xB1\x46\x81IapI\x88\x46\x44\x89L\x82Iaa=\x8C\x46\x87L\x81Ic\x85Ic\x84P\x88G\x81Ia\x85Ic\x84PI\x81i+P\x81Id\x81P\xCBG\x83\x44R" '(byte-compile-debug byte-compile-loop #dprint list-length argument-error byte-compile-helper next-loop goto pop exit-loop))
-	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida,\x82I\x83I\x83Ll\x81\x43\x85Ll\x83\x43\x82P0\xFFi\x84I\xB1\x46\x84IapI\x88\x46\x44\x86L\x85Iaa=\x8C\x46\x87L\x81Ic\x82Ic\x81P\x88G\x84Ia\x82Ic\x81PI\x81i-P\x84Id\x84P\xCBG\x88Lic\x87L\x82I\x81i-c0cc\x84PD\x82i\x81I\xB1\x46\x81IapI\x88\x46\x44\x89L\x82Iaa=\x8C\x46\x87L\x81Ic\x85Ic\x84P\x88G\x81Ia\x85Ic\x84PI\x81i+P\x81Id\x81P\xCBG\x83\x44R",196);
+// (define (byte-compile-loop code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-loop code stackitems flowstack)) (if (<> 2 (list-length code)) (throw 'argument-error code)) (set code (byte-compile-helper (unquote (cadr code)) stackitems (cons (cons 'loop (list-length stackitems)) flowstack))) (let ((rev #f) (jumpdistance -1)) (while code (ifelse (and (pair? (car code)) (eq? 'next-loop (caar code))) (set rev (cons (cons 'goto jumpdistance) rev)) (set rev (cons (car code) rev))) (set jumpdistance (- jumpdistance 1)) (set code (cdr code))) (set code (list (list 'pop . '0) (cons 'goto (- jumpdistance 1)))) (set jumpdistance 2) (while rev (ifelse (and (pair? (car rev)) (eq? 'exit-loop (caar rev))) (set code (cons (cons 'goto jumpdistance) code)) (set code (cons (car rev) code))) (set jumpdistance (+ jumpdistance 1)) (set rev (cdr rev)))) code)
+// (#define 'byte-compile-loop (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-loop (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 2 (list-length code)) '(throw 'argument-error code) '#f) '(#prog2of2 (#set 'code (byte-compile-helper (unquote (car (cdr code))) stackitems (cons (cons 'loop (list-length stackitems)) flowstack))) '(#prog2of2 (#let 'rev #f '(#let 'jumpdistance -1 '(#prog2of2 (#loop '(#ifelse code '(#prog2of2 (#ifelse (#and (pair? (car code)) '(eq? 'next-loop (car (car code)))) '(#set 'rev (cons (cons 'goto jumpdistance) rev)) '(#set 'rev (cons (car code) rev))) '(#prog2of2 (#set 'jumpdistance (- jumpdistance 1)) '(#set 'code (cdr code)))) '(#exit-loop #f))) '(#prog2of2 (#set 'code (cons (cons 'pop '0) (cons (cons 'goto (- jumpdistance 1)) #f))) '(#prog2of2 (#set 'jumpdistance 2) '(#loop '(#ifelse rev '(#prog2of2 (#ifelse (#and (pair? (car rev)) '(eq? 'exit-loop (car (car rev)))) '(#set 'code (cons (cons 'goto jumpdistance) code)) '(#set 'code (cons (car rev) code))) '(#prog2of2 (#set 'jumpdistance (+ jumpdistance 1)) '(#set 'rev (cdr rev)))) '(#exit-loop #f)))))))) 'code))))))
+// (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x82i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x82Ida,\x82I\x85L\x84I\x83Ll\x81\x43\x63\x83Ic\x86Ll\x83\x43I\x83PD0\xFFi\x84I\xB8\x46\x84IapI\x88\x46\x44\x87L\x85Iaa=\x8D\x46\x88L\x81Ic\x82IcI\x82P\x89G\x84Ia\x82IcI\x82PDI\x81i-I\x81PD\x84IdI\x85P\x83G0\x84GD\xFF\xBDGD\x89Lic\x88L\x82I\x81i-c0ccI\x85PD\x82iI\x81PD\x81I\xB8\x46\x81IapI\x88\x46\x44\x8AL\x82Iaa=\x8D\x46\x88L\x81Ic\x85IcI\x85P\x89G\x81Ia\x85IcI\x85PDI\x81i+I\x81PD\x81IdI\x82P\x83G0\x84GD\xFF\xBDGPPD\x82I\x83R" '(byte-compile-debug byte-compile-loop #dprint list-length argument-error loop byte-compile-helper next-loop goto pop exit-loop))
+// (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida,\x82I\x85L\x84I\x83Ll\x81\x43\x63\x83Ic\x86Ll\x83\x43\x82P0\xFFi\x84I\xAF\x46\x84IapI\x88\x46\x44\x87L\x85Iaa=\x8C\x46\x88L\x81Ic\x82Ic\x81P\x88G\x84Ia\x82Ic\x81P\x81i-\x84Id\x84P\xCDG\x89Lic\x88L\x82I\x81i-c0cc\x84PD\x82i\x81I\xAF\x46\x81IapI\x88\x46\x44\x8AL\x82Iaa=\x8C\x46\x88L\x81Ic\x85Ic\x84P\x88G\x81Ia\x85Ic\x84P\x81i+\x81Id\x81P\xCDG\x83\x44R" '(byte-compile-debug byte-compile-loop #dprint list-length argument-error loop byte-compile-helper next-loop goto pop exit-loop))
+	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida,\x82I\x85L\x84I\x83Ll\x81\x43\x63\x83Ic\x86Ll\x83\x43\x82P0\xFFi\x84I\xAF\x46\x84IapI\x88\x46\x44\x87L\x85Iaa=\x8C\x46\x88L\x81Ic\x82Ic\x81P\x88G\x84Ia\x82Ic\x81P\x81i-\x84Id\x84P\xCDG\x89Lic\x88L\x82I\x81i-c0cc\x84PD\x82i\x81I\xAF\x46\x81IapI\x88\x46\x44\x8AL\x82Iaa=\x8C\x46\x88L\x81Ic\x85Ic\x84P\x88G\x81Ia\x85Ic\x84P\x81i+\x81Id\x81P\xCDG\x83\x44R",198);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_word("exit-loop",9);
@@ -2183,6 +2183,10 @@
 	if(!o) return(1);
 	c=cons(o,c);
 	if(!c) return(1);
+	o=new_word("loop",4);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
 	o=new_word("argument-error",14);
 	if(!o) return(1);
 	c=cons(o,c);
@@ -2233,17 +2237,54 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-exit-loop code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-exit-loop code stackitems loopheight)) (if (<> 2 (list-length code)) (throw 'argument-error code)) (let ((extra (- (list-length stackitems) loopheight)) (revcode (reverse (byte-compile-helper (cadr code) stackitems loopheight)))) (if (< extra 0) (throw 'assembler-error code)) (if (> extra 0) (set revcode (cons (cons 'put (- extra 1)) revcode))) (if (> extra 1) (set revcode (cons (cons 'pop (- extra 2)) revcode))) (set revcode (cons (list 'exit-loop) revcode)) (reverse revcode)))
-// (#define 'byte-compile-exit-loop (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-exit-loop (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 2 (list-length code)) '(throw 'argument-error code) '#f) '(#let 'extra (- (list-length stackitems) loopheight) '(#let 'revcode (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)) '(#prog2of2 (#ifelse (< extra 0) '(throw 'assembler-error code) '#f) '(#prog2of2 (#ifelse (> extra 0) '(#set 'revcode (cons (cons 'put (- extra 1)) revcode)) '#f) '(#prog2of2 (#ifelse (> extra 1) '(#set 'revcode (cons (cons 'pop (- extra 2)) revcode)) '#f) '(#prog2of2 (#set 'revcode (cons (cons 'exit-loop #f) revcode)) '(#append/reversed #f revcode)))))))))))
-// (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x82i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x81I\x83Ll\x81\x43\x81I-0\x84Ida\x84I\x84I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x81Ii\x81?\x87\x46\x84I\x86L:\x81G0D\x81Ii\x84?\x90\x46\x87L\x82I\x81i-c\x81IcI\x81P\x81G0D\x81I\x81i\x84?\x90\x46\x88L\x82I\x82i-c\x81IcI\x81P\x81G0D\x89L0c\x81IcI\x81PD0\x81II\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x83R" '(byte-compile-debug byte-compile-exit-loop #dprint list-length argument-error byte-compile-helper assembler-error put pop exit-loop))
-// (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x81I\x83Ll\x81\x43\x81I-0\x84Ida\x84I\x84I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x81Ii\x81?\x85\x46\x84I\x86L:\x81Ii\x84?\x8C\x46\x87L\x82I\x81i-c\x81IcP\x81I\x81i\x84?\x8C\x46\x88L\x82I\x82i-c\x81IcP\x89L0c\x81IcP0\x81II\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x82P\x81\x44R" '(byte-compile-debug byte-compile-exit-loop #dprint list-length argument-error byte-compile-helper assembler-error put pop exit-loop))
-	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x81I\x83Ll\x81\x43\x81I-0\x84Ida\x84I\x84I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x81Ii\x81?\x85\x46\x84I\x86L:\x81Ii\x84?\x8C\x46\x87L\x82I\x81i-c\x81IcP\x81I\x81i\x84?\x8C\x46\x88L\x82I\x82i-c\x81IcP\x89L0c\x81IcP0\x81II\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x82P\x81\x44R",166);
+// (define (byte-compile-loop-assistant stackitems flowstack) (let ((tosses 0)) (cons (loop (unless flowstack (throw 'assembler-error stackitems)) (if (eq? 'loop (caar flowstack)) (let ((extra (- (list-length stackitems) (cdar flowstack)))) (if (< extra 0) (throw 'assembler-error stackitems)) (exit-loop extra))) (ifelse (eq? 'catch (caar flowstack)) (set tosses (+ tosses 1)) (throw 'assembler-error flowstack)) (set flowstack (cdr flowstack))) tosses)))
+// (#define 'byte-compile-loop-assistant (byte-compile '(stackitems flowstack) '(#let 'tosses 0 '(cons (#loop '(#prog2of2 (#ifelse flowstack '#f '(throw 'assembler-error stackitems)) '(#prog2of2 (#ifelse (eq? 'loop (car (car flowstack))) '(#let 'extra (- (list-length stackitems) (cdr (car flowstack))) '(#prog2of2 (#ifelse (< extra 0) '(throw 'assembler-error stackitems) '#f) '(#exit-loop extra))) '#f) '(#prog2of2 (#ifelse (eq? 'catch (car (car flowstack))) '(#set 'tosses (+ tosses 1)) '(throw 'assembler-error flowstack)) '(#set 'flowstack (cdr flowstack)))))) tosses))))
+// (#lambda "\x82#i\x81I\x83\x46\x30\x84G\x82IL:D\x81L\x82Iaa=\xA1\x46\x82I\x82Ll\x81\x43\x82Iad-Ii\x81?\x86\x46\x83IL:\x81G0DIP\xA6GP\x81G0D\x83L\x82Iaa=\x89\x46I\x81i+I\x81P\x84G\x81IL:D\x81IdI\x82PD\xFF\xA7G\x81IcP\x82R" '(assembler-error loop list-length catch))
+// (#lambda "\x82#i\x81I\x84T\x82IL:\x81L\x82Iaa=\x98\x46\x82I\x82Ll\x81\x43\x82Iad-Ii\x81?\x84\x46\x83IL:\x9AG\x83L\x82Iaa=\x85\x46\x81i+\x84G\x81IL:\x81Id\x81P\xFF\xBDG\x81IcP\x81PDR" '(assembler-error loop list-length catch))
+	s=new_string("\x82#i\x81I\x84T\x82IL:\x81L\x82Iaa=\x98\x46\x82I\x82Ll\x81\x43\x82Iad-Ii\x81?\x84\x46\x83IL:\x9AG\x83L\x82Iaa=\x85\x46\x81i+\x84G\x81IL:\x81Id\x81P\xFF\xBDG\x81IcP\x81PDR",78);
+	if(!s) return(1);
+	c=INCREF(&nilobj);
+	o=new_word("catch",5);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
+	o=new_word("list-length",11);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
+	o=new_word("loop",4);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
+	o=new_word("assembler-error",15);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
+	o=new_object(&bytefunc_objtype);
+	if(!o) return(1);
+	o->value.bytefunc.code=s;
+	o->value.bytefunc.objs=c;
+	s=new_word("byte-compile-loop-assistant",27);
+	if(!s) return(1);
+	o=define(s,o);
+	if(!o) return(1);
+	DECREF(o);
+
+// (define (byte-compile-exit-loop code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-exit-loop code stackitems flowstack)) (if (<> 2 (list-length code)) (throw 'argument-error code)) (let ((extra/tosses (byte-compile-loop-assistant stackitems flowstack)) (extra (car extra/tosses)) (tosses (cdr extra/tosses)) (revcode (reverse (byte-compile-helper (cadr code) stackitems flowstack)))) (if (> extra 0) (set revcode (cons (cons 'put (- extra 1)) revcode))) (if (> extra 1) (set revcode (cons (cons 'pop (- extra 2)) revcode))) (while (> tosses 0) (set revcode (cons (list 'toss . '0) revcode)) (set tosses (- tosses 1))) (set revcode (cons (list 'exit-loop) revcode)) (reverse revcode)))
+// (#define 'byte-compile-exit-loop (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-exit-loop (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 2 (list-length code)) '(throw 'argument-error code) '#f) '(#let 'extra/tosses (byte-compile-loop-assistant stackitems flowstack) '(#let 'extra (car extra/tosses) '(#let 'tosses (cdr extra/tosses) '(#let 'revcode (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)) '(#prog2of2 (#ifelse (> extra 0) '(#set 'revcode (cons (cons 'put (- extra 1)) revcode)) '#f) '(#prog2of2 (#ifelse (> extra 1) '(#set 'revcode (cons (cons 'pop (- extra 2)) revcode)) '#f) '(#prog2of2 (#loop '(#ifelse (> tosses 0) '(#prog2of2 (#set 'revcode (cons (cons 'toss '0) revcode)) '(#set 'tosses (- tosses 1))) '(#exit-loop #f))) '(#prog2of2 (#set 'revcode (cons (cons 'exit-loop #f) revcode)) '(#append/reversed #f revcode)))))))))))))
+// (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x82i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x81I\x81I\x85Ll\x82\x43Ia\x81Id0\x86Ida\x86I\x86I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82Ii\x84?\x90\x46\x87L\x83I\x81i-c\x81IcI\x81P\x81G0D\x82I\x81i\x84?\x90\x46\x88L\x83I\x82i-c\x81IcI\x81P\x81G0D\x81Ii\x84?\x95\x46\x89Lic\x81IcI\x81PD\x81I\x81i-I\x82P\x83G0\x83GD\xDEGD\x8AL0c\x81IcI\x81PD0\x81II\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPPP\x83R" '(byte-compile-debug byte-compile-exit-loop #dprint list-length argument-error byte-compile-loop-assistant byte-compile-helper put pop toss exit-loop))
+// (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x81I\x81I\x85Ll\x82\x43Ia\x81Id0\x86Ida\x86I\x86I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82Ii\x84?\x8C\x46\x87L\x83I\x81i-c\x81IcP\x82I\x81i\x84?\x8C\x46\x88L\x83I\x82i-c\x81IcP\x81Ii\x84?\x91\x46\x89Lic\x81IcP\x81I\x81i-\x81P\xE8G\x8AL0c\x81IcP0\x81II\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPPP\x82P\x81\x44R" '(byte-compile-debug byte-compile-exit-loop #dprint list-length argument-error byte-compile-loop-assistant byte-compile-helper put pop toss exit-loop))
+	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x81I\x81I\x85Ll\x82\x43Ia\x81Id0\x86Ida\x86I\x86I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82Ii\x84?\x8C\x46\x87L\x83I\x81i-c\x81IcP\x82I\x81i\x84?\x8C\x46\x88L\x83I\x82i-c\x81IcP\x81Ii\x84?\x91\x46\x89Lic\x81IcP\x81I\x81i-\x81P\xE8G\x8AL0c\x81IcP0\x81II\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPPP\x82P\x81\x44R",184);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_word("exit-loop",9);
 	if(!o) return(1);
 	c=cons(o,c);
 	if(!c) return(1);
+	o=new_word("toss",4);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
 	o=new_word("pop",3);
 	if(!o) return(1);
 	c=cons(o,c);
@@ -2252,11 +2293,11 @@
 	if(!o) return(1);
 	c=cons(o,c);
 	if(!c) return(1);
-	o=new_word("assembler-error",15);
+	o=new_word("byte-compile-helper",19);
 	if(!o) return(1);
 	c=cons(o,c);
 	if(!c) return(1);
-	o=new_word("byte-compile-helper",19);
+	o=new_word("byte-compile-loop-assistant",27);
 	if(!o) return(1);
 	c=cons(o,c);
 	if(!c) return(1);
@@ -2310,22 +2351,26 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-next-loop code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-next-loop code stackitems loopheight)) (if (<> 1 (list-length code)) (throw 'argument-error code)) (let ((extra (- (list-length stackitems) loopheight))) (if (< extra 0) (throw 'assembler-error code)) (set code (list (list 'next-loop))) (if (> extra 0) (set code (cons (cons 'pop (- extra 1)) code))) code))
-// (#define 'byte-compile-next-loop (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-next-loop (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 1 (list-length code)) '(throw 'argument-error code) '#f) '(#let 'extra (- (list-length stackitems) loopheight) '(#prog2of2 (#ifelse (< extra 0) '(throw 'assembler-error code) '#f) '(#prog2of2 (#set 'code (cons (cons 'next-loop #f) #f)) '(#prog2of2 (#ifelse (> extra 0) '(#set 'code (cons (cons 'pop (- extra 1)) code)) '#f) 'code))))))))
-// (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x81i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x81I\x83Ll\x81\x43\x81I-Ii\x81?\x87\x46\x83I\x85L:\x81G0D\x86L0c0cI\x84PDIi\x84?\x90\x46\x87L\x81I\x81i-c\x84IcI\x84P\x81G0D\x83IP\x83R" '(byte-compile-debug byte-compile-next-loop #dprint list-length argument-error assembler-error next-loop pop))
-// (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x81i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x81I\x83Ll\x81\x43\x81I-Ii\x81?\x85\x46\x83I\x85L:\x86L0c0c\x83PIi\x84?\x8D\x46\x87L\x81I\x81i-c\x84Ic\x83P\x83IP\x82P\x81\x44R" '(byte-compile-debug byte-compile-next-loop #dprint list-length argument-error assembler-error next-loop pop))
-	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x81i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x81I\x83Ll\x81\x43\x81I-Ii\x81?\x85\x46\x83I\x85L:\x86L0c0c\x83PIi\x84?\x8D\x46\x87L\x81I\x81i-c\x84Ic\x83P\x83IP\x82P\x81\x44R",99);
+// (define (byte-compile-next-loop code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-next-loop code stackitems flowstack)) (if (<> 1 (list-length code)) (throw 'argument-error code)) (let ((extra/tosses (byte-compile-loop-assistant stackitems flowstack)) (extra (car extra/tosses)) (tosses (cdr extra/tosses))) (set code (list (list 'next-loop))) (while (> tosses 0) (set code (cons (list 'toss . '0) code)) (set tosses (- tosses 1))) (if (> extra 0) (set code (cons (cons 'pop (- extra 1)) code))) code))
+// (#define 'byte-compile-next-loop (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-next-loop (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 1 (list-length code)) '(throw 'argument-error code) '#f) '(#let 'extra/tosses (byte-compile-loop-assistant stackitems flowstack) '(#let 'extra (car extra/tosses) '(#let 'tosses (cdr extra/tosses) '(#prog2of2 (#set 'code (cons (cons 'next-loop #f) #f)) '(#prog2of2 (#loop '(#ifelse (> tosses 0) '(#prog2of2 (#set 'code (cons (cons 'toss '0) code)) '(#set 'tosses (- tosses 1))) '(#exit-loop #f))) '(#prog2of2 (#ifelse (> extra 0) '(#set 'code (cons (cons 'pop (- extra 1)) code)) '#f) 'code))))))))))
+// (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x81i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x81I\x81I\x85Ll\x82\x43Ia\x81Id\x86L0c0cI\x86PDIi\x84?\x94\x46\x87Lic\x86IcI\x86PDI\x81i-I\x81P\x83G0\x83GD\xE0GD\x81Ii\x84?\x90\x46\x88L\x82I\x81i-c\x86IcI\x86P\x81G0D\x85IPPP\x83R" '(byte-compile-debug byte-compile-next-loop #dprint list-length argument-error byte-compile-loop-assistant next-loop toss pop))
+// (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x81i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x81I\x81I\x85Ll\x82\x43Ia\x81Id\x86L0c0c\x85PIi\x84?\x8E\x46\x87Lic\x86Ic\x85P\x81i-\xECG\x81Ii\x84?\x8D\x46\x88L\x82I\x81i-c\x86Ic\x85P\x85IPPP\x82P\x81\x44R" '(byte-compile-debug byte-compile-next-loop #dprint list-length argument-error byte-compile-loop-assistant next-loop toss pop))
+	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x81i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x81I\x81I\x85Ll\x82\x43Ia\x81Id\x86L0c0c\x85PIi\x84?\x8E\x46\x87Lic\x86Ic\x85P\x81i-\xECG\x81Ii\x84?\x8D\x46\x88L\x82I\x81i-c\x86Ic\x85P\x85IPPP\x82P\x81\x44R",115);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_word("pop",3);
 	if(!o) return(1);
 	c=cons(o,c);
 	if(!c) return(1);
+	o=new_word("toss",4);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
 	o=new_word("next-loop",9);
 	if(!o) return(1);
 	c=cons(o,c);
 	if(!c) return(1);
-	o=new_word("assembler-error",15);
+	o=new_word("byte-compile-loop-assistant",27);
 	if(!o) return(1);
 	c=cons(o,c);
 	if(!c) return(1);
@@ -2379,8 +2424,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-map code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-map code stackitems loopheight)) (if (<> 4 (list-length code)) (throw 'argument-error code)) (unless (quoted? (cadr code)) (throw 'argument-error code)) (let ((var (unquote (cadr code))) (mapper (byte-compile-helper (unquote (caddr code)) (cons var (cons #f (cons #f stackitems))) loopheight))) (unless (word? var) (throw 'argument-error code)) (append (byte-compile-helper (cadddr code) stackitems loopheight) (list (list 'index . '0)) (list (cons 'bf (+ 3 (list-length mapper) 17))) (list (list 'nil . '0)) (list (list 'index . '1)) (list (list 'car . '0)) mapper (list (list 'put . '0)) (list (list 'exch . '0)) (list (list 'cons . '0)) (list (list 'index . '1)) (list (list 'cdr . '0)) (list (list 'put . '1)) (list (list 'index . '1)) (list (cons 'bt (- 0 2 (list-length mapper) 8))) (list (list 'index . '0)) (list (list 'car . '0)) (list (list 'index . '2)) (list (list 'cons . '0)) (list (list 'put . '1)) (list (list 'cdr . '0)) (list (list 'index . '0)) (list (list 'bt . '-8)) (list (list 'pop . '0)))))
-// (#define 'byte-compile-map (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-map (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 4 (list-length code)) '(throw 'argument-error code) '#f) '(#prog2of2 (#ifelse (quoted? (car (cdr code))) '#f '(throw 'argument-error code)) '(#let 'var (unquote (car (cdr code))) '(#let 'mapper (byte-compile-helper (unquote (car (cdr (cdr code)))) (cons var (cons #f (cons #f stackitems))) loopheight) '(#prog2of2 (#ifelse (word? var) '#f '(throw 'argument-error code)) '(#append/reversed (cons (cons 'index '0) (cons (cons 'bf (+ (+ 3 (list-length mapper)) 17)) (cons (cons 'nil '0) (cons (cons 'index '1) (cons (cons 'car '0) (#append/reversed (cons (cons 'put '0) (cons (cons 'exch '0) (cons (cons 'cons '0) (cons (cons 'index '1) (cons (cons 'cdr '0) (cons (cons 'put '1) (cons (cons 'index '1) (cons (cons 'bt (- (- (- 0 2) (list-length mapper)) 8)) (cons (cons 'index '0) (cons (cons 'car '0) (cons (cons 'index '2) (cons (cons 'cons '0) (cons (cons 'put '1) (cons (cons 'cdr '0) (cons (cons 'index '0) (cons (cons 'bt '-8) (cons (cons 'pop '0) #f))))))))))))))))) (#append/reversed #f mapper))))))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr (cdr code)))) stackitems loopheight)))))))))))
+// (define (byte-compile-map code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-map code stackitems flowstack)) (if (<> 4 (list-length code)) (throw 'argument-error code)) (unless (quoted? (cadr code)) (throw 'argument-error code)) (let ((var (unquote (cadr code))) (mapper (byte-compile-helper (unquote (caddr code)) (cons var (cons #f (cons #f stackitems))) flowstack))) (unless (word? var) (throw 'argument-error code)) (append (byte-compile-helper (cadddr code) stackitems flowstack) (list (list 'index . '0)) (list (cons 'bf (+ 3 (list-length mapper) 17))) (list (list 'nil . '0)) (list (list 'index . '1)) (list (list 'car . '0)) mapper (list (list 'put . '0)) (list (list 'exch . '0)) (list (list 'cons . '0)) (list (list 'index . '1)) (list (list 'cdr . '0)) (list (list 'put . '1)) (list (list 'index . '1)) (list (cons 'bt (- 0 2 (list-length mapper) 8))) (list (list 'index . '0)) (list (list 'car . '0)) (list (list 'index . '2)) (list (list 'cons . '0)) (list (list 'put . '1)) (list (list 'cdr . '0)) (list (list 'index . '0)) (list (list 'bt . '-8)) (list (list 'pop . '0)))))
+// (#define 'byte-compile-map (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-map (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 4 (list-length code)) '(throw 'argument-error code) '#f) '(#prog2of2 (#ifelse (quoted? (car (cdr code))) '#f '(throw 'argument-error code)) '(#let 'var (unquote (car (cdr code))) '(#let 'mapper (byte-compile-helper (unquote (car (cdr (cdr code)))) (cons var (cons #f (cons #f stackitems))) flowstack) '(#prog2of2 (#ifelse (word? var) '#f '(throw 'argument-error code)) '(#append/reversed (cons (cons 'index '0) (cons (cons 'bf (+ (+ 3 (list-length mapper)) 17)) (cons (cons 'nil '0) (cons (cons 'index '1) (cons (cons 'car '0) (#append/reversed (cons (cons 'put '0) (cons (cons 'exch '0) (cons (cons 'cons '0) (cons (cons 'index '1) (cons (cons 'cdr '0) (cons (cons 'put '1) (cons (cons 'index '1) (cons (cons 'bt (- (- (- 0 2) (list-length mapper)) 8)) (cons (cons 'index '0) (cons (cons 'car '0) (cons (cons 'index '2) (cons (cons 'cons '0) (cons (cons 'put '1) (cons (cons 'cdr '0) (cons (cons 'index '0) (cons (cons 'bt '-8) (cons (cons 'pop '0) #f))))))))))))))))) (#append/reversed #f mapper))))))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr (cdr code)))) stackitems flowstack)))))))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x84i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x82Ida\x85Ll\x81\x43\x83\x46\x30\x85G\x82I\x84L:D\x82Ida,\x83Idda,\x81I00\x86Iccc\x83I\x86Ll\x83\x43\x81I\x87Ll\x81\x43\x83\x46\x30\x85G\x84I\x84L:D\x88Lic\x89L\x83i\x83I\x83Ll\x81\x43+\x91i+c\x8ALic\x88L\x81ic\x8BLic\x8CLic\x8DLic\x8ELic\x88L\x81ic\x8FLic\x8CL\x81ic\x88L\x81ic\x90Li\x82i-\x8EI\x83Ll\x81\x43-\x88i-c\x88Lic\x8BLic\x88L\x82ic\x8ELic\x8CL\x81ic\x8FLic\x88Lic\x90L\xF8ic\x91Lic0ccccccccccccccccc0\x87II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDccccc0\x86Iddda\x86I\x86I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x83R" '(byte-compile-debug byte-compile-map #dprint list-length argument-error quoted? byte-compile-helper word? index bf nil car put exch cons cdr bt pop))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida\x85Ll\x81\x43\x85T\x82I\x84L:\x82Ida,\x83Idda,\x81I00\x86Iccc\x83I\x86Ll\x83\x43\x81I\x87Ll\x81\x43\x85T\x84I\x84L:\x88Lic\x89L\x83i\x83I\x83Ll\x81\x43+\x91i+c\x8ALic\x88L\x81ic\x8BLic\x8CLic\x8DLic\x8ELic\x88L\x81ic\x8FLic\x8CL\x81ic\x88L\x81ic\x90L\xFEi\x8EI\x83Ll\x81\x43-\x88i-c\x88Lic\x8BLic\x88L\x82ic\x8ELic\x8CL\x81ic\x8FLic\x88Lic\x90L\xF8ic\x91Lic0ccccccccccccccccc0\x87II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDccccc0\x86Iddda\x86I\x86I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x82P\x81\x44R" '(byte-compile-debug byte-compile-map #dprint list-length argument-error quoted? byte-compile-helper word? index bf nil car put exch cons cdr bt pop))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida\x85Ll\x81\x43\x85T\x82I\x84L:\x82Ida,\x83Idda,\x81I00\x86Iccc\x83I\x86Ll\x83\x43\x81I\x87Ll\x81\x43\x85T\x84I\x84L:\x88Lic\x89L\x83i\x83I\x83Ll\x81\x43+\x91i+c\x8ALic\x88L\x81ic\x8BLic\x8CLic\x8DLic\x8ELic\x88L\x81ic\x8FLic\x8CL\x81ic\x88L\x81ic\x90L\xFEi\x8EI\x83Ll\x81\x43-\x88i-c\x88Lic\x8BLic\x88L\x82ic\x8ELic\x8CL\x81ic\x8FLic\x88Lic\x90L\xF8ic\x91Lic0ccccccccccccccccc0\x87II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDccccc0\x86Iddda\x86I\x86I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x82P\x81\x44R",328);
@@ -2488,8 +2533,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-map-safe code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-map-safe code stackitems loopheight)) (if (<> 4 (list-length code)) (throw 'argument-error code)) (unless (quoted? (cadr code)) (throw 'argument-error code)) (let ((var (unquote (cadr code))) (mapper (byte-compile-helper (unquote (caddr code)) (cons var (cons #f (cons #f stackitems))) loopheight))) (unless (word? var) (throw 'argument-error code)) (append (byte-compile-helper (cadddr code) stackitems loopheight) (list (list 'index . '0)) (list (cons 'bf (+ 3 (list-length mapper) 12 (list-length mapper) 11))) (list (list 'nil . '0)) (list (list 'index . '1)) (list (list 'car . '0)) mapper (list (list 'put . '0)) (list (list 'exch . '0)) (list (list 'cons . '0)) (list (list 'index . '1)) (list (list 'cdr . '0)) (list (list 'put . '1)) (list (list 'index . '1)) (list (list 'pair . '0)) (list (cons 'bt (- 0 2 (list-length mapper) 9))) (list (list 'index . '1)) (list (cons 'bf (+ 1 (list-length mapper) 2))) (list (list 'index . '1)) mapper (list (list 'put . '0)) (list (list 'put . '1)) (list (list 'index . '0)) (list (list 'car . '0)) (list (list 'index . '2)) (list (list 'cons . '0)) (list (list 'put . '1)) (list (list 'cdr . '0)) (list (list 'index . '0)) (list (list 'bt . '-8)) (list (list 'pop . '0)))))
-// (#define 'byte-compile-map-safe (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-map-safe (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 4 (list-length code)) '(throw 'argument-error code) '#f) '(#prog2of2 (#ifelse (quoted? (car (cdr code))) '#f '(throw 'argument-error code)) '(#let 'var (unquote (car (cdr code))) '(#let 'mapper (byte-compile-helper (unquote (car (cdr (cdr code)))) (cons var (cons #f (cons #f stackitems))) loopheight) '(#prog2of2 (#ifelse (word? var) '#f '(throw 'argument-error code)) '(#append/reversed (cons (cons 'index '0) (cons (cons 'bf (+ (+ (+ (+ 3 (list-length mapper)) 12) (list-length mapper)) 11)) (cons (cons 'nil '0) (cons (cons 'index '1) (cons (cons 'car '0) (#append/reversed (cons (cons 'put '0) (cons (cons 'exch '0) (cons (cons 'cons '0) (cons (cons 'index '1) (cons (cons 'cdr '0) (cons (cons 'put '1) (cons (cons 'index '1) (cons (cons 'pair '0) (cons (cons 'bt (- (- (- 0 2) (list-length mapper)) 9)) (cons (cons 'index '1) (cons (cons 'bf (+ (+ 1 (list-length mapper)) 2)) (cons (cons 'index '1) (#append/reversed (cons (cons 'put '0) (cons (cons 'put '1) (cons (cons 'index '0) (cons (cons 'car '0) (cons (cons 'index '2) (cons (cons 'cons '0) (cons (cons 'put '1) (cons (cons 'cdr '0) (cons (cons 'index '0) (cons (cons 'bt '-8) (cons (cons 'pop '0) #f))))))))))) (#append/reversed #f mapper)))))))))))))) (#append/reversed #f mapper))))))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr (cdr code)))) stackitems loopheight)))))))))))
+// (define (byte-compile-map-safe code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-map-safe code stackitems flowstack)) (if (<> 4 (list-length code)) (throw 'argument-error code)) (unless (quoted? (cadr code)) (throw 'argument-error code)) (let ((var (unquote (cadr code))) (mapper (byte-compile-helper (unquote (caddr code)) (cons var (cons #f (cons #f stackitems))) flowstack))) (unless (word? var) (throw 'argument-error code)) (append (byte-compile-helper (cadddr code) stackitems flowstack) (list (list 'index . '0)) (list (cons 'bf (+ 3 (list-length mapper) 12 (list-length mapper) 11))) (list (list 'nil . '0)) (list (list 'index . '1)) (list (list 'car . '0)) mapper (list (list 'put . '0)) (list (list 'exch . '0)) (list (list 'cons . '0)) (list (list 'index . '1)) (list (list 'cdr . '0)) (list (list 'put . '1)) (list (list 'index . '1)) (list (list 'pair . '0)) (list (cons 'bt (- 0 2 (list-length mapper) 9))) (list (list 'index . '1)) (list (cons 'bf (+ 1 (list-length mapper) 2))) (list (list 'index . '1)) mapper (list (list 'put . '0)) (list (list 'put . '1)) (list (list 'index . '0)) (list (list 'car . '0)) (list (list 'index . '2)) (list (list 'cons . '0)) (list (list 'put . '1)) (list (list 'cdr . '0)) (list (list 'index . '0)) (list (list 'bt . '-8)) (list (list 'pop . '0)))))
+// (#define 'byte-compile-map-safe (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-map-safe (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 4 (list-length code)) '(throw 'argument-error code) '#f) '(#prog2of2 (#ifelse (quoted? (car (cdr code))) '#f '(throw 'argument-error code)) '(#let 'var (unquote (car (cdr code))) '(#let 'mapper (byte-compile-helper (unquote (car (cdr (cdr code)))) (cons var (cons #f (cons #f stackitems))) flowstack) '(#prog2of2 (#ifelse (word? var) '#f '(throw 'argument-error code)) '(#append/reversed (cons (cons 'index '0) (cons (cons 'bf (+ (+ (+ (+ 3 (list-length mapper)) 12) (list-length mapper)) 11)) (cons (cons 'nil '0) (cons (cons 'index '1) (cons (cons 'car '0) (#append/reversed (cons (cons 'put '0) (cons (cons 'exch '0) (cons (cons 'cons '0) (cons (cons 'index '1) (cons (cons 'cdr '0) (cons (cons 'put '1) (cons (cons 'index '1) (cons (cons 'pair '0) (cons (cons 'bt (- (- (- 0 2) (list-length mapper)) 9)) (cons (cons 'index '1) (cons (cons 'bf (+ (+ 1 (list-length mapper)) 2)) (cons (cons 'index '1) (#append/reversed (cons (cons 'put '0) (cons (cons 'put '1) (cons (cons 'index '0) (cons (cons 'car '0) (cons (cons 'index '2) (cons (cons 'cons '0) (cons (cons 'put '1) (cons (cons 'cdr '0) (cons (cons 'index '0) (cons (cons 'bt '-8) (cons (cons 'pop '0) #f))))))))))) (#append/reversed #f mapper)))))))))))))) (#append/reversed #f mapper))))))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr (cdr code)))) stackitems flowstack)))))))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x84i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x82Ida\x85Ll\x81\x43\x83\x46\x30\x85G\x82I\x84L:D\x82Ida,\x83Idda,\x81I00\x86Iccc\x83I\x86Ll\x83\x43\x81I\x87Ll\x81\x43\x83\x46\x30\x85G\x84I\x84L:D\x88Lic\x89L\x83i\x83I\x83Ll\x81\x43+\x8Ci+\x83I\x83Ll\x81\x43+\x8Bi+c\x8ALic\x88L\x81ic\x8BLic\x8CLic\x8DLic\x8ELic\x88L\x81ic\x8FLic\x8CL\x81ic\x88L\x81ic\x90Lic\x91Li\x82i-\x8FI\x83Ll\x81\x43-\x89i-c\x88L\x81ic\x89L\x81i\x91I\x83Ll\x81\x43+\x82i+c\x88L\x81ic\x8CLic\x8CL\x81ic\x88Lic\x8BLic\x88L\x82ic\x8ELic\x8CL\x81ic\x8FLic\x88Lic\x91L\xF8ic\x92Lic0ccccccccccc0\x93II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDcccccccccccc0\x87II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDccccc0\x86Iddda\x86I\x86I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x83R" '(byte-compile-debug byte-compile-map-safe #dprint list-length argument-error quoted? byte-compile-helper word? index bf nil car put exch cons cdr pair bt pop))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida\x85Ll\x81\x43\x85T\x82I\x84L:\x82Ida,\x83Idda,\x81I00\x86Iccc\x83I\x86Ll\x83\x43\x81I\x87Ll\x81\x43\x85T\x84I\x84L:\x88Lic\x89L\x83i\x83I\x83Ll\x81\x43+\x8Ci+\x83I\x83Ll\x81\x43+\x8Bi+c\x8ALic\x88L\x81ic\x8BLic\x8CLic\x8DLic\x8ELic\x88L\x81ic\x8FLic\x8CL\x81ic\x88L\x81ic\x90Lic\x91L\xFEi\x8FI\x83Ll\x81\x43-\x89i-c\x88L\x81ic\x89L\x81i\x91I\x83Ll\x81\x43+\x82i+c\x88L\x81ic\x8CLic\x8CL\x81ic\x88Lic\x8BLic\x88L\x82ic\x8ELic\x8CL\x81ic\x8FLic\x88Lic\x91L\xF8ic\x92Lic0ccccccccccc0\x93II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDcccccccccccc0\x87II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDccccc0\x86Iddda\x86I\x86I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x82P\x81\x44R" '(byte-compile-debug byte-compile-map-safe #dprint list-length argument-error quoted? byte-compile-helper word? index bf nil car put exch cons cdr pair bt pop))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x84i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida\x85Ll\x81\x43\x85T\x82I\x84L:\x82Ida,\x83Idda,\x81I00\x86Iccc\x83I\x86Ll\x83\x43\x81I\x87Ll\x81\x43\x85T\x84I\x84L:\x88Lic\x89L\x83i\x83I\x83Ll\x81\x43+\x8Ci+\x83I\x83Ll\x81\x43+\x8Bi+c\x8ALic\x88L\x81ic\x8BLic\x8CLic\x8DLic\x8ELic\x88L\x81ic\x8FLic\x8CL\x81ic\x88L\x81ic\x90Lic\x91L\xFEi\x8FI\x83Ll\x81\x43-\x89i-c\x88L\x81ic\x89L\x81i\x91I\x83Ll\x81\x43+\x82i+c\x88L\x81ic\x8CLic\x8CL\x81ic\x88Lic\x8BLic\x88L\x82ic\x8ELic\x8CL\x81ic\x8FLic\x88Lic\x91L\xF8ic\x92Lic0ccccccccccc0\x93II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDcccccccccccc0\x87II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDccccc0\x86Iddda\x86I\x86I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPP\x82P\x81\x44R",417);
@@ -2601,8 +2646,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-or code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-or code stackitems loopheight)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (let ((b (byte-compile-helper (unquote (caddr code)) stackitems loopheight))) (append (byte-compile-helper (cadr code) stackitems loopheight) (list (list 'index . '0)) (list (cons 'bt (+ 1 (list-length b)))) (list (list 'pop . '0)) b)))
-// (#define 'byte-compile-or (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-or (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#let 'b (byte-compile-helper (unquote (car (cdr (cdr code)))) stackitems loopheight) '(#append/reversed (cons (cons 'index '0) (cons (cons 'bt (+ 1 (list-length b))) (cons (cons 'pop '0) b))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight))))))))
+// (define (byte-compile-or code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-or code stackitems flowstack)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (let ((b (byte-compile-helper (unquote (caddr code)) stackitems flowstack))) (append (byte-compile-helper (cadr code) stackitems flowstack) (list (list 'index . '0)) (list (cons 'bt (+ 1 (list-length b)))) (list (list 'pop . '0)) b)))
+// (#define 'byte-compile-or (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-or (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#let 'b (byte-compile-helper (unquote (car (cdr (cdr code)))) stackitems flowstack) '(#append/reversed (cons (cons 'index '0) (cons (cons 'bt (+ 1 (list-length b))) (cons (cons 'pop '0) b))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack))))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x83i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x82Idda,\x82I\x82I\x85Ll\x83\x43\x86Lic\x87L\x81i\x83I\x83Ll\x81\x43+c\x88Lic\x83Iccc0\x85Ida\x85I\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDP\x83R" '(byte-compile-debug byte-compile-or #dprint list-length argument-error byte-compile-helper index bt pop))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Idda,\x82I\x82I\x85Ll\x83\x43\x86Lic\x87L\x81i\x83I\x83Ll\x81\x43+c\x88Lic\x83Iccc0\x85Ida\x85I\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDP\x82P\x81\x44R" '(byte-compile-debug byte-compile-or #dprint list-length argument-error byte-compile-helper index bt pop))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Idda,\x82I\x82I\x85Ll\x83\x43\x86Lic\x87L\x81i\x83I\x83Ll\x81\x43+c\x88Lic\x83Iccc0\x85Ida\x85I\x85I\x85Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDP\x82P\x81\x44R",134);
@@ -2674,8 +2719,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-prog1of2 code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-prog1of2 code stackitems loopheight)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems loopheight) (byte-compile-helper (caddr code) (cons #f stackitems) loopheight) (list (list 'pop . '0))))
-// (#define 'byte-compile-prog1of2 (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-prog1of2 (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (cons (cons 'pop '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f stackitems) loopheight))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)))))))
+// (define (byte-compile-prog1of2 code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-prog1of2 code stackitems flowstack)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems flowstack) (byte-compile-helper (caddr code) (cons #f stackitems) flowstack) (list (list 'pop . '0))))
+// (#define 'byte-compile-prog1of2 (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-prog1of2 (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (cons (cons 'pop '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) (cons #f stackitems) flowstack))) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x83i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x85Lic0c0\x84Idda0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83R" '(byte-compile-debug byte-compile-prog1of2 #dprint list-length argument-error pop byte-compile-helper))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0\x84Idda0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R" '(byte-compile-debug byte-compile-prog1of2 #dprint list-length argument-error pop byte-compile-helper))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0\x84Idda0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R",145);
@@ -2739,8 +2784,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-prog2of2 code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-prog2of2 code stackitems loopheight)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems loopheight) (list (list 'pop . '0)) (byte-compile-helper (unquote (caddr code)) stackitems loopheight)))
-// (#define 'byte-compile-prog2of2 (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-prog2of2 (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (cons (cons 'pop '0) (byte-compile-helper (unquote (car (cdr (cdr code)))) stackitems loopheight)) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)))))))
+// (define (byte-compile-prog2of2 code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-prog2of2 code stackitems flowstack)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems flowstack) (list (list 'pop . '0)) (byte-compile-helper (unquote (caddr code)) stackitems flowstack)))
+// (#define 'byte-compile-prog2of2 (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-prog2of2 (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (cons (cons 'pop '0) (byte-compile-helper (unquote (car (cdr (cdr code)))) stackitems flowstack)) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x83i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x85Lic\x83Idda,\x83I\x83I\x86Ll\x83\x43\x63\x30\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83R" '(byte-compile-debug byte-compile-prog2of2 #dprint list-length argument-error pop byte-compile-helper))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic\x83Idda,\x83I\x83I\x86Ll\x83\x43\x63\x30\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R" '(byte-compile-debug byte-compile-prog2of2 #dprint list-length argument-error pop byte-compile-helper))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic\x83Idda,\x83I\x83I\x86Ll\x83\x43\x63\x30\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R",112);
@@ -2804,8 +2849,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-quote code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-quote code stackitems loopheight)) (if (<> 2 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems loopheight) (list (list 'quote . '0))))
-// (#define 'byte-compile-quote (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-quote (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 2 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (cons (cons 'quote '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)))))))
+// (define (byte-compile-quote code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-quote code stackitems flowstack)) (if (<> 2 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems flowstack) (list (list 'quote . '0))))
+// (#define 'byte-compile-quote (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-quote (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 2 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (cons (cons 'quote '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x82i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x85Lic0c0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83R" '(byte-compile-debug byte-compile-quote #dprint list-length argument-error quote byte-compile-helper))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R" '(byte-compile-debug byte-compile-quote #dprint list-length argument-error quote byte-compile-helper))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R",98);
@@ -2869,8 +2914,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-set code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-set code stackitems loopheight)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (ifelse (quoted? (cadr code)) (let ((var (unquote (cadr code))) (val (byte-compile-helper (caddr code) stackitems loopheight))) (unless (word? var) (throw 'argument-error code)) (let ((pos (list-index stackitems var))) (ifelse pos (append val (list (list 'index . '0)) (list (cons 'put (+ pos 1)))) (append val (list (cons 'localobj var)) (list (list 'set . '0)))))) (append (byte-compile-helper (caddr code) stackitems loopheight) (byte-compile-helper (cadr code) (cons #f stackitems) loopheight) (list (list 'set . '0)))))
-// (#define 'byte-compile-set (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-set (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#ifelse (quoted? (car (cdr code))) '(#let 'var (unquote (car (cdr code))) '(#let 'val (byte-compile-helper (car (cdr (cdr code))) stackitems loopheight) '(#prog2of2 (#ifelse (word? var) '#f '(throw 'argument-error code)) '(#let 'pos (list-index stackitems var) '(#ifelse pos '(#append/reversed (cons (cons 'index '0) (cons (cons 'put (+ pos 1)) #f)) (#append/reversed #f val)) '(#append/reversed (cons (cons 'localobj var) (cons (cons 'set '0) #f)) (#append/reversed #f val))))))) '(#append/reversed (#append/reversed (cons (cons 'set '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr code)) (cons #f stackitems) loopheight))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) stackitems loopheight))))))))
+// (define (byte-compile-set code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-set code stackitems flowstack)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (ifelse (quoted? (cadr code)) (let ((var (unquote (cadr code))) (val (byte-compile-helper (caddr code) stackitems flowstack))) (unless (word? var) (throw 'argument-error code)) (let ((pos (list-index stackitems var))) (ifelse pos (append val (list (list 'index . '0)) (list (cons 'put (+ pos 1)))) (append val (list (cons 'localobj var)) (list (list 'set . '0)))))) (append (byte-compile-helper (caddr code) stackitems flowstack) (byte-compile-helper (cadr code) (cons #f stackitems) flowstack) (list (list 'set . '0)))))
+// (#define 'byte-compile-set (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-set (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#ifelse (quoted? (car (cdr code))) '(#let 'var (unquote (car (cdr code))) '(#let 'val (byte-compile-helper (car (cdr (cdr code))) stackitems flowstack) '(#prog2of2 (#ifelse (word? var) '#f '(throw 'argument-error code)) '(#let 'pos (list-index stackitems var) '(#ifelse pos '(#append/reversed (cons (cons 'index '0) (cons (cons 'put (+ pos 1)) #f)) (#append/reversed #f val)) '(#append/reversed (cons (cons 'localobj var) (cons (cons 'set '0) #f)) (#append/reversed #f val))))))) '(#append/reversed (#append/reversed (cons (cons 'set '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr code)) (cons #f stackitems) flowstack))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) stackitems flowstack))))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x83i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x82Ida\x85Ll\x81\x43\x81\x96\x46\x82Ida,\x83Idda\x83I\x83I\x86Ll\x83\x43\x81I\x87Ll\x81\x43\x83\x46\x30\x85G\x84I\x84L:D\x83I\x82I\x88Ll\x82\x43I\xB2\x46\x89Lic\x8AL\x82I\x81i+c0cc0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\xADG\x8BL\x83Ic\x8CLic0cc0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPP\x80\xE1G\x8CLic0c0\x84Ida0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Idda\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83R" '(byte-compile-debug byte-compile-set #dprint list-length argument-error quoted? byte-compile-helper word? list-index index put localobj set))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida\x85Ll\x81\x43\x81\x94\x46\x82Ida,\x83Idda\x83I\x83I\x86Ll\x83\x43\x81I\x87Ll\x81\x43\x85T\x84I\x84L:\x83I\x82I\x88Ll\x82\x43I\xB2\x46\x89Lic\x8AL\x82I\x81i+c0cc0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\xADG\x8BL\x83Ic\x8CLic0cc0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPP\x82P\x81\x44R\x8CLic0c0\x84Ida0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Idda\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R" '(byte-compile-debug byte-compile-set #dprint list-length argument-error quoted? byte-compile-helper word? list-index index put localobj set))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x82Ida\x85Ll\x81\x43\x81\x94\x46\x82Ida,\x83Idda\x83I\x83I\x86Ll\x83\x43\x81I\x87Ll\x81\x43\x85T\x84I\x84L:\x83I\x82I\x88Ll\x82\x43I\xB2\x46\x89Lic\x8AL\x82I\x81i+c0cc0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\xADG\x8BL\x83Ic\x8CLic0cc0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPP\x82P\x81\x44R\x8CLic0c0\x84Ida0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Idda\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R",305);
@@ -2958,8 +3003,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-throw code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-throw code stackitems loopheight)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (caddr code) stackitems loopheight) (byte-compile-helper (cadr code) (cons #f stackitems) loopheight) (list (list 'throw . '0))))
-// (#define 'byte-compile-throw (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-throw (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (cons (cons 'throw '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr code)) (cons #f stackitems) loopheight))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) stackitems loopheight)))))))
+// (define (byte-compile-throw code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-throw code stackitems flowstack)) (if (<> 3 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (caddr code) stackitems flowstack) (byte-compile-helper (cadr code) (cons #f stackitems) flowstack) (list (list 'throw . '0))))
+// (#define 'byte-compile-throw (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-throw (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 3 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (#append/reversed (cons (cons 'throw '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr code)) (cons #f stackitems) flowstack))) (#append/reversed #f (byte-compile-helper (car (cdr (cdr code))) stackitems flowstack)))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x83i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x85Lic0c0\x84Ida0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Idda\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83R" '(byte-compile-debug byte-compile-throw #dprint list-length argument-error throw byte-compile-helper))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0\x84Ida0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Idda\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R" '(byte-compile-debug byte-compile-throw #dprint list-length argument-error throw byte-compile-helper))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x83i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0\x84Ida0\x85Ic\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x84Idda\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R",145);
@@ -3023,8 +3068,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-unquote code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-unquote code stackitems loopheight)) (if (<> 2 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems loopheight) (list (list 'unquote . '0))))
-// (#define 'byte-compile-unquote (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-unquote (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#prog2of2 (#ifelse (<> 2 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (cons (cons 'unquote '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems loopheight)))))))
+// (define (byte-compile-unquote code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-unquote code stackitems flowstack)) (if (<> 2 (list-length code)) (throw 'argument-error code)) (append (byte-compile-helper (cadr code) stackitems flowstack) (list (list 'unquote . '0))))
+// (#define 'byte-compile-unquote (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-unquote (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#prog2of2 (#ifelse (<> 2 (list-length code)) '(throw 'argument-error code) '#f) '(#append/reversed (cons (cons 'unquote '0) #f) (#append/reversed #f (byte-compile-helper (car (cdr code)) stackitems flowstack)))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x82i\x83I\x83Ll\x81\x43\x85?\x87\x46\x82I\x84L:\x81G0D\x85Lic0c0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x83R" '(byte-compile-debug byte-compile-unquote #dprint list-length argument-error unquote byte-compile-helper))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R" '(byte-compile-debug byte-compile-unquote #dprint list-length argument-error unquote byte-compile-helper))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82i\x83I\x83Ll\x81\x43\x85?\x85\x46\x82I\x84L:\x85Lic0c0\x84Ida\x84I\x84I\x86Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x82P\x81\x44R",98);
@@ -3088,8 +3133,8 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (byte-compile-helper-unknown-function code stackitems loopheight) (if byte-compile-debug (dprint 'byte-compile-helper-unknown-function code stackitems loopheight)) (let ((args (cdr code)) (instructions #f) (numargs (list-length args))) (while args (set instructions (append instructions (byte-compile-helper (car args) stackitems loopheight))) (set args (cdr args)) (set stackitems (cons #f stackitems))) (append instructions (byte-compile-helper (car code) stackitems loopheight) (list (cons 'call numargs)))))
-// (#define 'byte-compile-helper-unknown-function (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-helper-unknown-function (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#let 'args (cdr code) '(#let 'instructions #f '(#let 'numargs (list-length args) '(#prog2of2 (#loop '(#ifelse args '(#prog2of2 (#set 'instructions (#append/reversed (byte-compile-helper (car args) stackitems loopheight) (#append/reversed #f instructions))) '(#prog2of2 (#set 'args (cdr args)) '(#set 'stackitems (cons #f stackitems)))) '(#exit-loop #f))) '(#append/reversed (#append/reversed (cons (cons 'call numargs) #f) (#append/reversed #f (byte-compile-helper (car code) stackitems loopheight))) (#append/reversed #f instructions)))))))))
+// (define (byte-compile-helper-unknown-function code stackitems flowstack) (if byte-compile-debug (dprint 'byte-compile-helper-unknown-function code stackitems flowstack)) (let ((args (cdr code)) (instructions #f) (numargs (list-length args))) (while args (set instructions (append instructions (byte-compile-helper (car args) stackitems flowstack))) (set args (cdr args)) (set stackitems (cons #f stackitems))) (append instructions (byte-compile-helper (car code) stackitems flowstack) (list (cons 'call numargs)))))
+// (#define 'byte-compile-helper-unknown-function (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse byte-compile-debug '(#dprint (cons 'byte-compile-helper-unknown-function (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#let 'args (cdr code) '(#let 'instructions #f '(#let 'numargs (list-length args) '(#prog2of2 (#loop '(#ifelse args '(#prog2of2 (#set 'instructions (#append/reversed (byte-compile-helper (car args) stackitems flowstack) (#append/reversed #f instructions))) '(#prog2of2 (#set 'args (cdr args)) '(#set 'stackitems (cons #f stackitems)))) '(#exit-loop #f))) '(#append/reversed (#append/reversed (cons (cons 'call numargs) #f) (#append/reversed #f (byte-compile-helper (car code) stackitems flowstack))) (#append/reversed #f instructions)))))))))
 // (#lambda "\x83#Ll\x94\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x81G0D\x82Id0\x81I\x83Ll\x81\x43\x82I\x80\xC1\x46\x82Ia\x85I\x85I\x84Ll\x83\x43\x30\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x82PD\x82IdI\x83PD0\x85IcI\x85P\x83G0\x84GD\xFF\xB3GD\x85L\x81Ic0c0\x87Ia\x87I\x87I\x84Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPP\x83R" '(byte-compile-debug byte-compile-helper-unknown-function #dprint list-length byte-compile-helper call))
 // (#lambda "\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82Id0\x81I\x83Ll\x81\x43\x82I\xBC\x46\x82Ia\x85I\x85I\x84Ll\x83\x43\x30\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x81P\x82Id\x82P0\x85Ic\x84P\xC0G\x85L\x81Ic0c0\x87Ia\x87I\x87I\x84Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPP\x82P\x81\x44R" '(byte-compile-debug byte-compile-helper-unknown-function #dprint list-length byte-compile-helper call))
 	s=new_string("\x83#Ll\x93\x46\x81L\x83I\x83I\x83I0cccc\x82Ll\x81\x43\x44\x82Id0\x81I\x83Ll\x81\x43\x82I\xBC\x46\x82Ia\x85I\x85I\x84Ll\x83\x43\x30\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x81P\x82Id\x82P0\x85Ic\x84P\xC0G\x85L\x81Ic0c0\x87Ia\x87I\x87I\x84Ll\x83\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TD0\x83II\x8B\x46Ia\x82Ic\x81PdI\xF5TDI\x8B\x46Ia\x82Ic\x81PdI\xF5TDPPP\x82P\x81\x44R",191);
@@ -3129,8 +3174,8 @@
 	if(!o) return(1);
 	DECREF(o);
 
-// (define (byte-compile-helper code stackitems loopheight) (if (and byte-compile-debug (neq? 'cons (object-type code))) (dprint 'byte-compile-helper code stackitems loopheight)) (switch (object-type code) (('word) (let ((pos (list-index stackitems code))) (ifelse pos (list (cons 'index pos)) (switch code ((#f '#f) (list (list 'nil . '0))) (('#t) (list (list 'nil . '0) (list 'not . '0))) (('#exception) (list (list 'extype . '0))) (('#exceptionvalue) (list (list 'exvalue . '0))) (else (list (cons 'localobj code) (list 'lookup . '0))))))) (('cons) (let ((helper (get #function-compilers (car code)))) (ifelse helper (helper code stackitems loopheight) (byte-compile-helper-unknown-function code stackitems loopheight)))) (('quote) (set code (unquote code)) (ifelse code (ifelse (eq? (object-type code) 'integer) (byte-compile-helper code stackitems loopheight) (list (cons 'localobj code))) (list (list 'nil . '0)))) (('integer) (ifelse (and (<= -134217728 code) (<= code 134217727)) (list (cons 'pushi code)) (list (cons 'localobj code)))) (('nil) (list (list 'nil . '0))) (('bytefunc 'func 'rawfunc 'stream 'string) (list (cons 'localobj code))) (else (throw 'unknown-objtype code))))
-// (#define 'byte-compile-helper (byte-compile '(code stackitems loopheight) '(#prog2of2 (#ifelse (#and byte-compile-debug '(not (eq? 'cons (object-type code)))) '(#dprint (cons 'byte-compile-helper (cons code (cons stackitems (cons loopheight #f))))) '#f) '(#let '#word-970925433 (object-type code) '(#ifelse (eq? #word-970925433 'word) '(#let 'pos (list-index stackitems code) '(#ifelse pos '(cons (cons 'index pos) #f) '(#let '#word-309198987 code '(#ifelse (#or (eq? #word-309198987 #f) '(eq? #word-309198987 '#f)) '(cons (cons 'nil '0) #f) '(#ifelse (eq? #word-309198987 '#t) '(cons (cons 'nil '0) (cons (cons 'not '0) #f)) '(#ifelse (eq? #word-309198987 '#exception) '(cons (cons 'extype '0) #f) '(#ifelse (eq? #word-309198987 '#exceptionvalue) '(cons (cons 'exvalue '0) #f) '(cons (cons 'localobj code) (cons (cons 'lookup '0) #f))))))))) '(#ifelse (eq? #word-970925433 'cons) '(#let 'helper (get #function-compilers (car code)) '(#ifelse helper '(helper code stackitems loopheight) '(byte-compile-helper-unknown-function code stackitems loopheight))) '(#ifelse (eq? #word-970925433 'quote) '(#prog2of2 (#set 'code (unquote code)) '(#ifelse code '(#ifelse (eq? (object-type code) 'integer) '(byte-compile-helper code stackitems loopheight) '(cons (cons 'localobj code) #f)) '(cons (cons 'nil '0) #f))) '(#ifelse (eq? #word-970925433 'integer) '(#ifelse (#and (<= -134217728 code) '(<= code 134217727)) '(cons (cons 'pushi code) #f) '(cons (cons 'localobj code) #f)) '(#ifelse (eq? #word-970925433 'nil) '(cons (cons 'nil '0) #f) '(#ifelse (#or (#or (#or (#or (eq? #word-970925433 'bytefunc) '(eq? #word-970925433 'func)) '(eq? #word-970925433 'rawfunc)) '(eq? #word-970925433 'stream)) '(eq? #word-970925433 'string)) '(cons (cons 'localobj code) #f) '(throw 'unknown-objtype code)))))))))))
+// (define (byte-compile-helper code stackitems flowstack) (if (and byte-compile-debug (neq? 'cons (object-type code))) (dprint 'byte-compile-helper code stackitems flowstack)) (switch (object-type code) (('word) (let ((pos (list-index stackitems code))) (ifelse pos (list (cons 'index pos)) (switch code ((#f '#f) (list (list 'nil . '0))) (('#t) (list (list 'nil . '0) (list 'not . '0))) (('#exception) (list (list 'extype . '0))) (('#exceptionvalue) (list (list 'exvalue . '0))) (else (list (cons 'localobj code) (list 'lookup . '0))))))) (('cons) (let ((helper (get #function-compilers (car code)))) (ifelse helper (helper code stackitems flowstack) (byte-compile-helper-unknown-function code stackitems flowstack)))) (('quote) (set code (unquote code)) (ifelse code (ifelse (eq? (object-type code) 'integer) (byte-compile-helper code stackitems flowstack) (list (cons 'localobj code))) (list (list 'nil . '0)))) (('integer) (ifelse (and (<= -134217728 code) (<= code 134217727)) (list (cons 'pushi code)) (list (cons 'localobj code)))) (('nil) (list (list 'nil . '0))) (('bytefunc 'func 'rawfunc 'stream 'string) (list (cons 'localobj code))) (else (throw 'unknown-objtype code))))
+// (#define 'byte-compile-helper (byte-compile '(code stackitems flowstack) '(#prog2of2 (#ifelse (#and byte-compile-debug '(not (eq? 'cons (object-type code)))) '(#dprint (cons 'byte-compile-helper (cons code (cons stackitems (cons flowstack #f))))) '#f) '(#let '#word-1232056856 (object-type code) '(#ifelse (eq? #word-1232056856 'word) '(#let 'pos (list-index stackitems code) '(#ifelse pos '(cons (cons 'index pos) #f) '(#let '#word-1745790417 code '(#ifelse (#or (eq? #word-1745790417 #f) '(eq? #word-1745790417 '#f)) '(cons (cons 'nil '0) #f) '(#ifelse (eq? #word-1745790417 '#t) '(cons (cons 'nil '0) (cons (cons 'not '0) #f)) '(#ifelse (eq? #word-1745790417 '#exception) '(cons (cons 'extype '0) #f) '(#ifelse (eq? #word-1745790417 '#exceptionvalue) '(cons (cons 'exvalue '0) #f) '(cons (cons 'localobj code) (cons (cons 'lookup '0) #f))))))))) '(#ifelse (eq? #word-1232056856 'cons) '(#let 'helper (get #function-compilers (car code)) '(#ifelse helper '(helper code stackitems flowstack) '(byte-compile-helper-unknown-function code stackitems flowstack))) '(#ifelse (eq? #word-1232056856 'quote) '(#prog2of2 (#set 'code (unquote code)) '(#ifelse code '(#ifelse (eq? (object-type code) 'integer) '(byte-compile-helper code stackitems flowstack) '(cons (cons 'localobj code) #f)) '(cons (cons 'nil '0) #f))) '(#ifelse (eq? #word-1232056856 'integer) '(#ifelse (#and (<= -134217728 code) '(<= code 134217727)) '(cons (cons 'pushi code) #f) '(cons (cons 'localobj code) #f)) '(#ifelse (eq? #word-1232056856 'nil) '(cons (cons 'nil '0) #f) '(#ifelse (#or (#or (#or (#or (eq? #word-1232056856 'bytefunc) '(eq? #word-1232056856 'func)) '(eq? #word-1232056856 'rawfunc)) '(eq? #word-1232056856 'stream)) '(eq? #word-1232056856 'string)) '(cons (cons 'localobj code) #f) '(throw 'unknown-objtype code)))))))))))
 // (#lambda "\x83#LlI\x88\x46\x44\x81L\x83IO=!\x94\x46\x82L\x83I\x83I\x83I0cccc\x83Ll\x81\x43\x81G0D\x82IOI\x84L=\x80\xEC\x46\x82I\x84I\x85Ll\x82\x43I\x8A\x46\x86L\x81Ic0c\x80\xD2G\x84II0=I\x84TDI0=\x88\x46\x87Lic0c\xBBGI\x88L=\x8D\x46\x87Lic\x89Lic0cc\xA8GI\x8AL=\x88\x46\x8BLic0c\x9AGI\x8CL=\x88\x46\x8DLic0c\x8CG\x8EL\x86Ic\x8FLic0ccPP\x81\xDAGI\x81L=\xA9\x46\x90Ll\x84Ia\x91Ll\x82\x43I\x8C\x46\x84I\x84I\x84I\x83I\x83\x43\x8BG\x84I\x84I\x84I\x92Ll\x83\x43P\x81\xABGI\x93L=\xB2\x46\x83I,I\x84PD\x83I\x9E\x46\x83IO\x94L=\x8D\x46\x83I\x83I\x83I\x82Ll\x83\x43\x87G\x8EL\x84Ic0c\x86G\x87Lic0c\x80\xF3GI\x94L=\xAB\x46\xC0\x80\x80\x80i\x84I\x83?I\x8A\x46\x44\x83I\xBF\xFF\xFF\xFFi\x83?\x89\x46\x95L\x84Ic0c\x87G\x8EL\x84Ic0c\x80\xC2GI\x87L=\x88\x46\x87Lic0c\xB4GI\x96L=I\x85TDI\x97L=I\x85TDI\x98L=I\x85TDI\x99L=I\x85TDI\x9AL=\x89\x46\x8EL\x84Ic0c\x85G\x83I\x9BL:P\x83R" '(byte-compile-debug cons byte-compile-helper #dprint word list-index index nil #t not #exception extype #exceptionvalue exvalue localobj lookup #function-compilers get byte-compile-helper-unknown-function quote integer pushi bytefunc func rawfunc stream string unknown-objtype))
 // (#lambda "\x83#LlI\x88\x46\x44\x81L\x83IO=!\x93\x46\x82L\x83I\x83I\x83I0cccc\x83Ll\x81\x43\x44\x82IOI\x84L=\x80\xEC\x46\x82I\x84I\x85Ll\x82\x43I\x8A\x46\x86L\x81Ic0c\x80\xD2G\x84II0=I\x84TDI0=\x88\x46\x87Lic0c\xBBGI\x88L=\x8D\x46\x87Lic\x89Lic0cc\xA8GI\x8AL=\x88\x46\x8BLic0c\x9AGI\x8CL=\x88\x46\x8DLic0c\x8CG\x8EL\x86Ic\x8FLic0ccPP\x81\xDBGI\x81L=\xA9\x46\x90Ll\x84Ia\x91Ll\x82\x43I\x8C\x46\x84I\x84I\x84I\x83I\x83\x43\x8BG\x84I\x84I\x84I\x92Ll\x83\x43P\x81\xACGI\x93L=\xB2\x46\x83I,\x83P\x83I\xA0\x46\x83IO\x94L=\x8E\x46\x83I\x83I\x83I\x82Ll\x83\x43\x81\x87G\x8EL\x84Ic0c\x80\xFDG\x87Lic0c\x80\xF4GI\x94L=\xAC\x46\xC0\x80\x80\x80i\x84I\x83?I\x8A\x46\x44\x83I\xBF\xFF\xFF\xFFi\x83?\x8A\x46\x95L\x84Ic0c\x80\xCCG\x8EL\x84Ic0c\x80\xC2GI\x87L=\x88\x46\x87Lic0c\xB4GI\x96L=I\x85TDI\x97L=I\x85TDI\x98L=I\x85TDI\x99L=I\x85TDI\x9AL=\x89\x46\x8EL\x84Ic0c\x85G\x83I\x9BL:P\x82P\x81\x44R" '(byte-compile-debug cons byte-compile-helper #dprint word list-index index nil #t not #exception extype #exceptionvalue exvalue localobj lookup #function-compilers get byte-compile-helper-unknown-function quote integer pushi bytefunc func rawfunc stream string unknown-objtype))
 	s=new_string("\x83#LlI\x88\x46\x44\x81L\x83IO=!\x93\x46\x82L\x83I\x83I\x83I0cccc\x83Ll\x81\x43\x44\x82IOI\x84L=\x80\xEC\x46\x82I\x84I\x85Ll\x82\x43I\x8A\x46\x86L\x81Ic0c\x80\xD2G\x84II0=I\x84TDI0=\x88\x46\x87Lic0c\xBBGI\x88L=\x8D\x46\x87Lic\x89Lic0cc\xA8GI\x8AL=\x88\x46\x8BLic0c\x9AGI\x8CL=\x88\x46\x8DLic0c\x8CG\x8EL\x86Ic\x8FLic0ccPP\x81\xDBGI\x81L=\xA9\x46\x90Ll\x84Ia\x91Ll\x82\x43I\x8C\x46\x84I\x84I\x84I\x83I\x83\x43\x8BG\x84I\x84I\x84I\x92Ll\x83\x43P\x81\xACGI\x93L=\xB2\x46\x83I,\x83P\x83I\xA0\x46\x83IO\x94L=\x8E\x46\x83I\x83I\x83I\x82Ll\x83\x43\x81\x87G\x8EL\x84Ic0c\x80\xFDG\x87Lic0c\x80\xF4GI\x94L=\xAC\x46\xC0\x80\x80\x80i\x84I\x83?I\x8A\x46\x44\x83I\xBF\xFF\xFF\xFFi\x83?\x8A\x46\x95L\x84Ic0c\x80\xCCG\x8EL\x84Ic0c\x80\xC2GI\x87L=\x88\x46\x87Lic0c\xB4GI\x96L=I\x85TDI\x97L=I\x85TDI\x98L=I\x85TDI\x99L=I\x85TDI\x9AL=\x89\x46\x8EL\x84Ic0c\x85G\x83I\x9BL:P\x82P\x81\x44R",379);
@@ -3592,11 +3637,11 @@
 	if(!o) return(1);
 	DECREF(o);
 
-// (define (disassemble-print file func) (let ((ops (disassemble func)) (op #f) (arg #f)) (while ops (set op (car ops)) (set ops (cdr ops)) (ifelse (word? op) (progn (write-object file op) (write-object file ':)) (progn (set arg (cdr op)) (set op (car op)) (write-string file "\x09") (write-object file op) (switch op (('nil 'pop 'exch 'add 'sub 'mul 'div 'toss 'throw 'define 'lookup 'set 'evaluate 'extype 'exvalue 'eq 'and 'or 'not 'objtype 'cons 'car 'cdr 'quote 'unquote 'bitsel 'asr) #f) (else (write-string file " ") (if (and (eq? 'localobj op) (word? arg)) (write-string file "'")) (write-object file arg))))) (write-newline file))))
-// (#define 'disassemble-print (byte-compile '(file func) '(#let 'ops (disassemble func) '(#let 'op #f '(#let 'arg #f '(#loop '(#ifelse ops '(#prog2of2 (#set 'op (car ops)) '(#prog2of2 (#set 'ops (cdr ops)) '(#prog2of2 (#ifelse (word? op) '(#prog2of2 (write-object file op) '(write-object file ':)) '(#prog2of2 (#set 'arg (cdr op)) '(#prog2of2 (#set 'op (car op)) '(#prog2of2 (write-string file "\x09") '(#prog2of2 (write-object file op) '(#let '#word-427355115 op '(#ifelse (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (eq? #word-427355115 'nil) '(eq? #word-427355115 'pop)) '(eq? #word-427355115 'exch)) '(eq? #word-427355115 'add)) '(eq? #word-427355115 'sub)) '(eq? #word-427355115 'mul)) '(eq? #word-427355115 'div)) '(eq? #word-427355115 'toss)) '(eq? #word-427355115 'throw)) '(eq? #word-427355115 'define)) '(eq? #word-427355115 'lookup)) '(eq? #word-427355115 'set)) '(eq? #word-427355115 'evaluate)) '(eq? #word-427355115 'extype)) '(eq? #word-427355115 'exvalue)) '(eq? #word-427355115 'eq)) '(eq? #word-427355115 'and)) '(eq? #word-427355115 'or)) '(eq? #word-427355115 'not)) '(eq? #word-427355115 'objtype)) '(eq? #word-427355115 'cons)) '(eq? #word-427355115 'car)) '(eq? #word-427355115 'cdr)) '(eq? #word-427355115 'quote)) '(eq? #word-427355115 'unquote)) '(eq? #word-427355115 'bitsel)) '(eq? #word-427355115 'asr)) '#f '(#prog2of2 (write-string file " ") '(#prog2of2 (#ifelse (#and (eq? 'localobj op) '(word? arg)) '(write-string file "'") '#f) '(write-object file arg)))))))))) '(write-newline file)))) '(#exit-loop #f))))))))
-// (#lambda "\x82#ILl\x81\x43\x30\x30\x82I\x82\xE7\x46\x82IaI\x82PD\x82IdI\x83PD\x81I\x81Ll\x81\x43\x96\x46\x84I\x82I\x82Ll\x82\x43\x44\x84I\x83L\x82Ll\x82\x43\x82\xB0G\x81IdI\x81PD\x81IaI\x82PD\x84I\x84L\x85Ll\x82\x43\x44\x84I\x82I\x82Ll\x82\x43\x44\x81II\x86L=I\x85TDI\x87L=I\x85TDI\x88L=I\x85TDI\x89L=I\x85TDI\x8AL=I\x85TDI\x8BL=I\x85TDI\x8CL=I\x85TDI\x8DL=I\x85TDI\x8EL=I\x85TDI\x8FL=I\x85TDI\x90L=I\x85TDI\x91L=I\x85TDI\x92L=I\x85TDI\x93L=I\x85TDI\x94L=I\x85TDI\x95L=I\x85TDI\x96L=I\x85TDI\x97L=I\x85TDI\x98L=I\x85TDI\x99L=I\x85TDI\x9AL=I\x85TDI\x9BL=I\x85TDI\x9CL=I\x85TDI\x9DL=I\x85TDI\x9EL=I\x85TDI\x9FL=I\x85TDI\xA0L=\x83\x46\x30\xB2G\x85I\xA1L\x85Ll\x82\x43\x44\xA2L\x83I=I\x88\x46\x44\x81I\x81Ll\x81\x43\x8B\x46\x85I\xA3L\x85Ll\x82\x43\x81G0D\x85I\x82I\x82Ll\x82\x43PD\x84I\xA4Ll\x81\x43\x83G0\x84GD\xFD\x8DGPPP\x82R" '(disassemble word? write-object : "\x09" write-string nil pop exch add sub mul div toss throw define lookup set evaluate extype exvalue eq and or not objtype cons car cdr quote unquote bitsel asr " " localobj "'" write-newline))
-// (#lambda "\x82#ILl\x81\x43\x30\x30\x82I\x82\xDE\x46\x82Ia\x81P\x82Id\x82P\x81I\x81Ll\x81\x43\x97\x46\x84I\x82I\x82Ll\x82\x43\x44\x84I\x83L\x82Ll\x82\x43\x44\x82\xA9G\x81IdP\x81Ia\x81P\x84I\x84L\x85Ll\x82\x43\x44\x84I\x82I\x82Ll\x82\x43\x44\x81II\x86L=I\x85TDI\x87L=I\x85TDI\x88L=I\x85TDI\x89L=I\x85TDI\x8AL=I\x85TDI\x8BL=I\x85TDI\x8CL=I\x85TDI\x8DL=I\x85TDI\x8EL=I\x85TDI\x8FL=I\x85TDI\x90L=I\x85TDI\x91L=I\x85TDI\x92L=I\x85TDI\x93L=I\x85TDI\x94L=I\x85TDI\x95L=I\x85TDI\x96L=I\x85TDI\x97L=I\x85TDI\x98L=I\x85TDI\x99L=I\x85TDI\x9AL=I\x85TDI\x9BL=I\x85TDI\x9CL=I\x85TDI\x9DL=I\x85TDI\x9EL=I\x85TDI\x9FL=I\x85TDI\xA0L=\x83\x46\x30\xAFG\x85I\xA1L\x85Ll\x82\x43\x44\xA2L\x83I=I\x88\x46\x44\x81I\x81Ll\x81\x43\x8A\x46\x85I\xA3L\x85Ll\x82\x43\x44\x85I\x82I\x82Ll\x82\x43PD\x84I\xA4Ll\x81\x43\x44\xFD\x9DG\x82\x44\x30\x81PDR" '(disassemble word? write-object : "\x09" write-string nil pop exch add sub mul div toss throw define lookup set evaluate extype exvalue eq and or not objtype cons car cdr quote unquote bitsel asr " " localobj "'" write-newline))
-	s=new_string("\x82#ILl\x81\x43\x30\x30\x82I\x82\xDE\x46\x82Ia\x81P\x82Id\x82P\x81I\x81Ll\x81\x43\x97\x46\x84I\x82I\x82Ll\x82\x43\x44\x84I\x83L\x82Ll\x82\x43\x44\x82\xA9G\x81IdP\x81Ia\x81P\x84I\x84L\x85Ll\x82\x43\x44\x84I\x82I\x82Ll\x82\x43\x44\x81II\x86L=I\x85TDI\x87L=I\x85TDI\x88L=I\x85TDI\x89L=I\x85TDI\x8AL=I\x85TDI\x8BL=I\x85TDI\x8CL=I\x85TDI\x8DL=I\x85TDI\x8EL=I\x85TDI\x8FL=I\x85TDI\x90L=I\x85TDI\x91L=I\x85TDI\x92L=I\x85TDI\x93L=I\x85TDI\x94L=I\x85TDI\x95L=I\x85TDI\x96L=I\x85TDI\x97L=I\x85TDI\x98L=I\x85TDI\x99L=I\x85TDI\x9AL=I\x85TDI\x9BL=I\x85TDI\x9CL=I\x85TDI\x9DL=I\x85TDI\x9EL=I\x85TDI\x9FL=I\x85TDI\xA0L=\x83\x46\x30\xAFG\x85I\xA1L\x85Ll\x82\x43\x44\xA2L\x83I=I\x88\x46\x44\x81I\x81Ll\x81\x43\x8A\x46\x85I\xA3L\x85Ll\x82\x43\x44\x85I\x82I\x82Ll\x82\x43PD\x84I\xA4Ll\x81\x43\x44\xFD\x9DG\x82\x44\x30\x81PDR",371);
+// (define (disassemble-print file func) (let ((ops (disassemble func)) (op #f) (arg #f)) (while ops (set op (car ops)) (set ops (cdr ops)) (ifelse (word? op) (progn (write-object file op) (write-object file ':)) (progn (set arg (cdr op)) (set op (car op)) (write-string file "\x09") (write-object file op) (switch op (('nil 'pop 'exch 'add 'sub 'mul 'div 'toss 'throw 'define 'lookup 'set 'evaluate 'extype 'exvalue 'eq 'and 'or 'not 'objtype 'cons 'car 'cdr 'quote 'unquote 'bitsel 'asr) (unless (= 0 arg) (write-string file " ") (write-object file arg))) (else (write-string file " ") (if (and (eq? 'localobj op) (word? arg)) (write-string file "'")) (write-object file arg))))) (write-newline file))))
+// (#define 'disassemble-print (byte-compile '(file func) '(#let 'ops (disassemble func) '(#let 'op #f '(#let 'arg #f '(#loop '(#ifelse ops '(#prog2of2 (#set 'op (car ops)) '(#prog2of2 (#set 'ops (cdr ops)) '(#prog2of2 (#ifelse (word? op) '(#prog2of2 (write-object file op) '(write-object file ':)) '(#prog2of2 (#set 'arg (cdr op)) '(#prog2of2 (#set 'op (car op)) '(#prog2of2 (write-string file "\x09") '(#prog2of2 (write-object file op) '(#let '#word-1210359231 op '(#ifelse (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (#or (eq? #word-1210359231 'nil) '(eq? #word-1210359231 'pop)) '(eq? #word-1210359231 'exch)) '(eq? #word-1210359231 'add)) '(eq? #word-1210359231 'sub)) '(eq? #word-1210359231 'mul)) '(eq? #word-1210359231 'div)) '(eq? #word-1210359231 'toss)) '(eq? #word-1210359231 'throw)) '(eq? #word-1210359231 'define)) '(eq? #word-1210359231 'lookup)) '(eq? #word-1210359231 'set)) '(eq? #word-1210359231 'evaluate)) '(eq? #word-1210359231 'extype)) '(eq? #word-1210359231 'exvalue)) '(eq? #word-1210359231 'eq)) '(eq? #word-1210359231 'and)) '(eq? #word-1210359231 'or)) '(eq? #word-1210359231 'not)) '(eq? #word-1210359231 'objtype)) '(eq? #word-1210359231 'cons)) '(eq? #word-1210359231 'car)) '(eq? #word-1210359231 'cdr)) '(eq? #word-1210359231 'quote)) '(eq? #word-1210359231 'unquote)) '(eq? #word-1210359231 'bitsel)) '(eq? #word-1210359231 'asr)) '(#ifelse (= 0 arg) '#f '(#prog2of2 (write-string file " ") '(write-object file arg))) '(#prog2of2 (write-string file " ") '(#prog2of2 (#ifelse (#and (eq? 'localobj op) '(word? arg)) '(write-string file "'") '#f) '(write-object file arg)))))))))) '(write-newline file)))) '(#exit-loop #f))))))))
+// (#lambda "\x82#ILl\x81\x43\x30\x30\x82I\x83\x83\x46\x82IaI\x82PD\x82IdI\x83PD\x81I\x81Ll\x81\x43\x96\x46\x84I\x82I\x82Ll\x82\x43\x44\x84I\x83L\x82Ll\x82\x43\x82\xCCG\x81IdI\x81PD\x81IaI\x82PD\x84I\x84L\x85Ll\x82\x43\x44\x84I\x82I\x82Ll\x82\x43\x44\x81II\x86L=I\x85TDI\x87L=I\x85TDI\x88L=I\x85TDI\x89L=I\x85TDI\x8AL=I\x85TDI\x8BL=I\x85TDI\x8CL=I\x85TDI\x8DL=I\x85TDI\x8EL=I\x85TDI\x8FL=I\x85TDI\x90L=I\x85TDI\x91L=I\x85TDI\x92L=I\x85TDI\x93L=I\x85TDI\x94L=I\x85TDI\x95L=I\x85TDI\x96L=I\x85TDI\x97L=I\x85TDI\x98L=I\x85TDI\x99L=I\x85TDI\x9AL=I\x85TDI\x9BL=I\x85TDI\x9CL=I\x85TDI\x9DL=I\x85TDI\x9EL=I\x85TDI\x9FL=I\x85TDI\xA0L=\x9F\x46i\x82I\x82?\x83\x46\x30\x93G\x85I\xA1L\x85Ll\x82\x43\x44\x85I\x82I\x82Ll\x82\x43\xB2G\x85I\xA2L\x85Ll\x82\x43\x44\xA3L\x83I=I\x88\x46\x44\x81I\x81Ll\x81\x43\x8B\x46\x85I\xA4L\x85Ll\x82\x43\x81G0D\x85I\x82I\x82Ll\x82\x43PD\x84I\xA5Ll\x81\x43\x83G0\x84GD\xFC\xF1GPPP\x82R" '(disassemble word? write-object : "\x09" write-string nil pop exch add sub mul div toss throw define lookup set evaluate extype exvalue eq and or not objtype cons car cdr quote unquote bitsel asr " " " " localobj "'" write-newline))
+// (#lambda "\x82#ILl\x81\x43\x30\x30\x82I\x82\xFB\x46\x82Ia\x81P\x82Id\x82P\x81I\x81Ll\x81\x43\x97\x46\x84I\x82I\x82Ll\x82\x43\x44\x84I\x83L\x82Ll\x82\x43\x44\x82\xC6G\x81IdP\x81Ia\x81P\x84I\x84L\x85Ll\x82\x43\x44\x84I\x82I\x82Ll\x82\x43\x44\x81II\x86L=I\x85TDI\x87L=I\x85TDI\x88L=I\x85TDI\x89L=I\x85TDI\x8AL=I\x85TDI\x8BL=I\x85TDI\x8CL=I\x85TDI\x8DL=I\x85TDI\x8EL=I\x85TDI\x8FL=I\x85TDI\x90L=I\x85TDI\x91L=I\x85TDI\x92L=I\x85TDI\x93L=I\x85TDI\x94L=I\x85TDI\x95L=I\x85TDI\x96L=I\x85TDI\x97L=I\x85TDI\x98L=I\x85TDI\x99L=I\x85TDI\x9AL=I\x85TDI\x9BL=I\x85TDI\x9CL=I\x85TDI\x9DL=I\x85TDI\x9EL=I\x85TDI\x9FL=I\x85TDI\xA0L=\xA0\x46i\x82I\x82?\x84\x46\x30\x80\xC4G\x85I\xA1L\x85Ll\x82\x43\x44\x85I\x82I\x82Ll\x82\x43\xAFG\x85I\xA2L\x85Ll\x82\x43\x44\xA3L\x83I=I\x88\x46\x44\x81I\x81Ll\x81\x43\x8A\x46\x85I\xA4L\x85Ll\x82\x43\x44\x85I\x82I\x82Ll\x82\x43PD\x84I\xA5Ll\x81\x43\x44\xFD\x80G\x82\x44\x30\x81PDR" '(disassemble word? write-object : "\x09" write-string nil pop exch add sub mul div toss throw define lookup set evaluate extype exvalue eq and or not objtype cons car cdr quote unquote bitsel asr " " " " localobj "'" write-newline))
+	s=new_string("\x82#ILl\x81\x43\x30\x30\x82I\x82\xFB\x46\x82Ia\x81P\x82Id\x82P\x81I\x81Ll\x81\x43\x97\x46\x84I\x82I\x82Ll\x82\x43\x44\x84I\x83L\x82Ll\x82\x43\x44\x82\xC6G\x81IdP\x81Ia\x81P\x84I\x84L\x85Ll\x82\x43\x44\x84I\x82I\x82Ll\x82\x43\x44\x81II\x86L=I\x85TDI\x87L=I\x85TDI\x88L=I\x85TDI\x89L=I\x85TDI\x8AL=I\x85TDI\x8BL=I\x85TDI\x8CL=I\x85TDI\x8DL=I\x85TDI\x8EL=I\x85TDI\x8FL=I\x85TDI\x90L=I\x85TDI\x91L=I\x85TDI\x92L=I\x85TDI\x93L=I\x85TDI\x94L=I\x85TDI\x95L=I\x85TDI\x96L=I\x85TDI\x97L=I\x85TDI\x98L=I\x85TDI\x99L=I\x85TDI\x9AL=I\x85TDI\x9BL=I\x85TDI\x9CL=I\x85TDI\x9DL=I\x85TDI\x9EL=I\x85TDI\x9FL=I\x85TDI\xA0L=\xA0\x46i\x82I\x82?\x84\x46\x30\x80\xC4G\x85I\xA1L\x85Ll\x82\x43\x44\x85I\x82I\x82Ll\x82\x43\xAFG\x85I\xA2L\x85Ll\x82\x43\x44\xA3L\x83I=I\x88\x46\x44\x81I\x81Ll\x81\x43\x8A\x46\x85I\xA4L\x85Ll\x82\x43\x44\x85I\x82I\x82Ll\x82\x43PD\x84I\xA5Ll\x81\x43\x44\xFD\x80G\x82\x44\x30\x81PDR",400);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_word("write-newline",13);
@@ -3615,6 +3660,10 @@
 	if(!o) return(1);
 	c=cons(o,c);
 	if(!c) return(1);
+	o=new_string(" ",1);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
 	o=new_word("asr",3);
 	if(!o) return(1);
 	c=cons(o,c);
@@ -3787,7 +3836,7 @@
 	DECREF(o);
 
 // (define (evaluate o) (switch (object-type o) (('nil) #f) (('quote) (unquote o)) (('word) (lookup o)) (('cons) ((byte-compile #f o))) (else o)))
-// (#define 'evaluate (byte-compile '(o) '(#let '#word-738393740 (object-type o) '(#ifelse (eq? #word-738393740 'nil) '#f '(#ifelse (eq? #word-738393740 'quote) '(unquote o) '(#ifelse (eq? #word-738393740 'word) '(lookup o) '(#ifelse (eq? #word-738393740 'cons) '((byte-compile #f o)) 'o)))))))
+// (#define 'evaluate (byte-compile '(o) '(#let '#word-371653516 (object-type o) '(#ifelse (eq? #word-371653516 'nil) '#f '(#ifelse (eq? #word-371653516 'quote) '(unquote o) '(#ifelse (eq? #word-371653516 'word) '(lookup o) '(#ifelse (eq? #word-371653516 'cons) '((byte-compile #f o)) 'o)))))))
 // (#lambda "\x81#IOIL=\x83\x46\x30\xA9GI\x81L=\x85\x46\x81I,\x9EGI\x82L=\x85\x46\x81Il\x93GI\x83L=\x8B\x46\x30\x82I\x84Ll\x82\x43\x43\x82G\x81IP\x81R" '(nil quote word cons byte-compile))
 // (#lambda "\x81#IOIL=\x83\x46\x30\xA9GI\x81L=\x85\x46\x81I,\x9EGI\x82L=\x85\x46\x81Il\x93GI\x83L=\x8B\x46\x30\x82I\x84Ll\x82\x43\x43\x82G\x81IPPR" '(nil quote word cons byte-compile))
 	s=new_string("\x81#IOIL=\x83\x46\x30\xA9GI\x81L=\x85\x46\x81I,\x9EGI\x82L=\x85\x46\x81Il\x93GI\x83L=\x8B\x46\x30\x82I\x84Ll\x82\x43\x43\x82G\x81IPPR",56);
@@ -4201,10 +4250,10 @@
 	DECREF(o);
 
 // (define (compile-file in out) (let ((infile (open-file in "r")) (outfile (open-file out "w")) (key #f) (o #f) (o2 #f) (s #f) (val #f)) (loop (catch 'end-of-file (set o (read-object infile)) (exit-loop)) (write-string outfile "// ") (write-object outfile o) (write-newline outfile) (unless (pair? o) (throw 'bad-object o)) (set o2 (macro-expand o)) (write-string outfile "// ") (write-object outfile o2) (write-newline outfile) (unless (pair? o2) (throw 'compile-file (list 'in 1 o))) (if (eq? (car o2) 'define-character-macro) (compile-file-define-character-macro in outfile (cadr o2) (caddr o2)) (next-loop)) (if (eq? (car o2) 'function-compiler) (compile-file-function-compiler in outfile (cadr o2) (caddr o2)) (next-loop)) (unless (or (eq? (car o2) '#define) (eq? (car o2) '#macro-define)) (throw 'compile-file (list 'in 2 o))) (unless (quoted? (cadr o2)) (throw 'compile-file (list 'in 3 o))) (set key (unquote (cadr o2))) (unless (word? key) (throw 'compile-file (list 'in 4 o key))) (set val (evaluate (caddr o2))) (write-string outfile "// ") (write-object outfile val) (write-newline outfile) (if (eq? 'bytefunc (object-type val)) (set val (optimize val)) (write-string outfile "// ") (write-object outfile val) (write-newline outfile)) (switch (object-type val) (('nil) (write-string outfile "\x09o=INCREF(&nilobj);") (write-newline outfile)) (('bytefunc) (let ((revobjs (reverse (objects-of-bytefunc val)))) (compile-file-string outfile "s" (code-of-bytefunc val)) (write-string outfile "\x09\x63=INCREF(&nilobj);") (write-newline outfile) (while revobjs (let ((arg (car revobjs)) (quoteddepth 0)) (while (quoted? arg) (set quoteddepth (+ quoteddepth 1)) (set arg (unquote arg))) (switch (object-type arg) (('string) (compile-file-string outfile "o" arg)) (('word) (compile-file-word outfile "o" arg)) (else (throw 'compile-file (list 'in 5 o arg)))) (while (< 0 quoteddepth) (write-string outfile "\x09o=quoteobj(o);") (write-newline outfile) (write-string outfile "\x09if(!o) return(1);") (write-newline outfile) (set quoteddepth (- quoteddepth 1))) (write-string outfile "\x09\x63=cons(o,c);") (write-newline outfile) (write-string outfile "\x09if(!c) return(1);") (write-newline outfile)) (set revobjs (cdr revobjs))) (write-string outfile "\x09o=new_object(&bytefunc_objtype);") (write-newline outfile) (write-string outfile "\x09if(!o) return(1);") (write-newline outfile) (write-string outfile "\x09o->value.bytefunc.code=s;") (write-newline outfile) (write-string outfile "\x09o->value.bytefunc.objs=c;") (write-newline outfile))) (('cons) (unless (and (word? (car val)) (word? (cdr val))) (throw 'compile-file (list 'in 6 o val))) (compile-file-word outfile "o" (car val)) (compile-file-word outfile "c" (cdr val)) (write-string outfile "\x09o=cons(o,c);") (write-newline outfile) (write-string outfile "\x09if(!o) return(1);") (write-newline outfile)) (else (throw 'compile-file (list 'in 7 o val)))) (compile-file-word outfile "s" key) (switch (car o2) (('#define) (write-string outfile "\x09o=define(s,o);") (write-newline outfile) (write-string outfile "\x09if(!o) return(1);") (write-newline outfile) (write-string outfile "\x09\x44\x45\x43REF(o);") (write-newline outfile)) (('#macro-define) (write-string outfile "\x09\x63=cons(s,o);") (write-newline outfile) (write-string outfile "\x09if(!c) return(1);") (write-newline outfile) (compile-file-word outfile "s" '#macro-expansions) (write-string outfile "\x09INCREF(s);") (write-newline outfile) (write-string outfile "\x09o=lookup(s);") (write-newline outfile) (write-string outfile "\x09if(!o) return(1);") (write-newline outfile) (write-string outfile "\x09o=cons(c,o);") (write-newline outfile) (write-string outfile "\x09if(!o) return(1);") (write-newline outfile) (write-string outfile "\x09o=set(s,o);") (write-newline outfile) (write-string outfile "\x09if(!o) return(1);") (write-newline outfile) (write-string outfile "\x09\x44\x45\x43REF(o);") (write-newline outfile)) (else (throw 'unknown-object-type-in-compile-file o))) (write-newline outfile)) (close-file infile) (close-file outfile)) #f)
-// (#define 'compile-file (byte-compile '(in out) '(#prog2of2 (#let 'infile (open-file in "r") '(#let 'outfile (open-file out "w") '(#let 'key #f '(#let 'o #f '(#let 'o2 #f '(#let 's #f '(#let 'val #f '(#prog2of2 (#loop '(#prog2of2 (#catch 'end-of-file '(#set 'o (read-object infile)) '(#exit-loop #f)) '(#prog2of2 (write-string outfile "// ") '(#prog2of2 (write-object outfile o) '(#prog2of2 (write-newline outfile) '(#prog2of2 (#ifelse (pair? o) '#f '(throw 'bad-object o)) '(#prog2of2 (#set 'o2 (macro-expand o)) '(#prog2of2 (write-string outfile "// ") '(#prog2of2 (write-object outfile o2) '(#prog2of2 (write-newline outfile) '(#prog2of2 (#ifelse (pair? o2) '#f '(throw 'compile-file (cons 'in (cons 1 (cons o #f))))) '(#prog2of2 (#ifelse (eq? (car o2) 'define-character-macro) '(#prog2of2 (compile-file-define-character-macro in outfile (car (cdr o2)) (car (cdr (cdr o2)))) '(#next-loop)) '#f) '(#prog2of2 (#ifelse (eq? (car o2) 'function-compiler) '(#prog2of2 (compile-file-function-compiler in outfile (car (cdr o2)) (car (cdr (cdr o2)))) '(#next-loop)) '#f) '(#prog2of2 (#ifelse (#or (eq? (car o2) '#define) '(eq? (car o2) '#macro-define)) '#f '(throw 'compile-file (cons 'in (cons 2 (cons o #f))))) '(#prog2of2 (#ifelse (quoted? (car (cdr o2))) '#f '(throw 'compile-file (cons 'in (cons 3 (cons o #f))))) '(#prog2of2 (#set 'key (unquote (car (cdr o2)))) '(#prog2of2 (#ifelse (word? key) '#f '(throw 'compile-file (cons 'in (cons 4 (cons o (cons key #f)))))) '(#prog2of2 (#set 'val (evaluate (car (cdr (cdr o2))))) '(#prog2of2 (write-string outfile "// ") '(#prog2of2 (write-object outfile val) '(#prog2of2 (write-newline outfile) '(#prog2of2 (#ifelse (eq? 'bytefunc (object-type val)) '(#prog2of2 (#set 'val (#set 'val (#optimize val))) '(#prog2of2 (write-string outfile "// ") '(#prog2of2 (write-object outfile val) '(write-newline outfile)))) '#f) '(#prog2of2 (#let '#word-371653516 (object-type val) '(#ifelse (eq? #word-371653516 'nil) '(#prog2of2 (write-string outfile "\x09o=INCREF(&nilobj);") '(write-newline outfile)) '(#ifelse (eq? #word-371653516 'bytefunc) '(#let 'revobjs (#append/reversed #f (objects-of-bytefunc val)) '(#prog2of2 (compile-file-string outfile "s" (code-of-bytefunc val)) '(#prog2of2 (write-string outfile "\x09\x63=INCREF(&nilobj);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (#loop '(#ifelse revobjs '(#prog2of2 (#let 'arg (car revobjs) '(#let 'quoteddepth 0 '(#prog2of2 (#loop '(#ifelse (quoted? arg) '(#prog2of2 (#set 'quoteddepth (+ quoteddepth 1)) '(#set 'arg (unquote arg))) '(#exit-loop #f))) '(#prog2of2 (#let '#word-962033002 (object-type arg) '(#ifelse (eq? #word-962033002 'string) '(compile-file-string outfile "o" arg) '(#ifelse (eq? #word-962033002 'word) '(compile-file-word outfile "o" arg) '(throw 'compile-file (cons 'in (cons 5 (cons o (cons arg #f)))))))) '(#prog2of2 (#loop '(#ifelse (< 0 quoteddepth) '(#prog2of2 (write-string outfile "\x09o=quoteobj(o);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!o) return(1);") '(#prog2of2 (write-newline outfile) '(#set 'quoteddepth (- quoteddepth 1)))))) '(#exit-loop #f))) '(#prog2of2 (write-string outfile "\x09\x63=cons(o,c);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!c) return(1);") '(write-newline outfile))))))))) '(#set 'revobjs (cdr revobjs))) '(#exit-loop #f))) '(#prog2of2 (write-string outfile "\x09o=new_object(&bytefunc_objtype);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!o) return(1);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09o->value.bytefunc.code=s;") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09o->value.bytefunc.objs=c;") '(write-newline outfile))))))))))))) '(#ifelse (eq? #word-371653516 'cons) '(#prog2of2 (#ifelse (#and (word? (car val)) '(word? (cdr val))) '#f '(throw 'compile-file (cons 'in (cons 6 (cons o (cons val #f)))))) '(#prog2of2 (compile-file-word outfile "o" (car val)) '(#prog2of2 (compile-file-word outfile "c" (cdr val)) '(#prog2of2 (write-string outfile "\x09o=cons(o,c);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!o) return(1);") '(write-newline outfile))))))) '(throw 'compile-file (cons 'in (cons 7 (cons o (cons val #f))))))))) '(#prog2of2 (compile-file-word outfile "s" key) '(#prog2of2 (#let '#word-2004187516 (car o2) '(#ifelse (eq? #word-2004187516 '#define) '(#prog2of2 (write-string outfile "\x09o=define(s,o);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!o) return(1);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09\x44\x45\x43REF(o);") '(write-newline outfile)))))) '(#ifelse (eq? #word-2004187516 '#macro-define) '(#prog2of2 (write-string outfile "\x09\x63=cons(s,o);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!c) return(1);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (compile-file-word outfile "s" '#macro-expansions) '(#prog2of2 (write-string outfile "\x09INCREF(s);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09o=lookup(s);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!o) return(1);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09o=cons(c,o);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!o) return(1);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09o=set(s,o);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!o) return(1);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09\x44\x45\x43REF(o);") '(write-newline outfile))))))))))))))))))))) '(throw 'unknown-object-type-in-compile-file o)))) '(write-newline outfile)))))))))))))))))))))))))) '(#prog2of2 (close-file infile) '(close-file outfile)))))))))) '#f)))
+// (#define 'compile-file (byte-compile '(in out) '(#prog2of2 (#let 'infile (open-file in "r") '(#let 'outfile (open-file out "w") '(#let 'key #f '(#let 'o #f '(#let 'o2 #f '(#let 's #f '(#let 'val #f '(#prog2of2 (#loop '(#prog2of2 (#catch 'end-of-file '(#set 'o (read-object infile)) '(#exit-loop #f)) '(#prog2of2 (write-string outfile "// ") '(#prog2of2 (write-object outfile o) '(#prog2of2 (write-newline outfile) '(#prog2of2 (#ifelse (pair? o) '#f '(throw 'bad-object o)) '(#prog2of2 (#set 'o2 (macro-expand o)) '(#prog2of2 (write-string outfile "// ") '(#prog2of2 (write-object outfile o2) '(#prog2of2 (write-newline outfile) '(#prog2of2 (#ifelse (pair? o2) '#f '(throw 'compile-file (cons 'in (cons 1 (cons o #f))))) '(#prog2of2 (#ifelse (eq? (car o2) 'define-character-macro) '(#prog2of2 (compile-file-define-character-macro in outfile (car (cdr o2)) (car (cdr (cdr o2)))) '(#next-loop)) '#f) '(#prog2of2 (#ifelse (eq? (car o2) 'function-compiler) '(#prog2of2 (compile-file-function-compiler in outfile (car (cdr o2)) (car (cdr (cdr o2)))) '(#next-loop)) '#f) '(#prog2of2 (#ifelse (#or (eq? (car o2) '#define) '(eq? (car o2) '#macro-define)) '#f '(throw 'compile-file (cons 'in (cons 2 (cons o #f))))) '(#prog2of2 (#ifelse (quoted? (car (cdr o2))) '#f '(throw 'compile-file (cons 'in (cons 3 (cons o #f))))) '(#prog2of2 (#set 'key (unquote (car (cdr o2)))) '(#prog2of2 (#ifelse (word? key) '#f '(throw 'compile-file (cons 'in (cons 4 (cons o (cons key #f)))))) '(#prog2of2 (#set 'val (evaluate (car (cdr (cdr o2))))) '(#prog2of2 (write-string outfile "// ") '(#prog2of2 (write-object outfile val) '(#prog2of2 (write-newline outfile) '(#prog2of2 (#ifelse (eq? 'bytefunc (object-type val)) '(#prog2of2 (#set 'val (#set 'val (#optimize val))) '(#prog2of2 (write-string outfile "// ") '(#prog2of2 (write-object outfile val) '(write-newline outfile)))) '#f) '(#prog2of2 (#let '#word-628974580 (object-type val) '(#ifelse (eq? #word-628974580 'nil) '(#prog2of2 (write-string outfile "\x09o=INCREF(&nilobj);") '(write-newline outfile)) '(#ifelse (eq? #word-628974580 'bytefunc) '(#let 'revobjs (#append/reversed #f (objects-of-bytefunc val)) '(#prog2of2 (compile-file-string outfile "s" (code-of-bytefunc val)) '(#prog2of2 (write-string outfile "\x09\x63=INCREF(&nilobj);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (#loop '(#ifelse revobjs '(#prog2of2 (#let 'arg (car revobjs) '(#let 'quoteddepth 0 '(#prog2of2 (#loop '(#ifelse (quoted? arg) '(#prog2of2 (#set 'quoteddepth (+ quoteddepth 1)) '(#set 'arg (unquote arg))) '(#exit-loop #f))) '(#prog2of2 (#let '#word-1894519218 (object-type arg) '(#ifelse (eq? #word-1894519218 'string) '(compile-file-string outfile "o" arg) '(#ifelse (eq? #word-1894519218 'word) '(compile-file-word outfile "o" arg) '(throw 'compile-file (cons 'in (cons 5 (cons o (cons arg #f)))))))) '(#prog2of2 (#loop '(#ifelse (< 0 quoteddepth) '(#prog2of2 (write-string outfile "\x09o=quoteobj(o);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!o) return(1);") '(#prog2of2 (write-newline outfile) '(#set 'quoteddepth (- quoteddepth 1)))))) '(#exit-loop #f))) '(#prog2of2 (write-string outfile "\x09\x63=cons(o,c);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!c) return(1);") '(write-newline outfile))))))))) '(#set 'revobjs (cdr revobjs))) '(#exit-loop #f))) '(#prog2of2 (write-string outfile "\x09o=new_object(&bytefunc_objtype);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!o) return(1);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09o->value.bytefunc.code=s;") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09o->value.bytefunc.objs=c;") '(write-newline outfile))))))))))))) '(#ifelse (eq? #word-628974580 'cons) '(#prog2of2 (#ifelse (#and (word? (car val)) '(word? (cdr val))) '#f '(throw 'compile-file (cons 'in (cons 6 (cons o (cons val #f)))))) '(#prog2of2 (compile-file-word outfile "o" (car val)) '(#prog2of2 (compile-file-word outfile "c" (cdr val)) '(#prog2of2 (write-string outfile "\x09o=cons(o,c);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!o) return(1);") '(write-newline outfile))))))) '(throw 'compile-file (cons 'in (cons 7 (cons o (cons val #f))))))))) '(#prog2of2 (compile-file-word outfile "s" key) '(#prog2of2 (#let '#word-333582338 (car o2) '(#ifelse (eq? #word-333582338 '#define) '(#prog2of2 (write-string outfile "\x09o=define(s,o);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!o) return(1);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09\x44\x45\x43REF(o);") '(write-newline outfile)))))) '(#ifelse (eq? #word-333582338 '#macro-define) '(#prog2of2 (write-string outfile "\x09\x63=cons(s,o);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!c) return(1);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (compile-file-word outfile "s" '#macro-expansions) '(#prog2of2 (write-string outfile "\x09INCREF(s);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09o=lookup(s);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!o) return(1);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09o=cons(c,o);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!o) return(1);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09o=set(s,o);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09if(!o) return(1);") '(#prog2of2 (write-newline outfile) '(#prog2of2 (write-string outfile "\x09\x44\x45\x43REF(o);") '(write-newline outfile))))))))))))))))))))) '(throw 'unknown-object-type-in-compile-file o)))) '(write-newline outfile)))))))))))))))))))))))))) '(#prog2of2 (close-file infile) '(close-file outfile)))))))))) '#f)))
 // (#lambda "\x82#\x81IL\x81Ll\x82\x43\x81I\x82L\x81Ll\x82\x43\x30\x30\x30\x30\x30\x8D{\x86I\x83Ll\x81\x43I\x84P}\x8DG\x84L1=\x83T21:0\x89\x97GD\x85I\x85L\x86Ll\x82\x43\x44\x85I\x84I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x83Ip\x83\x46\x30\x85G\x83I\x89L:D\x83I\x8ALl\x81\x43I\x83PD\x85I\x8BL\x86Ll\x82\x43\x44\x85I\x83I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x82Ip\x83\x46\x30\x8DG\x8CL\x81i\x85I0ccc\x8DL:D\x82Ia\x8EL=\x98\x46\x88I\x86I\x84Ida\x85Idda\x8FLl\x84\x43\x44\xFE\xDEG\x81G0D\x82Ia\x90L=\x98\x46\x88I\x86I\x84Ida\x85Idda\x91Ll\x84\x43\x44\xFE\xBCG\x81G0D\x82Ia\x92L=I\x87TD\x82Ia\x93L=\x83\x46\x30\x8DG\x8CL\x82i\x85I0ccc\x8DL:D\x82Ida\x94Ll\x81\x43\x83\x46\x30\x8DG\x8CL\x83i\x85I0ccc\x8DL:D\x82Ida,I\x85PD\x84I\x95Ll\x81\x43\x83\x46\x30\x90G\x8CL\x84i\x85I\x87I0cccc\x8DL:D\x82Idda\x96Ll\x81\x43I\x81PD\x85I\x97L\x86Ll\x82\x43\x44\x85I\x81I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x98L\x81IO=\xAA\x46I\x99Ll\x81\x43I\x81PI\x81PD\x85I\x9AL\x86Ll\x82\x43\x44\x85I\x81I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x81G0DIOI\x9BL=\x94\x46\x86I\x9CL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x83\xDEGI\x98L=\x82\xD7\x46\x30\x82I\x9DLl\x81\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x87I\x9EL\x84I\x9FLl\x81\x43\xA0Ll\x83\x43\x44\x87I\xA1L\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44I\x81\xC6\x46Iai\x81I\x94Ll\x81\x43\x90\x46I\x81i+I\x81PD\x81I,I\x82P\x83G0\x83GD\xE1GD\x81IOI\xA2L=\x8D\x46\x8AI\xA3L\x84I\xA0Ll\x83\x43\xA3GI\xA4L=\x8D\x46\x8AI\xA5L\x84I\xA6Ll\x83\x43\x90G\x8CL\x85i\x8AI\x85I0cccc\x8DL:PDi\x81I\x81?\xAD\x46\x89I\xA7L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44\x89I\xA8L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44I\x81i-I\x81P\x83G0\x83GD\xC6GD\x89I\xA9L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44\x89I\xAAL\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43PPDIdI\x81P\x83G0\x84GD\xFE\xAFGD\x87I\xABL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xACL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xADL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xAEL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43P\x81\x80GI\xAFL=\x80\xE9\x46\x81Ia\x95Ll\x81\x43I\x89\x46\x44\x81Id\x95Ll\x81\x43\x83\x46\x30\x90G\x8CL\x86i\x86I\x84I0cccc\x8DL:D\x86I\xB0L\x83Ia\xA6Ll\x83\x43\x44\x86I\xB1L\x83Id\xA6Ll\x83\x43\x44\x86I\xB2L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB3L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x90G\x8CL\x87i\x86I\x84I0cccc\x8DL:PD\x85I\xB4L\x86I\xA6Ll\x83\x43\x44\x82IaI\x92L=\xB8\x46\x86I\xB5L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB6L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB7L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x81\xD2GI\x93L=\x81\xC5\x46\x86I\xB8L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB9L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBAL\xBBL\xA6Ll\x83\x43\x44\x86I\xBCL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBDL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBEL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBFL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC0L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC1L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC2L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC3L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x86G\x84I\x80\xC4L:PD\x85I\x88Ll\x81\x43\x44\xF6\xCDGD\x86I\x80\xC5Ll\x81\x43\x44\x85I\x80\xC5Ll\x81\x43PPPPPPPD0\x82R" '("r" open-file "w" read-object end-of-file "// " write-string write-object write-newline bad-object macro-expand "// " in compile-file define-character-macro compile-file-define-character-macro function-compiler compile-file-function-compiler #define #macro-define quoted? word? evaluate "// " bytefunc #optimize "// " nil "\x09o=INCREF(&nilobj);" objects-of-bytefunc "s" code-of-bytefunc compile-file-string "\x09\x63=INCREF(&nilobj);" string "o" word "o" compile-file-word "\x09o=quoteobj(o);" "\x09if(!o) return(1);" "\x09\x63=cons(o,c);" "\x09if(!c) return(1);" "\x09o=new_object(&bytefunc_objtype);" "\x09if(!o) return(1);" "\x09o->value.bytefunc.code=s;" "\x09o->value.bytefunc.objs=c;" cons "o" "c" "\x09o=cons(o,c);" "\x09if(!o) return(1);" "s" "\x09o=define(s,o);" "\x09if(!o) return(1);" "\x09\x44\x45\x43REF(o);" "\x09\x63=cons(s,o);" "\x09if(!c) return(1);" "s" #macro-expansions "\x09INCREF(s);" "\x09o=lookup(s);" "\x09if(!o) return(1);" "\x09o=cons(c,o);" "\x09if(!o) return(1);" "\x09o=set(s,o);" "\x09if(!o) return(1);" "\x09\x44\x45\x43REF(o);" unknown-object-type-in-compile-file close-file))
-// (#lambda "\x82#\x81IL\x81Ll\x82\x43\x81I\x82L\x81Ll\x82\x43\x30\x30\x30\x30\x30\x8E{\x86I\x83Ll\x81\x43I\x84P}D\x8CG\x84L1=\x83T21:\x88\xCAG\x85I\x85L\x86Ll\x82\x43\x44\x85I\x84I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x83Ip\x85T\x83I\x89L:\x83I\x8ALl\x81\x43\x82P\x85I\x8BL\x86Ll\x82\x43\x44\x85I\x83I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x82Ip\x8DT\x8CL\x81i\x85I0ccc\x8DL:\x82Ia\x8EL=\x96\x46\x88I\x86I\x84Ida\x85Idda\x8FLl\x84\x43\x44\xFE\xE9G\x82Ia\x90L=\x96\x46\x88I\x86I\x84Ida\x85Idda\x91Ll\x84\x43\x44\xFE\xCBG\x82Ia\x92L=I\x87TD\x82Ia\x93L=\x8DT\x8CL\x82i\x85I0ccc\x8DL:\x82Ida\x94Ll\x81\x43\x8DT\x8CL\x83i\x85I0ccc\x8DL:\x82Ida,\x84P\x84I\x95Ll\x81\x43\x90T\x8CL\x84i\x85I\x87I0cccc\x8DL:\x82Idda\x96Ll\x81\x43P\x85I\x97L\x86Ll\x82\x43\x44\x85I\x81I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x98L\x81IO=\xA6\x46I\x99Ll\x81\x43I\x81PP\x85I\x9AL\x86Ll\x82\x43\x44\x85I\x81I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44IOI\x9BL=\x94\x46\x86I\x9CL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x83\xBBGI\x98L=\x82\xB8\x46\x30\x82I\x9DLl\x81\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x87I\x9EL\x84I\x9FLl\x81\x43\xA0Ll\x83\x43\x44\x87I\xA1L\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44I\x81\xAF\x46Iai\x81I\x94Ll\x81\x43\x8C\x46I\x81i+P\x81I,\x81P\xEBG\x81IOI\xA2L=\x8D\x46\x8AI\xA3L\x84I\xA0Ll\x83\x43\xA3GI\xA4L=\x8D\x46\x8AI\xA5L\x84I\xA6Ll\x83\x43\x90G\x8CL\x85i\x8AI\x85I0cccc\x8DL:PDi\x81I\x81?\xAB\x46\x89I\xA7L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44\x89I\xA8L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44I\x81i-P\xCEG\x89I\xA9L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44\x89I\xAAL\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43PPDd\xFE\xCDG\x87I\xABL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xACL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xADL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xAEL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43P\x80\xFCGI\xAFL=\x80\xE5\x46\x81Ia\x95Ll\x81\x43I\x89\x46\x44\x81Id\x95Ll\x81\x43\x90T\x8CL\x86i\x86I\x84I0cccc\x8DL:\x86I\xB0L\x83Ia\xA6Ll\x83\x43\x44\x86I\xB1L\x83Id\xA6Ll\x83\x43\x44\x86I\xB2L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB3L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x90G\x8CL\x87i\x86I\x84I0cccc\x8DL:PD\x85I\xB4L\x86I\xA6Ll\x83\x43\x44\x82IaI\x92L=\xB8\x46\x86I\xB5L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB6L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB7L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x81\xD2GI\x93L=\x81\xC5\x46\x86I\xB8L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB9L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBAL\xBBL\xA6Ll\x83\x43\x44\x86I\xBCL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBDL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBEL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBFL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC0L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC1L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC2L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC3L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x86G\x84I\x80\xC4L:PD\x85I\x88Ll\x81\x43\x44\xF7\x9AG\x86I\x80\xC5Ll\x81\x43\x44\x85I\x80\xC5Ll\x81\x43PPPPPPPD0\x81PDR" '("r" open-file "w" read-object end-of-file "// " write-string write-object write-newline bad-object macro-expand "// " in compile-file define-character-macro compile-file-define-character-macro function-compiler compile-file-function-compiler #define #macro-define quoted? word? evaluate "// " bytefunc #optimize "// " nil "\x09o=INCREF(&nilobj);" objects-of-bytefunc "s" code-of-bytefunc compile-file-string "\x09\x63=INCREF(&nilobj);" string "o" word "o" compile-file-word "\x09o=quoteobj(o);" "\x09if(!o) return(1);" "\x09\x63=cons(o,c);" "\x09if(!c) return(1);" "\x09o=new_object(&bytefunc_objtype);" "\x09if(!o) return(1);" "\x09o->value.bytefunc.code=s;" "\x09o->value.bytefunc.objs=c;" cons "o" "c" "\x09o=cons(o,c);" "\x09if(!o) return(1);" "s" "\x09o=define(s,o);" "\x09if(!o) return(1);" "\x09\x44\x45\x43REF(o);" "\x09\x63=cons(s,o);" "\x09if(!c) return(1);" "s" #macro-expansions "\x09INCREF(s);" "\x09o=lookup(s);" "\x09if(!o) return(1);" "\x09o=cons(c,o);" "\x09if(!o) return(1);" "\x09o=set(s,o);" "\x09if(!o) return(1);" "\x09\x44\x45\x43REF(o);" unknown-object-type-in-compile-file close-file))
-	s=new_string("\x82#\x81IL\x81Ll\x82\x43\x81I\x82L\x81Ll\x82\x43\x30\x30\x30\x30\x30\x8E{\x86I\x83Ll\x81\x43I\x84P}D\x8CG\x84L1=\x83T21:\x88\xCAG\x85I\x85L\x86Ll\x82\x43\x44\x85I\x84I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x83Ip\x85T\x83I\x89L:\x83I\x8ALl\x81\x43\x82P\x85I\x8BL\x86Ll\x82\x43\x44\x85I\x83I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x82Ip\x8DT\x8CL\x81i\x85I0ccc\x8DL:\x82Ia\x8EL=\x96\x46\x88I\x86I\x84Ida\x85Idda\x8FLl\x84\x43\x44\xFE\xE9G\x82Ia\x90L=\x96\x46\x88I\x86I\x84Ida\x85Idda\x91Ll\x84\x43\x44\xFE\xCBG\x82Ia\x92L=I\x87TD\x82Ia\x93L=\x8DT\x8CL\x82i\x85I0ccc\x8DL:\x82Ida\x94Ll\x81\x43\x8DT\x8CL\x83i\x85I0ccc\x8DL:\x82Ida,\x84P\x84I\x95Ll\x81\x43\x90T\x8CL\x84i\x85I\x87I0cccc\x8DL:\x82Idda\x96Ll\x81\x43P\x85I\x97L\x86Ll\x82\x43\x44\x85I\x81I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x98L\x81IO=\xA6\x46I\x99Ll\x81\x43I\x81PP\x85I\x9AL\x86Ll\x82\x43\x44\x85I\x81I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44IOI\x9BL=\x94\x46\x86I\x9CL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x83\xBBGI\x98L=\x82\xB8\x46\x30\x82I\x9DLl\x81\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x87I\x9EL\x84I\x9FLl\x81\x43\xA0Ll\x83\x43\x44\x87I\xA1L\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44I\x81\xAF\x46Iai\x81I\x94Ll\x81\x43\x8C\x46I\x81i+P\x81I,\x81P\xEBG\x81IOI\xA2L=\x8D\x46\x8AI\xA3L\x84I\xA0Ll\x83\x43\xA3GI\xA4L=\x8D\x46\x8AI\xA5L\x84I\xA6Ll\x83\x43\x90G\x8CL\x85i\x8AI\x85I0cccc\x8DL:PDi\x81I\x81?\xAB\x46\x89I\xA7L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44\x89I\xA8L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44I\x81i-P\xCEG\x89I\xA9L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44\x89I\xAAL\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43PPDd\xFE\xCDG\x87I\xABL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xACL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xADL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xAEL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43P\x80\xFCGI\xAFL=\x80\xE5\x46\x81Ia\x95Ll\x81\x43I\x89\x46\x44\x81Id\x95Ll\x81\x43\x90T\x8CL\x86i\x86I\x84I0cccc\x8DL:\x86I\xB0L\x83Ia\xA6Ll\x83\x43\x44\x86I\xB1L\x83Id\xA6Ll\x83\x43\x44\x86I\xB2L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB3L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x90G\x8CL\x87i\x86I\x84I0cccc\x8DL:PD\x85I\xB4L\x86I\xA6Ll\x83\x43\x44\x82IaI\x92L=\xB8\x46\x86I\xB5L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB6L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB7L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x81\xD2GI\x93L=\x81\xC5\x46\x86I\xB8L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB9L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBAL\xBBL\xA6Ll\x83\x43\x44\x86I\xBCL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBDL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBEL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBFL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC0L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC1L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC2L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC3L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x86G\x84I\x80\xC4L:PD\x85I\x88Ll\x81\x43\x44\xF7\x9AG\x86I\x80\xC5Ll\x81\x43\x44\x85I\x80\xC5Ll\x81\x43PPPPPPPD0\x81PDR",1180);
+// (#lambda "\x82#\x81IL\x81Ll\x82\x43\x81I\x82L\x81Ll\x82\x43\x30\x30\x30\x30\x30\x8E{\x86I\x83Ll\x81\x43I\x84P}D\x8CG\x84L1=\x83T21:\x88\xC6G\x85I\x85L\x86Ll\x82\x43\x44\x85I\x84I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x83Ip\x85T\x83I\x89L:\x83I\x8ALl\x81\x43\x82P\x85I\x8BL\x86Ll\x82\x43\x44\x85I\x83I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x82Ip\x8DT\x8CL\x81i\x85I0ccc\x8DL:\x82Ia\x8EL=\x96\x46\x88I\x86I\x84Ida\x85Idda\x8FLl\x84\x43\x44\xFE\xE9G\x82Ia\x90L=\x96\x46\x88I\x86I\x84Ida\x85Idda\x91Ll\x84\x43\x44\xFE\xCBG\x82Ia\x92L=I\x87TD\x82Ia\x93L=\x8DT\x8CL\x82i\x85I0ccc\x8DL:\x82Ida\x94Ll\x81\x43\x8DT\x8CL\x83i\x85I0ccc\x8DL:\x82Ida,\x84P\x84I\x95Ll\x81\x43\x90T\x8CL\x84i\x85I\x87I0cccc\x8DL:\x82Idda\x96Ll\x81\x43P\x85I\x97L\x86Ll\x82\x43\x44\x85I\x81I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x98L\x81IO=\xA6\x46I\x99Ll\x81\x43I\x81PP\x85I\x9AL\x86Ll\x82\x43\x44\x85I\x81I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44IOI\x9BL=\x94\x46\x86I\x9CL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x83\xB7GI\x98L=\x82\xB4\x46\x30\x82I\x9DLl\x81\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x87I\x9EL\x84I\x9FLl\x81\x43\xA0Ll\x83\x43\x44\x87I\xA1L\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44I\x81\xAB\x46Iai\x81I\x94Ll\x81\x43\x8A\x46\x81i+\x81I,\x81P\xEDG\x81IOI\xA2L=\x8D\x46\x8AI\xA3L\x84I\xA0Ll\x83\x43\xA3GI\xA4L=\x8D\x46\x8AI\xA5L\x84I\xA6Ll\x83\x43\x90G\x8CL\x85i\x8AI\x85I0cccc\x8DL:PDi\x81I\x81?\xA9\x46\x89I\xA7L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44\x89I\xA8L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44\x81i-\xD0G\x89I\xA9L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44\x89I\xAAL\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43PPDd\xFE\xD1G\x87I\xABL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xACL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xADL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xAEL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43P\x80\xFCGI\xAFL=\x80\xE5\x46\x81Ia\x95Ll\x81\x43I\x89\x46\x44\x81Id\x95Ll\x81\x43\x90T\x8CL\x86i\x86I\x84I0cccc\x8DL:\x86I\xB0L\x83Ia\xA6Ll\x83\x43\x44\x86I\xB1L\x83Id\xA6Ll\x83\x43\x44\x86I\xB2L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB3L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x90G\x8CL\x87i\x86I\x84I0cccc\x8DL:PD\x85I\xB4L\x86I\xA6Ll\x83\x43\x44\x82IaI\x92L=\xB8\x46\x86I\xB5L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB6L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB7L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x81\xD2GI\x93L=\x81\xC5\x46\x86I\xB8L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB9L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBAL\xBBL\xA6Ll\x83\x43\x44\x86I\xBCL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBDL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBEL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBFL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC0L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC1L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC2L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC3L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x86G\x84I\x80\xC4L:PD\x85I\x88Ll\x81\x43\x44\xF7\x9EG\x86I\x80\xC5Ll\x81\x43\x44\x85I\x80\xC5Ll\x81\x43PPPPPPPD0\x81PDR" '("r" open-file "w" read-object end-of-file "// " write-string write-object write-newline bad-object macro-expand "// " in compile-file define-character-macro compile-file-define-character-macro function-compiler compile-file-function-compiler #define #macro-define quoted? word? evaluate "// " bytefunc #optimize "// " nil "\x09o=INCREF(&nilobj);" objects-of-bytefunc "s" code-of-bytefunc compile-file-string "\x09\x63=INCREF(&nilobj);" string "o" word "o" compile-file-word "\x09o=quoteobj(o);" "\x09if(!o) return(1);" "\x09\x63=cons(o,c);" "\x09if(!c) return(1);" "\x09o=new_object(&bytefunc_objtype);" "\x09if(!o) return(1);" "\x09o->value.bytefunc.code=s;" "\x09o->value.bytefunc.objs=c;" cons "o" "c" "\x09o=cons(o,c);" "\x09if(!o) return(1);" "s" "\x09o=define(s,o);" "\x09if(!o) return(1);" "\x09\x44\x45\x43REF(o);" "\x09\x63=cons(s,o);" "\x09if(!c) return(1);" "s" #macro-expansions "\x09INCREF(s);" "\x09o=lookup(s);" "\x09if(!o) return(1);" "\x09o=cons(c,o);" "\x09if(!o) return(1);" "\x09o=set(s,o);" "\x09if(!o) return(1);" "\x09\x44\x45\x43REF(o);" unknown-object-type-in-compile-file close-file))
+	s=new_string("\x82#\x81IL\x81Ll\x82\x43\x81I\x82L\x81Ll\x82\x43\x30\x30\x30\x30\x30\x8E{\x86I\x83Ll\x81\x43I\x84P}D\x8CG\x84L1=\x83T21:\x88\xC6G\x85I\x85L\x86Ll\x82\x43\x44\x85I\x84I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x83Ip\x85T\x83I\x89L:\x83I\x8ALl\x81\x43\x82P\x85I\x8BL\x86Ll\x82\x43\x44\x85I\x83I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x82Ip\x8DT\x8CL\x81i\x85I0ccc\x8DL:\x82Ia\x8EL=\x96\x46\x88I\x86I\x84Ida\x85Idda\x8FLl\x84\x43\x44\xFE\xE9G\x82Ia\x90L=\x96\x46\x88I\x86I\x84Ida\x85Idda\x91Ll\x84\x43\x44\xFE\xCBG\x82Ia\x92L=I\x87TD\x82Ia\x93L=\x8DT\x8CL\x82i\x85I0ccc\x8DL:\x82Ida\x94Ll\x81\x43\x8DT\x8CL\x83i\x85I0ccc\x8DL:\x82Ida,\x84P\x84I\x95Ll\x81\x43\x90T\x8CL\x84i\x85I\x87I0cccc\x8DL:\x82Idda\x96Ll\x81\x43P\x85I\x97L\x86Ll\x82\x43\x44\x85I\x81I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44\x98L\x81IO=\xA6\x46I\x99Ll\x81\x43I\x81PP\x85I\x9AL\x86Ll\x82\x43\x44\x85I\x81I\x87Ll\x82\x43\x44\x85I\x88Ll\x81\x43\x44IOI\x9BL=\x94\x46\x86I\x9CL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x83\xB7GI\x98L=\x82\xB4\x46\x30\x82I\x9DLl\x81\x43I\x8B\x46Ia\x82Ic\x81PdI\xF5TD\x87I\x9EL\x84I\x9FLl\x81\x43\xA0Ll\x83\x43\x44\x87I\xA1L\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44I\x81\xAB\x46Iai\x81I\x94Ll\x81\x43\x8A\x46\x81i+\x81I,\x81P\xEDG\x81IOI\xA2L=\x8D\x46\x8AI\xA3L\x84I\xA0Ll\x83\x43\xA3GI\xA4L=\x8D\x46\x8AI\xA5L\x84I\xA6Ll\x83\x43\x90G\x8CL\x85i\x8AI\x85I0cccc\x8DL:PDi\x81I\x81?\xA9\x46\x89I\xA7L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44\x89I\xA8L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44\x81i-\xD0G\x89I\xA9L\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43\x44\x89I\xAAL\x86Ll\x82\x43\x44\x89I\x88Ll\x81\x43PPDd\xFE\xD1G\x87I\xABL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xACL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xADL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43\x44\x87I\xAEL\x86Ll\x82\x43\x44\x87I\x88Ll\x81\x43P\x80\xFCGI\xAFL=\x80\xE5\x46\x81Ia\x95Ll\x81\x43I\x89\x46\x44\x81Id\x95Ll\x81\x43\x90T\x8CL\x86i\x86I\x84I0cccc\x8DL:\x86I\xB0L\x83Ia\xA6Ll\x83\x43\x44\x86I\xB1L\x83Id\xA6Ll\x83\x43\x44\x86I\xB2L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB3L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x90G\x8CL\x87i\x86I\x84I0cccc\x8DL:PD\x85I\xB4L\x86I\xA6Ll\x83\x43\x44\x82IaI\x92L=\xB8\x46\x86I\xB5L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB6L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB7L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x81\xD2GI\x93L=\x81\xC5\x46\x86I\xB8L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xB9L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBAL\xBBL\xA6Ll\x83\x43\x44\x86I\xBCL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBDL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBEL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\xBFL\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC0L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC1L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC2L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x44\x86I\x80\xC3L\x86Ll\x82\x43\x44\x86I\x88Ll\x81\x43\x86G\x84I\x80\xC4L:PD\x85I\x88Ll\x81\x43\x44\xF7\x9EG\x86I\x80\xC5Ll\x81\x43\x44\x85I\x80\xC5Ll\x81\x43PPPPPPPD0\x81PDR",1176);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_word("close-file",10);
--- old/obj/functions.c	2010-08-12 15:23:42.000000000 -0700
+++ new/obj/functions.c	2017-05-25 12:44:20.941407146 -0700
@@ -380,6 +380,23 @@
 	if(!o) return(1);
 	DECREF(o);
 
+// (define (hexchar? c) (ifelse (and (<= 48 c) (<= c 57)) (- c 48) (ifelse (and (<= 65 c) (<= c 70)) (- c 55) (ifelse (and (<= 97 c) (<= c 102)) (- c 87) #f))))
+// (#define 'hexchar? (byte-compile '(c) '(#ifelse (#and (<= 48 c) '(<= c 57)) '(- c 48) '(#ifelse (#and (<= 65 c) '(<= c 70)) '(- c 55) '(#ifelse (#and (<= 97 c) '(<= c 102)) '(- c 87) '#f)))))
+// (#lambda "\x81#\xB0i\x81I\x83?I\x86\x46\x44I\xB9i\x83?\x86\x46I\xB0i-\xB4G\x80\xC1i\x81I\x83?I\x87\x46\x44I\x80\xC6i\x83?\x86\x46I\xB7i-\x9BG\x80\xE1i\x81I\x83?I\x87\x46\x44I\x80\xE6i\x83?\x87\x46I\x80\xD7i-\x81G0\x81R" '#f)
+// (#lambda "\x81#\xB0i\x81I\x83?I\x86\x46\x44I\xB9i\x83?\x84\x46\xB0i-R\x80\xC1i\x81I\x83?I\x87\x46\x44I\x80\xC6i\x83?\x84\x46\xB7i-R\x80\xE1i\x81I\x83?I\x87\x46\x44I\x80\xE6i\x83?\x85\x46\x80\xD7i-RD0R" '#f)
+	s=new_string("\x81#\xB0i\x81I\x83?I\x86\x46\x44I\xB9i\x83?\x84\x46\xB0i-R\x80\xC1i\x81I\x83?I\x87\x46\x44I\x80\xC6i\x83?\x84\x46\xB7i-R\x80\xE1i\x81I\x83?I\x87\x46\x44I\x80\xE6i\x83?\x85\x46\x80\xD7i-RD0R",73);
+	if(!s) return(1);
+	c=INCREF(&nilobj);
+	o=new_object(&bytefunc_objtype);
+	if(!o) return(1);
+	o->value.bytefunc.code=s;
+	o->value.bytefunc.objs=c;
+	s=new_word("hexchar?",8);
+	if(!s) return(1);
+	o=define(s,o);
+	if(!o) return(1);
+	DECREF(o);
+
 // (define (skip-whitespace stream) (loop (let ((c (peek-char stream))) (if (= 59 c) (while (and (<> c 10) (<> c 13)) (set c (read-char stream))) (next-loop)) (unless (is-space c) (exit-loop c)) (read-char stream))))
 // (#define 'skip-whitespace (byte-compile '(stream) '(#loop '(#let 'c (peek-char stream) '(#prog2of2 (#ifelse (= 59 c) '(#prog2of2 (#loop '(#ifelse (#and (<> c 10) '(<> c 13)) '(#set 'c (read-char stream)) '(#exit-loop #f))) '(#next-loop)) '#f) '(#prog2of2 (#ifelse (is-space c) '#f '(#exit-loop c)) '(read-char stream)))))))
 // (#lambda "\x81#ILl\x81\x43\xBBi\x81I\x82?\xA8\x46I\x8Ai\x85?I\x86\x46\x44I\x8Di\x85?\x8C\x46\x81I\x81Ll\x81\x43I\x81P\x83G0\x83GD\xDEGDD\xCDG\x81G0DI\x82Ll\x81\x43\x83\x46\x30\x84GIP\x8DGD\x81I\x81Ll\x81\x43PD\xFF\xADG\x81R" '(peek-char read-char is-space))
@@ -810,11 +827,81 @@
 	o=set(s,o);
 	if(!o) return(1);
 	DECREF(o);
-// (define (macro-doublequote stream) (let ((c 0) (i 0) (string (new-string 512))) (loop (if (= i (string-length string)) (set string (expand-string string))) (set c (catch 'end-of-file (read-char stream) (throw 'reader-error stream))) (if (= c 34) (exit-loop)) (if (= c 92) (set c (catch 'end-of-file (read-char stream) (throw 'reader-error stream)))) (put-char string i c) (set i (+ i 1))) (substring string 0 i)))
-// (#define 'macro-doublequote (byte-compile '(stream) '(#let 'c 0 '(#let 'i 0 '(#let 'string (new-string 512) '(#prog2of2 (#loop '(#prog2of2 (#ifelse (= i (string-length string)) '(#set 'string (expand-string string)) '#f) '(#prog2of2 (#set 'c (#catch 'end-of-file '(read-char stream) '(throw 'reader-error stream))) '(#prog2of2 (#ifelse (= c 34) '(#exit-loop #f) '#f) '(#prog2of2 (#ifelse (= c 92) '(#set 'c (#catch 'end-of-file '(read-char stream) '(throw 'reader-error stream))) '#f) '(#prog2of2 (put-char string i c) '(#set 'i (+ i 1)))))))) '(substring string 0 i)))))))
-// (#lambda "\x81#ii\x84\x80iLl\x81\x43\x81I\x81I\x81Ll\x81\x43\x82?\x8B\x46I\x82Ll\x81\x43I\x81P\x81G0D\x8A{\x83I\x83Ll\x81\x43}\x8EG\x84L1=\x83T21:\x83I\x85L:I\x83PD\x82I\xA2i\x82?\x86\x46\x30\x80\xC5G\x81G0D\x82I\x80\xDCi\x82?\x9F\x46\x8A{\x83I\x83Ll\x81\x43}\x8EG\x84L1=\x83T21:\x83I\x85L:I\x83P\x81G0DI\x82I\x84I\x86Ll\x83\x43\x44\x81I\x81i+I\x82PD\xFE\xF7GDIi\x83I\x87Ll\x83\x43PPP\x81R" '(new-string string-length expand-string read-char end-of-file reader-error put-char substring))
-// (#lambda "\x81#ii\x84\x80iLl\x81\x43\x81I\x81I\x81Ll\x81\x43\x82?\x87\x46I\x82Ll\x81\x43P\x8A{\x83I\x83Ll\x81\x43}\x8EG\x84L1=\x83T21:\x83I\x85L:\x82P\x82I\xA2i\x82?\xBAT\x82I\x80\xDCi\x82?\x9C\x46\x8A{\x83I\x83Ll\x81\x43}\x8EG\x84L1=\x83T21:\x83I\x85L:\x82PI\x82I\x84I\x86Ll\x83\x43\x44\x81I\x81i+\x81P\xFF\x8EGIi\x83I\x87Ll\x83\x43PPPPR" '(new-string string-length expand-string read-char end-of-file reader-error put-char substring))
-	s=new_string("\x81#ii\x84\x80iLl\x81\x43\x81I\x81I\x81Ll\x81\x43\x82?\x87\x46I\x82Ll\x81\x43P\x8A{\x83I\x83Ll\x81\x43}\x8EG\x84L1=\x83T21:\x83I\x85L:\x82P\x82I\xA2i\x82?\xBAT\x82I\x80\xDCi\x82?\x9C\x46\x8A{\x83I\x83Ll\x81\x43}\x8EG\x84L1=\x83T21:\x83I\x85L:\x82PI\x82I\x84I\x86Ll\x83\x43\x44\x81I\x81i+\x81P\xFF\x8EGIi\x83I\x87Ll\x83\x43PPPPR",139);
+// (define (subsubmacro-doublequote-backslash-x stream) (let ((c (hexchar? (catch 'end-of-file (peek-char stream) (throw 'reader-error stream))))) (unless c (throw 'reader-error stream)) (read-char stream) (catch 'end-of-file (let ((c2 (hexchar? (peek-char stream)))) (if c2 (read-char stream) (set c (+ (* c 16) c2)))) #f) c))
+// (#define 'subsubmacro-doublequote-backslash-x (byte-compile '(stream) '(#let 'c (hexchar? (#catch 'end-of-file '(peek-char stream) '(throw 'reader-error stream))) '(#prog2of2 (#ifelse c '#f '(throw 'reader-error stream)) '(#prog2of2 (read-char stream) '(#prog2of2 (#catch 'end-of-file '(#let 'c2 (hexchar? (peek-char stream)) '(#ifelse c2 '(#prog2of2 (read-char stream) '(#set 'c (+ (* c 16) c2))) '#f)) '#f) 'c))))))
+// (#lambda "\x81#\x88{ILl\x81\x43}\x8DG\x81L1=\x83T21:I\x82L:\x83Ll\x81\x43I\x83\x46\x30\x85G\x81I\x82L:D\x81I\x84Ll\x81\x43\x44\xA8{\x81ILl\x81\x43\x83Ll\x81\x43I\x95\x46\x82I\x84Ll\x81\x43\x44\x81I\x90i*\x81I+I\x82P\x81G0P}\x8AG\x81L1=\x83T21:0DIP\x81R" '(peek-char end-of-file reader-error hexchar? read-char))
+// (#lambda "\x81#\x88{ILl\x81\x43}\x8DG\x81L1=\x83T21:I\x82L:\x83Ll\x81\x43I\x85T\x81I\x82L:\x81I\x84Ll\x81\x43\x44\xA9{\x81ILl\x81\x43\x83Ll\x81\x43I\x95\x46\x82I\x84Ll\x81\x43\x44\x81I\x90i*\x81I+I\x82P\x81G0P}DPR\x81L1=\x83T21:PR" '(peek-char end-of-file reader-error hexchar? read-char))
+	s=new_string("\x81#\x88{ILl\x81\x43}\x8DG\x81L1=\x83T21:I\x82L:\x83Ll\x81\x43I\x85T\x81I\x82L:\x81I\x84Ll\x81\x43\x44\xA9{\x81ILl\x81\x43\x83Ll\x81\x43I\x95\x46\x82I\x84Ll\x81\x43\x44\x81I\x90i*\x81I+I\x82P\x81G0P}DPR\x81L1=\x83T21:PR",100);
+	if(!s) return(1);
+	c=INCREF(&nilobj);
+	o=new_word("read-char",9);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
+	o=new_word("hexchar?",8);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
+	o=new_word("reader-error",12);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
+	o=new_word("end-of-file",11);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
+	o=new_word("peek-char",9);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
+	o=new_object(&bytefunc_objtype);
+	if(!o) return(1);
+	o->value.bytefunc.code=s;
+	o->value.bytefunc.objs=c;
+	s=new_word("subsubmacro-doublequote-backslash-x",35);
+	if(!s) return(1);
+	o=define(s,o);
+	if(!o) return(1);
+	DECREF(o);
+
+// (define (submacro-doublequote-backslash stream) (let ((c (catch 'end-of-file (read-char stream) (throw 'reader-error stream)))) (ifelse (= 120 c) (subsubmacro-doublequote-backslash-x stream) c)))
+// (#define 'submacro-doublequote-backslash (byte-compile '(stream) '(#let 'c (#catch 'end-of-file '(read-char stream) '(throw 'reader-error stream)) '(#ifelse (= 120 c) '(subsubmacro-doublequote-backslash-x stream) 'c))))
+// (#lambda "\x81#\x88{ILl\x81\x43}\x8DG\x81L1=\x83T21:I\x82L:\x80\xF8i\x81I\x82?\x89\x46\x81I\x83Ll\x81\x43\x81GIP\x81R" '(read-char end-of-file reader-error subsubmacro-doublequote-backslash-x))
+// (#lambda "\x81#\x88{ILl\x81\x43}\x8DG\x81L1=\x83T21:I\x82L:\x80\xF8i\x81I\x82?\x89\x46\x81I\x83Ll\x81\x43\x81GIPPR" '(read-char end-of-file reader-error subsubmacro-doublequote-backslash-x))
+	s=new_string("\x81#\x88{ILl\x81\x43}\x8DG\x81L1=\x83T21:I\x82L:\x80\xF8i\x81I\x82?\x89\x46\x81I\x83Ll\x81\x43\x81GIPPR",47);
+	if(!s) return(1);
+	c=INCREF(&nilobj);
+	o=new_word("subsubmacro-doublequote-backslash-x",35);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
+	o=new_word("reader-error",12);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
+	o=new_word("end-of-file",11);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
+	o=new_word("read-char",9);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
+	o=new_object(&bytefunc_objtype);
+	if(!o) return(1);
+	o->value.bytefunc.code=s;
+	o->value.bytefunc.objs=c;
+	s=new_word("submacro-doublequote-backslash",30);
+	if(!s) return(1);
+	o=define(s,o);
+	if(!o) return(1);
+	DECREF(o);
+
+// (define (macro-doublequote stream) (let ((c #f) (i 0) (string (new-string 512))) (loop (if (= i (string-length string)) (set string (expand-string string))) (set c (catch 'end-of-file (read-char stream) (throw 'reader-error stream))) (if (= c 34) (exit-loop)) (if (= c 92) (set c (submacro-doublequote-backslash stream))) (put-char string i c) (set i (+ i 1))) (substring string 0 i)))
+// (#define 'macro-doublequote (byte-compile '(stream) '(#let 'c #f '(#let 'i 0 '(#let 'string (new-string 512) '(#prog2of2 (#loop '(#prog2of2 (#ifelse (= i (string-length string)) '(#set 'string (expand-string string)) '#f) '(#prog2of2 (#set 'c (#catch 'end-of-file '(read-char stream) '(throw 'reader-error stream))) '(#prog2of2 (#ifelse (= c 34) '(#exit-loop #f) '#f) '(#prog2of2 (#ifelse (= c 92) '(#set 'c (submacro-doublequote-backslash stream)) '#f) '(#prog2of2 (put-char string i c) '(#set 'i (+ i 1)))))))) '(substring string 0 i)))))))
+// (#lambda "\x81#0i\x84\x80iLl\x81\x43\x81I\x81I\x81Ll\x81\x43\x82?\x8B\x46I\x82Ll\x81\x43I\x81P\x81G0D\x8A{\x83I\x83Ll\x81\x43}\x8EG\x84L1=\x83T21:\x83I\x85L:I\x83PD\x82I\xA2i\x82?\x85\x46\x30\xB2G\x81G0D\x82I\x80\xDCi\x82?\x8C\x46\x83I\x86Ll\x81\x43I\x83P\x81G0DI\x82I\x84I\x87Ll\x83\x43\x44\x81I\x81i+I\x82PD\xFF\x8BGDIi\x83I\x88Ll\x83\x43PPP\x81R" '(new-string string-length expand-string read-char end-of-file reader-error submacro-doublequote-backslash put-char substring))
+// (#lambda "\x81#0i\x84\x80iLl\x81\x43\x81I\x81I\x81Ll\x81\x43\x82?\x87\x46I\x82Ll\x81\x43P\x8A{\x83I\x83Ll\x81\x43}\x8EG\x84L1=\x83T21:\x83I\x85L:\x82P\x82I\xA2i\x82?\xA7T\x82I\x80\xDCi\x82?\x89\x46\x83I\x86Ll\x81\x43\x82PI\x82I\x84I\x87Ll\x83\x43\x44\x81I\x81i+\x81P\xFF\xA1GIi\x83I\x88Ll\x83\x43PPPPR" '(new-string string-length expand-string read-char end-of-file reader-error submacro-doublequote-backslash put-char substring))
+	s=new_string("\x81#0i\x84\x80iLl\x81\x43\x81I\x81I\x81Ll\x81\x43\x82?\x87\x46I\x82Ll\x81\x43P\x8A{\x83I\x83Ll\x81\x43}\x8EG\x84L1=\x83T21:\x83I\x85L:\x82P\x82I\xA2i\x82?\xA7T\x82I\x80\xDCi\x82?\x89\x46\x83I\x86Ll\x81\x43\x82PI\x82I\x84I\x87Ll\x83\x43\x44\x81I\x81i+\x81P\xFF\xA1GIi\x83I\x88Ll\x83\x43PPPPR",120);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_word("substring",9);
@@ -825,6 +912,10 @@
 	if(!o) return(1);
 	c=cons(o,c);
 	if(!c) return(1);
+	o=new_word("submacro-doublequote-backslash",30);
+	if(!o) return(1);
+	c=cons(o,c);
+	if(!c) return(1);
 	o=new_word("reader-error",12);
 	if(!o) return(1);
 	c=cons(o,c);
@@ -883,8 +974,8 @@
 // (define (read-token stream c) (let ((buffer (new-string 512)) (i 0)) (loop (if (= i (string-length buffer)) (set buffer (expand-string buffer))) (put-char buffer i c) (set i (+ i 1)) (catch 'end-of-file (set c (peek-char stream)) (exit-loop)) (if (is-space c) (exit-loop)) (unless (is-ascii c) (exit-loop)) (if (get-using-= #character-macros c) (exit-loop)) (set c (read-char stream))) (set buffer (substring buffer 0 i)) (ifelse (string-eqv? buffer "#f") #f (catch 'type-error (string->integer buffer) (string->symbol buffer)))))
 // (#define 'read-token (byte-compile '(stream c) '(#let 'buffer (new-string 512) '(#let 'i 0 '(#prog2of2 (#loop '(#prog2of2 (#ifelse (= i (string-length buffer)) '(#set 'buffer (expand-string buffer)) '#f) '(#prog2of2 (put-char buffer i c) '(#prog2of2 (#set 'i (+ i 1)) '(#prog2of2 (#catch 'end-of-file '(#set 'c (peek-char stream)) '(#exit-loop #f)) '(#prog2of2 (#ifelse (is-space c) '(#exit-loop #f) '#f) '(#prog2of2 (#ifelse (is-ascii c) '#f '(#exit-loop #f)) '(#prog2of2 (#ifelse (get-using-= #character-macros c) '(#exit-loop #f) '#f) '(#set 'c (read-char stream)))))))))) '(#prog2of2 (#set 'buffer (substring buffer 0 i)) '(#ifelse (string-eqv? buffer "#f") '#f '(#catch 'type-error '(string->integer buffer) '(string->symbol buffer)))))))))
 // (#lambda "\x82#\x84\x80iLl\x81\x43iI\x82I\x81Ll\x81\x43\x82?\x8C\x46\x81I\x82Ll\x81\x43I\x82P\x81G0D\x81I\x81I\x84I\x83Ll\x83\x43\x44I\x81i+I\x81PD\x8D{\x83I\x84Ll\x81\x43I\x83P}\x8DG\x85L1=\x83T21:0\x80\xC2GD\x82I\x86Ll\x81\x43\x85\x46\x30\xB5G\x81G0D\x82I\x87Ll\x81\x43\x83\x46\x30\x83G0\xA2GD\x88Ll\x83I\x89Ll\x82\x43\x85\x46\x30\x92G\x81G0D\x83I\x8ALl\x81\x43I\x83PD\xFE\xF4GD\x81Ii\x82I\x8BLl\x83\x43I\x82PD\x81I\x8CL\x8DLl\x82\x43\x83\x46\x30\x9CG\x8A{\x81I\x8ELl\x81\x43}\x90G\x8FL1=\x83T21:\x81I\x90Ll\x81\x43PP\x82R" '(new-string string-length expand-string put-char peek-char end-of-file is-space is-ascii #character-macros get-using-= read-char substring "#f" string-eqv? string->integer type-error string->symbol))
-// (#lambda "\x82#\x84\x80iLl\x81\x43iI\x82I\x81Ll\x81\x43\x82?\x89\x46\x81I\x82Ll\x81\x43\x81P\x81I\x81I\x84I\x83Ll\x83\x43\x44I\x81i+P\x8E{\x83I\x84Ll\x81\x43I\x83P}D\x8BG\x85L1=\x83T21:\xAAG\x82I\x86Ll\x81\x43\xA1T\x82I\x87Ll\x81\x43\x98\x46\x88Ll\x83I\x89Ll\x82\x43\x8CT\x83I\x8ALl\x81\x43\x82P\xFF\x95G\x81Ii\x82I\x8BLl\x83\x43\x81P\x81I\x8CL\x8DLl\x82\x43\x83\x46\x30\x9CG\x8A{\x81I\x8ELl\x81\x43}\x90G\x8FL1=\x83T21:\x81I\x90Ll\x81\x43PP\x81PDR" '(new-string string-length expand-string put-char peek-char end-of-file is-space is-ascii #character-macros get-using-= read-char substring "#f" string-eqv? string->integer type-error string->symbol))
-	s=new_string("\x82#\x84\x80iLl\x81\x43iI\x82I\x81Ll\x81\x43\x82?\x89\x46\x81I\x82Ll\x81\x43\x81P\x81I\x81I\x84I\x83Ll\x83\x43\x44I\x81i+P\x8E{\x83I\x84Ll\x81\x43I\x83P}D\x8BG\x85L1=\x83T21:\xAAG\x82I\x86Ll\x81\x43\xA1T\x82I\x87Ll\x81\x43\x98\x46\x88Ll\x83I\x89Ll\x82\x43\x8CT\x83I\x8ALl\x81\x43\x82P\xFF\x95G\x81Ii\x82I\x8BLl\x83\x43\x81P\x81I\x8CL\x8DLl\x82\x43\x83\x46\x30\x9CG\x8A{\x81I\x8ELl\x81\x43}\x90G\x8FL1=\x83T21:\x81I\x90Ll\x81\x43PP\x81PDR",177);
+// (#lambda "\x82#\x84\x80iLl\x81\x43iI\x82I\x81Ll\x81\x43\x82?\x89\x46\x81I\x82Ll\x81\x43\x81P\x81I\x81I\x84I\x83Ll\x83\x43\x44\x81i+\x8E{\x83I\x84Ll\x81\x43I\x83P}D\x8BG\x85L1=\x83T21:\xAAG\x82I\x86Ll\x81\x43\xA1T\x82I\x87Ll\x81\x43\x98\x46\x88Ll\x83I\x89Ll\x82\x43\x8CT\x83I\x8ALl\x81\x43\x82P\xFF\x97G\x81Ii\x82I\x8BLl\x83\x43\x81P\x81I\x8CL\x8DLl\x82\x43\x83\x46\x30\x9CG\x8A{\x81I\x8ELl\x81\x43}\x90G\x8FL1=\x83T21:\x81I\x90Ll\x81\x43PP\x81PDR" '(new-string string-length expand-string put-char peek-char end-of-file is-space is-ascii #character-macros get-using-= read-char substring "#f" string-eqv? string->integer type-error string->symbol))
+	s=new_string("\x82#\x84\x80iLl\x81\x43iI\x82I\x81Ll\x81\x43\x82?\x89\x46\x81I\x82Ll\x81\x43\x81P\x81I\x81I\x84I\x83Ll\x83\x43\x44\x81i+\x8E{\x83I\x84Ll\x81\x43I\x83P}D\x8BG\x85L1=\x83T21:\xAAG\x82I\x86Ll\x81\x43\xA1T\x82I\x87Ll\x81\x43\x98\x46\x88Ll\x83I\x89Ll\x82\x43\x8CT\x83I\x8ALl\x81\x43\x82P\xFF\x97G\x81Ii\x82I\x8BLl\x83\x43\x81P\x81I\x8CL\x8DLl\x82\x43\x83\x46\x30\x9CG\x8A{\x81I\x8ELl\x81\x43}\x90G\x8FL1=\x83T21:\x81I\x90Ll\x81\x43PP\x81PDR",175);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_word("string->symbol",14);
@@ -1109,8 +1200,8 @@
 // (define (string-eqv? a b) (let ((c (string-length a))) (ifelse (= c (string-length b)) (loop (if (= c 0) (exit-loop #t)) (set c (- c 1)) (if (<> (get-char a c) (get-char b c)) (exit-loop #f))) #f)))
 // (#define 'string-eqv? (byte-compile '(a b) '(#let 'c (string-length a) '(#ifelse (= c (string-length b)) '(#loop '(#prog2of2 (#ifelse (= c 0) '(#exit-loop #t) '#f) '(#prog2of2 (#set 'c (- c 1)) '(#ifelse (<> (get-char a c) (get-char b c)) '(#exit-loop #f) '#f)))) '#f))))
 // (#lambda "\x82#\x81ILl\x81\x43I\x82ILl\x81\x43\x82?\xB7\x46Ii\x82?\x86\x46\x30!\xABG\x81G0DI\x81i-I\x81PD\x82I\x81I\x81Ll\x82\x43\x82I\x82I\x81Ll\x82\x43\x85?\x85\x46\x30\x86G\x81G0D\xCBG\x81G0P\x82R" '(string-length get-char))
-// (#lambda "\x82#\x81ILl\x81\x43I\x82ILl\x81\x43\x82?\xAA\x46Ii\x82?\x84\x46\x30!\xA1GI\x81i-P\x82I\x81I\x81Ll\x82\x43\x82I\x82I\x81Ll\x82\x43\x85?\x83\x46\x30\x83G\xD6G0P\x81PDR" '(string-length get-char))
-	s=new_string("\x82#\x81ILl\x81\x43I\x82ILl\x81\x43\x82?\xAA\x46Ii\x82?\x84\x46\x30!\xA1GI\x81i-P\x82I\x81I\x81Ll\x82\x43\x82I\x82I\x81Ll\x82\x43\x85?\x83\x46\x30\x83G\xD6G0P\x81PDR",67);
+// (#lambda "\x82#\x81ILl\x81\x43I\x82ILl\x81\x43\x82?\xA8\x46Ii\x82?\x84\x46\x30!\x9FG\x81i-\x82I\x81I\x81Ll\x82\x43\x82I\x82I\x81Ll\x82\x43\x85?\x83\x46\x30\x83G\xD8G0P\x81PDR" '(string-length get-char))
+	s=new_string("\x82#\x81ILl\x81\x43I\x82ILl\x81\x43\x82?\xA8\x46Ii\x82?\x84\x46\x30!\x9FG\x81i-\x82I\x81I\x81Ll\x82\x43\x82I\x82I\x81Ll\x82\x43\x85?\x83\x46\x30\x83G\xD8G0P\x81PDR",65);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_word("get-char",8);
@@ -1175,8 +1266,8 @@
 // (define (concatenate-strings list) (let ((l list) (i 0)) (while l (set i (+ i (string-length (car l)))) (set l (cdr l))) (let ((s (new-string i))) (set i 0) (while list (let ((j 0)) (while (< j (string-length (car list))) (put-char s i (get-char (car list) j)) (set i (+ i 1)) (set j (+ j 1)))) (set list (cdr list))) s)))
 // (#define 'concatenate-strings (byte-compile '(list) '(#let 'l list '(#let 'i 0 '(#prog2of2 (#loop '(#ifelse l '(#prog2of2 (#set 'i (+ i (string-length (car l)))) '(#set 'l (cdr l))) '(#exit-loop #f))) '(#let 's (new-string i) '(#prog2of2 (#set 'i 0) '(#prog2of2 (#loop '(#ifelse list '(#prog2of2 (#let 'j 0 '(#loop '(#ifelse (< j (string-length (car list))) '(#prog2of2 (put-char s i (get-char (car list) j)) '(#prog2of2 (#set 'i (+ i 1)) '(#set 'j (+ j 1)))) '(#exit-loop #f)))) '(#set 'list (cdr list))) '(#exit-loop #f))) 's))))))))
 // (#lambda "\x81#Ii\x81I\x95\x46I\x82IaLl\x81\x43+I\x81PD\x81IdI\x82P\x83G0\x83GD\xE1GDI\x81Ll\x81\x43iI\x82PD\x83I\x80\xC3\x46iI\x85IaLl\x81\x43\x81?\xA6\x46\x81I\x83I\x86Ia\x83I\x82Ll\x82\x43\x83Ll\x83\x43\x44\x82I\x81i+I\x83PDI\x81i+I\x81P\x83G0\x83GD\xC8GPD\x83IdI\x84P\x83G0\x84GD\xFF\xB1GDIPPP\x81R" '(string-length new-string get-char put-char))
-// (#lambda "\x81#Ii\x81I\x91\x46I\x82IaLl\x81\x43+P\x81Id\x81P\xEBGI\x81Ll\x81\x43i\x81P\x83I\xB7\x46iI\x85IaLl\x81\x43\x81?\xA2\x46\x81I\x83I\x86Ia\x83I\x82Ll\x82\x43\x83Ll\x83\x43\x44\x82I\x81i+\x82PI\x81i+P\xD2GD\x83Id\x83P\xC5GPPPR" '(string-length new-string get-char put-char))
-	s=new_string("\x81#Ii\x81I\x91\x46I\x82IaLl\x81\x43+P\x81Id\x81P\xEBGI\x81Ll\x81\x43i\x81P\x83I\xB7\x46iI\x85IaLl\x81\x43\x81?\xA2\x46\x81I\x83I\x86Ia\x83I\x82Ll\x82\x43\x83Ll\x83\x43\x44\x82I\x81i+\x82PI\x81i+P\xD2GD\x83Id\x83P\xC5GPPPR",97);
+// (#lambda "\x81#Ii\x81I\x91\x46I\x82IaLl\x81\x43+P\x81Id\x81P\xEBGI\x81Ll\x81\x43i\x81P\x83I\xB5\x46iI\x85IaLl\x81\x43\x81?\xA0\x46\x81I\x83I\x86Ia\x83I\x82Ll\x82\x43\x83Ll\x83\x43\x44\x82I\x81i+\x82P\x81i+\xD4GD\x83Id\x83P\xC7GPPPR" '(string-length new-string get-char put-char))
+	s=new_string("\x81#Ii\x81I\x91\x46I\x82IaLl\x81\x43+P\x81Id\x81P\xEBGI\x81Ll\x81\x43i\x81P\x83I\xB5\x46iI\x85IaLl\x81\x43\x81?\xA0\x46\x81I\x83I\x86Ia\x83I\x82Ll\x82\x43\x83Ll\x83\x43\x44\x82I\x81i+\x82P\x81i+\xD4GD\x83Id\x83P\xC7GPPPR",95);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_word("put-char",8);
@@ -1296,8 +1387,8 @@
 // (define (list-length a) (let ((len 0)) (while a (set len (+ len 1)) (set a (cdr a))) len))
 // (#define 'list-length (byte-compile '(a) '(#let 'len 0 '(#prog2of2 (#loop '(#ifelse a '(#prog2of2 (#set 'len (+ len 1)) '(#set 'a (cdr a))) '(#exit-loop #f))) 'len))))
 // (#lambda "\x81#i\x81I\x90\x46I\x81i+I\x81PD\x81IdI\x82P\x83G0\x83GD\xE6GDIP\x81R" '#f)
-// (#lambda "\x81#i\x81I\x8C\x46I\x81i+P\x81Id\x81P\xF0GPR" '#f)
-	s=new_string("\x81#i\x81I\x8C\x46I\x81i+P\x81Id\x81P\xF0GPR",21);
+// (#lambda "\x81#i\x81I\x8A\x46\x81i+\x81Id\x81P\xF2GPR" '#f)
+	s=new_string("\x81#i\x81I\x8A\x46\x81i+\x81Id\x81P\xF2GPR",19);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_object(&bytefunc_objtype);
@@ -1313,8 +1404,8 @@
 // (define (nth-item list n) (while (< 0 n) (set list (cdr list)) (set n (- n 1))) (car list))
 // (#define 'nth-item (byte-compile '(list n) '(#prog2of2 (#loop '(#ifelse (< 0 n) '(#prog2of2 (#set 'list (cdr list)) '(#set 'n (- n 1))) '(#exit-loop #f))) '(car list))))
 // (#lambda "\x82#i\x81I\x81?\x90\x46\x81IdI\x82PDI\x81i-I\x81P\x83G0\x83GD\xE3GD\x81Ia\x82R" '#f)
-// (#lambda "\x82#i\x81I\x81?\x8C\x46\x81Id\x81PI\x81i-P\xEDG\x81Ia\x81PDR" '#f)
-	s=new_string("\x82#i\x81I\x81?\x8C\x46\x81Id\x81PI\x81i-P\xEDG\x81Ia\x81PDR",28);
+// (#lambda "\x82#i\x81I\x81?\x8A\x46\x81Id\x81P\x81i-\xEFG\x81Ia\x81PDR" '#f)
+	s=new_string("\x82#i\x81I\x81?\x8A\x46\x81Id\x81P\x81i-\xEFG\x81Ia\x81PDR",26);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_object(&bytefunc_objtype);
@@ -1330,8 +1421,8 @@
 // (define (list-index list item) (let ((i 0)) (while list (if (eq? item (car list)) (exit-loop i)) (set i (+ i 1)) (set list (cdr list)))))
 // (#define 'list-index (byte-compile '(list item) '(#let 'i 0 '(#loop '(#ifelse list '(#prog2of2 (#ifelse (eq? item (car list)) '(#exit-loop i) '#f) '(#prog2of2 (#set 'i (+ i 1)) '(#set 'list (cdr list)))) '(#exit-loop #f))))))
 // (#lambda "\x82#i\x82I\x9F\x46\x81I\x83Ia=\x85\x46I\x9AG\x81G0DI\x81i+I\x81PD\x82IdI\x83P\x83G0\x83GD\xD7GP\x82R" '#f)
-// (#lambda "\x82#i\x82I\x97\x46\x81I\x83Ia=\x83\x46I\x8DGI\x81i+P\x82Id\x82P\xE5G0P\x81PDR" '#f)
-	s=new_string("\x82#i\x82I\x97\x46\x81I\x83Ia=\x83\x46I\x8DGI\x81i+P\x82Id\x82P\xE5G0P\x81PDR",36);
+// (#lambda "\x82#i\x82I\x95\x46\x81I\x83Ia=\x83\x46I\x8BG\x81i+\x82Id\x82P\xE7G0P\x81PDR" '#f)
+	s=new_string("\x82#i\x82I\x95\x46\x81I\x83Ia=\x83\x46I\x8BG\x81i+\x82Id\x82P\xE7G0P\x81PDR",34);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_object(&bytefunc_objtype);
@@ -1529,9 +1620,9 @@
 
 // (define (read-eval-print in out prompt) (let ((o #f)) (loop (if prompt (write-string out prompt)) (set o (catch 'end-of-file (catch 'reader-error (read-object in) (progn (show-error #exception #exceptionvalue) (ifelse prompt (next-loop) (exit-loop #t)))) (progn (if prompt (write-newline out)) (exit-loop)))) (set o (catch #f ((byte-compile #f (macro-expand o))) (progn (show-error #exception #exceptionvalue) (ifelse prompt (next-loop) (exit-loop #t))))) (if (and prompt o) (write-object out o) (write-newline out)))))
 // (#define 'read-eval-print (byte-compile '(in out prompt) '(#let 'o #f '(#loop '(#prog2of2 (#ifelse prompt '(write-string out prompt) '#f) '(#prog2of2 (#set 'o (#catch 'end-of-file '(#catch 'reader-error '(read-object in) '(#prog2of2 (show-error #exception #exceptionvalue) '(#ifelse prompt '(#next-loop) '(#exit-loop #t)))) '(#prog2of2 (#ifelse prompt '(write-newline out) '#f) '(#exit-loop #f)))) '(#prog2of2 (#set 'o (#catch #f '((byte-compile #f (macro-expand o))) '(#prog2of2 (show-error #exception #exceptionvalue) '(#ifelse prompt '(#next-loop) '(#exit-loop #t))))) '(#ifelse (#and prompt 'o) '(#prog2of2 (write-object out o) '(write-newline out)) '#f))))))))
-// (#lambda "\x83#0\x81I\x8A\x46\x82I\x82ILl\x82\x43\x81G0D\xAD{\x8A{\x83I\x81Ll\x81\x43}\x9EG\x82L1=\x83T21:12\x83Ll\x82\x43\x44\x81I\x84\x46\xCBG\x85G0!\x80\xF0G}\x9CG\x84L1=\x83T21:\x81I\x89\x46\x82I\x85Ll\x81\x43\x81G0D0\x80\xD1GI\x81PD\x91{0\x81I\x86Ll\x81\x43\x87Ll\x82\x43\x43}\x95G12\x83Ll\x82\x43\x44\x81I\x85\x46\xFE\xFFG\x84G0!\xA5GI\x81PD\x81II\x82\x46\x44I\x93\x46\x82I\x81I\x88Ll\x82\x43\x44\x82I\x85Ll\x81\x43\x81G0D\xFE\xD4GP\x83R" '(write-string read-object reader-error show-error end-of-file write-newline macro-expand byte-compile write-object))
-// (#lambda "\x83#0\x81I\x89\x46\x82I\x82ILl\x82\x43\x44\xA9{\x8A{\x83I\x81Ll\x81\x43}\x9AG\x82L1=\x83T21:12\x83Ll\x82\x43\x44\x81I\xD0T0!\x80\xE3G}\x99G\x84L1=\x83T21:\x81I\x88\x46\x82I\x85Ll\x81\x43\x44\x30\x80\xC7GP\x91{0\x81I\x86Ll\x81\x43\x87Ll\x82\x43\x43}\x91G12\x83Ll\x82\x43\x44\x81I\xFF\x8ET0!\xA2GP\x81II\x82\x46\x44I\x95\x46\x82I\x81I\x88Ll\x82\x43\x44\x82I\x85Ll\x81\x43\x44\xFE\xEBG\xFE\xE8GP\x82P\x81\x44R" '(write-string read-object reader-error show-error end-of-file write-newline macro-expand byte-compile write-object))
-	s=new_string("\x83#0\x81I\x89\x46\x82I\x82ILl\x82\x43\x44\xA9{\x8A{\x83I\x81Ll\x81\x43}\x9AG\x82L1=\x83T21:12\x83Ll\x82\x43\x44\x81I\xD0T0!\x80\xE3G}\x99G\x84L1=\x83T21:\x81I\x88\x46\x82I\x85Ll\x81\x43\x44\x30\x80\xC7GP\x91{0\x81I\x86Ll\x81\x43\x87Ll\x82\x43\x43}\x91G12\x83Ll\x82\x43\x44\x81I\xFF\x8ET0!\xA2GP\x81II\x82\x46\x44I\x95\x46\x82I\x81I\x88Ll\x82\x43\x44\x82I\x85Ll\x81\x43\x44\xFE\xEBG\xFE\xE8GP\x82P\x81\x44R",161);
+// (#lambda "\x83#0\x81I\x8A\x46\x82I\x82ILl\x82\x43\x81G0D\xAF{\x8A{\x83I\x81Ll\x81\x43}\xA0G\x82L1=\x83T21:12\x83Ll\x82\x43\x44\x81I\x85\x46}\xCAG\x86G0!}\x80\xF0G}\x9CG\x84L1=\x83T21:\x81I\x89\x46\x82I\x85Ll\x81\x43\x81G0D0\x80\xD1GI\x81PD\x91{0\x81I\x86Ll\x81\x43\x87Ll\x82\x43\x43}\x95G12\x83Ll\x82\x43\x44\x81I\x85\x46\xFE\xFDG\x84G0!\xA5GI\x81PD\x81II\x82\x46\x44I\x93\x46\x82I\x81I\x88Ll\x82\x43\x44\x82I\x85Ll\x81\x43\x81G0D\xFE\xD2GP\x83R" '(write-string read-object reader-error show-error end-of-file write-newline macro-expand byte-compile write-object))
+// (#lambda "\x83#0\x81I\x89\x46\x82I\x82ILl\x82\x43\x44\xAD{\x8A{\x83I\x81Ll\x81\x43}\x9EG\x82L1=\x83T21:12\x83Ll\x82\x43\x44\x81I\x83\x46}\xCDG0!}\x80\xE3G}\x99G\x84L1=\x83T21:\x81I\x88\x46\x82I\x85Ll\x81\x43\x44\x30\x80\xC7GP\x91{0\x81I\x86Ll\x81\x43\x87Ll\x82\x43\x43}\x91G12\x83Ll\x82\x43\x44\x81I\xFF\x8AT0!\xA2GP\x81II\x82\x46\x44I\x95\x46\x82I\x81I\x88Ll\x82\x43\x44\x82I\x85Ll\x81\x43\x44\xFE\xE7G\xFE\xE4GP\x82P\x81\x44R" '(write-string read-object reader-error show-error end-of-file write-newline macro-expand byte-compile write-object))
+	s=new_string("\x83#0\x81I\x89\x46\x82I\x82ILl\x82\x43\x44\xAD{\x8A{\x83I\x81Ll\x81\x43}\x9EG\x82L1=\x83T21:12\x83Ll\x82\x43\x44\x81I\x83\x46}\xCDG0!}\x80\xE3G}\x99G\x84L1=\x83T21:\x81I\x88\x46\x82I\x85Ll\x81\x43\x44\x30\x80\xC7GP\x91{0\x81I\x86Ll\x81\x43\x87Ll\x82\x43\x43}\x91G12\x83Ll\x82\x43\x44\x81I\xFF\x8AT0!\xA2GP\x81II\x82\x46\x44I\x95\x46\x82I\x81I\x88Ll\x82\x43\x44\x82I\x85Ll\x81\x43\x44\xFE\xE7G\xFE\xE4GP\x82P\x81\x44R",165);
 	if(!s) return(1);
 	c=INCREF(&nilobj);
 	o=new_word("write-object",12);
