Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / mimc / mimgen.mima
diff --git a/mim/development/mim/mimc/mimgen.mima b/mim/development/mim/mimc/mimgen.mima
new file mode 100644 (file)
index 0000000..6a7392e
--- /dev/null
@@ -0,0 +1,3765 @@
+
+<PACKAGE "MIMGEN">
+
+<ENTRY MAKE-TAG FIND-FRAME SPEC-GEN-TEMP PREV-FRAME GEN-VAL-==? GEN-==? GET-BINDING BRANCH-TAG RET-TMP-AC MIM-FCN MIM-RETURN REFERENCE GEN-TYPE? GEN-VT GEN-TC GEN-CHTYPE GEN-GVAL GEN-SETG MIM-TEMPS-HOLD MIM-TEMPS-EMIT EMIT IEMIT INSTRUCTION LABEL-TAG PUSH POP PUSH-CONSTANT GEN-FIX-BIND SPECIAL-BINDING FINISH-BINDING SET-TEMP SET-SYM CURRENT-FRAME GET-ARG-TUPLE ARG-TO-TEMP TEST-ARG MSUBR-CALL SEG-SUBR-CALL START-FRAME GEN-LIST GEN-VECTOR GEN-UVECTOR GEN-TUPLE MOVE-ARG GEN-CHTYPE D-B-TAG GEN-TEMP NTH-LIST NTH-UVECTOR NTH-VECTOR NTH-STRING NTH-RECORD NTH-BYTES REST-LIST REST-UVECTOR REST-VECTOR REST-STRING REST-BYTES REST-RECORD EMPTY-LIST EMPTY-UVECTOR EMPTY-VECTOR EMPTY-STRING EMPTY-BYTES EMPTY-RECORD PUT-LIST PUT-UVECTOR PUT-VECTOR PUT-STRING PUT-BYTES PUT-RECORD LENGTH-LIST LENGTH-UVECTOR LENGTH-VECTOR LENGTH-STRING LENGTH-BYTES LENGTH-RECORD PROTECT USE-TEMP FREE-TEMP DEALLOCATE-TEMP GEN-SHIFT GEN-ARG-NUM SET-VALUE GET-VALUE-X ATOMCHK ISPEC-BIND GEN-GASS ASS-GEN M$$VALU TYPIFY-TEMPS SPEC-IEMIT>
+
+<USE "CHKDCL" "COMPDEC" "ADVMESS">
+
+<SETG RAT (`RECORD-TYPE ATOM)>
+
+<SETG RBN (`RECORD-TYPE LBIND)>
+
+<SETG RGBN (`RECORD-TYPE GBIND)>
+
+<SETG QQ-BIND <FORM QUOTE BIND>>
+
+<BLOCK (<ROOT>)>
+
+M$$BINDID
+
+<ENDBLOCK>
+
+<SETG QQ-M$$BINDID <FORM QUOTE M$$BINDID>>
+
+<SETG NO-DATUM '(1)>
+
+<GDECL (MIMOPS) VECTOR>
+
+<SETG M$$FRM-MSUB 1>
+
+<SETG M$$FRM-PC 2>
+
+<SETG M$$FRM-ARGN 3>
+
+<SETG M$$FRM-ID 4>
+
+<SETG M$$FRM-PREV 5>
+
+<SETG M$$FRM-TP 6>
+
+<SETG M$$FRM-ARGS 6>
+
+<SETG M$$FRM-BIND 7>
+
+<SETG M$$FRM-ACTN 8>
+
+<MANIFEST M$$FRM-MSUB M$$FRM-ARGN M$$FRM-ID M$$FRM-PREV M$$FRM-BIND M$$FRM-ARGS M$$FRM-ACTN M$$FRM-PC M$$FRM-TP>
+
+<SETG M$$GVAL 1>
+
+<SETG M$$LVAL 2>
+
+<SETG M$$PNAM 3>
+
+<SETG M$$OBLS 4>
+
+<SETG M$$TYPE 5>
+
+<SETG M$$ATML 5>
+
+<MANIFEST M$$LVAL M$$GVAL M$$PNAM M$$OBLS M$$TYPE M$$ATML>
+
+<SETG M$$VALU 1>
+
+<SETG M$$ATOM 2>
+
+<SETG M$$DECL 3>
+
+<SETG M$$PBND 4>
+
+<SETG M$$PATM 5>
+
+<SETG M$$UBID 6>
+
+<SETG M$$BNDL 6>
+
+<MANIFEST M$$VALU M$$ATOM M$$DECL M$$PBND M$$PATM M$$UBID M$$BNDL>
+
+<SETG MIMOPS [("PUSH" ANY) ("POP" ANY) ("SET" ANY) ("SETS" ANY) ("GETS" ANY) ("ADJ" ANY) ("FRAME" ANY) ("VFRAME" ANY) ("CFRAME" ANY) ("ARGS" TUPLE) ("TUPLE" TUPLE) ("RFRAME" NO-RETURN) ("CALL" ANY) ("ACTIVATION" ANY) ("AGAIN" NO-RETURN) ("RET" NO-RETURN) ("RTUPLE" NO-RETURN) ("JUMP" NO-RETURN) ("HALT" ANY) ("OBJECT" ANY) ("TYPE" FIX) ("TYPE?" ANY) ("CHTYPE" ANY) ("NEWTYPE" FIX) ("VALUE" FIX) ("LIST" LIST) ("UBLOCK" ANY) ("RECORD" ANY) ("NTHL" ANY) ("NTHR" ANY T) ("NTHU" ANY) ("LENL" FIX) ("LENR" FIX T) ("LENU" FIX) ("EMPL?" ANY) ("EMPR?" ANY T) ("EMPU?" ANY) ("PUTL" LIST) ("PUTU" ANY) ("PUTR" ANY T) ("RESTL" LIST) ("RESTU" ANY) ("BACKU" ANY) ("TOPU" ANY) ("CONS" LIST) ("PUTREST" LIST) ("BIND" ANY) ("SETG" ANY) ("GVAL" ANY) ("OPEN" ANY) ("CLOSE" ANY) ("READ" ANY) ("PRINT" ANY) ("SAVE" ANY) ("RESTORE" ANY) ("ADD" FIX) ("ADDF" FLOAT) ("SUB" FIX) ("SUBF" FLOAT) ("MUL" FIX) ("MULF" FLOAT) ("DIV" FIX) ("DIVF" FLOAT) ("RANDOM" FIX) ("FIX" FIX) ("FLOAT" FLOAT) ("GRTR?" ANY) ("LESS?" ANY) ("AND" FIX) ("OR" FIX) ("XOR" FIX) ("EQV" FIX) ("LSH" FIX) ("ROT" FIX) ("EQUAL?" ANY) ("VEQUAL?" ANY) ("RESET" ANY) ("ATIC" FIX) ("MARKL?" ANY) ("MARKU?" ANY) ("MARKR?" ANY) ("MARKL" ANY) ("MARKU" ANY) ("MARKR" ANY) ("MARKUV?" ANY) ("MARKUV" ANY) ("MARKUU" ANY) ("MARKUU?" ANY) ("MARKUS" ANY) ("MARKUS?" ANY) ("MARKUB" ANY) ("MARKUB?" ANY) ("SWEEP" ANY) ("RETRY" NO-RETURN) ("LOOP" ANY) ("IRECORD" ANY) ("TEMPLATE-TABLE" ANY) ("CONTENTS" ANY) ("NEXTS" FIX) ("SWNEXT" ANY) ("RELL" ANY) ("RELU" ANY) ("RELR" ANY) ("INTGO" ANY) ("PFRAME" ANY) ("NTH1" ANY) ("REST1" ANY) ("EMPTY?" ANY) ("MONAD?" ANY) ("QUIT" ANY) ("SYSCALL" ANY) ("LEGAL?" ANY) ("SETZONE" ANY) ("BLT" ANY T) ("ALLOCR" ANY T) ("ALLOCUU" ANY) ("ALLOCUV" ANY) ("ALLOCL" ANY) ("ALLOCUS" ANY) ("ALLOCUB" ANY) ("PUTS" ANY) ("SYSOP" ANY) ("MPAGES" FIX) ("ACALL" ANY) ("LOCK" ANY) ("RNTIME" FLOAT) ("TYPEW" ANY) ("TYPEWC" ANY) ("SAVTTY" ANY) ("FATAL" ANY) ("GETTTY" ANY) ("FGETBITS" ANY) ("FPUTBITS" ANY) ("PIPE" ANY) ("IFSYS" ANY) ("ENDIF" ANY) ("CGC-UVECTOR" ANY) ("CGC-VECTOR" ANY) ("CGC-STRING" ANY) ("CGC-BYTES" ANY) ("CGC-LIST" ANY) ("CGC-RECORD" ANY T) ("MOVSTK" ANY) ("GETSTK" ANY) ("ON-STACK?" FIX) ("USBLOCK" ANY) ("SBLOCK" ANY) ("UUBLOCK" ANY) ("BBIND" ANY) ("GEN-LVAL" ANY) ("GEN-SET" ANY) ("STRING-EQUAL?" ANY) ("MOVE-STRING" ANY) ("MOVE-WORDS" ANY) ("STRCOMP" ANY) ("SETSIZ" ANY) ("BIGSTACK" ANY)]>
+
+<MAPF <> <FUNCTION (L "AUX" (S <1 .L>) (TYP <2 .L>) A) #DECL ((L) <LIST STRING ANY>) <COND (<NOT <SET A <LOOKUP .S ,MIM-OBL>>> <SET A <INSERT .S ,MIM-OBL>>)> <COND (<N==? .TYP ANY> <PUTPROP .A TYPE .TYP>)> <COND (<G? <LENGTH .L> 2> <PUTPROP .A `RECORD-TYPE T>)>> ,MIMOPS>
+
+"Generate function starting pseudo-op"
+
+#WORD *23626261241*
+<GFCN \1aMIM-FCN ("VALUE" LIST ANY ANY "OPTIONAL" ANY) NAME6 DCL7 NEED-FR8>
+                   <OPT-DISPATCH 2 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP14>
+                   <INTGO>
+                   <FRAME '\1aEMIT>
+                   <FRAME '\1aFORM>
+                   <TYPE? NEED-FR8 <TYPE-CODE FALSE> + PHRASE13>
+                   <DEAD NEED-FR8>
+                   <SET TEMP14 '`FCN (TYPE ATOM)>
+                   <JUMP + PHRASE15>
+PHRASE13
+                   <SET TEMP14 '`GFCN (TYPE ATOM)>
+PHRASE15
+                   <PUSH TEMP14>
+                   <DEAD TEMP14>
+                   <CHTYPE NAME6 <TYPE-CODE FCN-ATOM> = STACK>
+                   <DEAD NAME6>
+                   <CHTYPE DCL7 <TYPE-CODE LIST> = STACK>
+                   <DEAD DCL7>
+                   <CALL '\1aFORM 3 = TEMP14>
+                   <PUSH TEMP14>
+                   <CALL '\1aEMIT 1>
+                   <RESTL TEMP14 1 = TEMP14 (TYPE LIST)>
+                   <RESTL TEMP14 1 = TEMP14 (TYPE LIST)>
+                   <CHTYPE TEMP14 <TYPE-CODE LIST> = TEMP14>
+                   <GEN-SET 'ARGS-NEXT TEMP14>
+                   <RETURN TEMP14>
+                   <DEAD TEMP14>
+                   <END \1aMIM-FCN>
+"Generate temp pseudo-op and return pointer to list so that others can
+ be dynamically added"
+
+#WORD *22135272465*
+<GFCN \1aMIM-TEMPS-HOLD ("VALUE" LIST)>
+                   <TEMP TEMP5>
+                   <INTGO>
+                   <FRAME '\1aFORM>
+                   <PUSH '`TEMP>
+                   <CALL '\1aFORM 1 = TEMP5>
+                   <GEN-SET 'TMPS TEMP5>
+                   <DEAD TEMP5>
+                   <GEN-LVAL 'TMPS = TEMP5>
+                   <CHTYPE TEMP5 <TYPE-CODE LIST> = TEMP5>
+                   <GEN-SET 'TMPS-NEXT TEMP5>
+                   <DEAD TEMP5>
+                   <GEN-LVAL 'TMPS-NEXT = TEMP5>
+                   <RETURN TEMP5>
+                   <DEAD TEMP5>
+                   <END \1aMIM-TEMPS-HOLD>
+#WORD *13434727340*
+<GFCN \1aMIM-TEMPS-EMIT ("VALUE" ATOM)>
+                   <TEMP TEMP5>
+                   <INTGO>
+                   <FRAME '\1aEMIT>
+                   <GEN-LVAL 'TMPS = STACK>
+                   <CALL '\1aEMIT 1>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`INTGO>
+                   <CALL '\1aIEMIT 1 = TEMP5>
+                   <RETURN TEMP5>
+                   <DEAD TEMP5>
+                   <END \1aMIM-TEMPS-EMIT>
+"Here to change any TEMPS to ADECLs if possible"
+
+#WORD *30672366113*
+<GFCN \1aTYPIFY-TEMPS ("VALUE" <OR ATOM FALSE> <LIST [REST TEMP]>) L4>
+                   <TEMP TEMP14 TEMP11:LIST TMP16:TEMP TYP17>
+                   <INTGO>
+                   <SET TEMP14 %<> (TYPE FALSE)>
+                   <SET TEMP11 L4 (TYPE LIST)>
+                   <DEAD L4>
+                   <LOOP>
+MAP6
+                   <INTGO>
+                   <EMPL? TEMP11 + MAPAP9>
+                   <NTHL TEMP11 1 = TMP16>
+                   <NTHUV TMP16 6 = TYP17>
+                   <SET TEMP14 TYP17>
+                   <TYPE? TEMP14 <TYPE-CODE FALSE> + PHRASE19>
+                   <FRAME '\1aISTYPE?>
+                   <PUSH TYP17>
+                   <DEAD TYP17>
+                   <CALL '\1aISTYPE? 1 = TYP17>
+                   <SET TEMP14 TYP17>
+                   <TYPE? TEMP14 <TYPE-CODE FALSE> + PHRASE19>
+                   <VEQUAL? TYP17 'NO-RETURN - TAG22>
+                   <SET TEMP14 %<> (TYPE FALSE)>
+                   <JUMP + PHRASE19>
+TAG22
+                   <VEQUAL? TYP17 'ANY - TAG23>
+                   <SET TEMP14 %<> (TYPE FALSE)>
+                   <JUMP + PHRASE19>
+TAG23
+                   <FRAME '\1aMUNG-TMP>
+                   <PUSH TMP16>
+                   <NTHUV TMP16 3 = TEMP14>
+                   <DEAD TMP16>
+                   <RESTL TEMP14 1 = TEMP14 (TYPE LIST)>
+                   <CHTYPE TEMP14 <TYPE-CODE LIST> = STACK>
+                   <DEAD TEMP14>
+                   <PUSH TYP17>
+                   <DEAD TYP17>
+                   <CALL '\1aMUNG-TMP 3 = TEMP14>
+PHRASE19
+                   <RESTL TEMP11 1 = TEMP11 (TYPE LIST)>
+                   <JUMP + MAP6>
+MAPAP9
+                   <RETURN TEMP14>
+                   <DEAD TEMP14>
+                   <END \1aTYPIFY-TEMPS>
+#WORD *31727323302*
+<GFCN \1aMUNG-TMP ("VALUE" <OR ATOM FALSE> TEMP LIST ANY) TMP4 TL5 TYP6>
+                   <TEMP NM7:ATOM TEMP17 TEMP14:LIST LL19:LIST>
+                   <INTGO>
+                   <NTHUV TMP4 1 = NM7 (TYPE ATOM)>
+                   <DEAD TMP4>
+                   <SET TEMP17 %<> (TYPE FALSE)>
+                   <SET TEMP14 TL5 (TYPE LIST)>
+                   <DEAD TL5>
+                   <LOOP>
+MAP9
+                   <INTGO>
+                   <EMPL? TEMP14 + MAPAP12>
+                   <SET LL19 TEMP14>
+                   <NTHL LL19 1 = TEMP17>
+                   <EQUAL? TEMP17 NM7 + TAG23>
+                   <DEAD TEMP17>
+                   <SET TEMP17 %<> (TYPE FALSE)>
+                   <JUMP + PHRASE22>
+TAG23
+                   <PUSH NM7>
+                   <DEAD NM7>
+                   <PUSH TYP6>
+                   <DEAD TYP6>
+                   <UBLOCK <TYPE-CODE VECTOR> 2 = TEMP17>
+                   <CHTYPE TEMP17 <TYPE-CODE ADECL> = TEMP17>
+                   <PUTL LL19 1 TEMP17>
+                   <DEAD LL19 TEMP17>
+                   <RETURN 'T>
+PHRASE22
+                   <RESTL TEMP14 1 = TEMP14 (TYPE LIST)>
+                   <JUMP + MAP9>
+MAPAP12
+                   <RETURN TEMP17>
+                   <DEAD TEMP17>
+                   <END \1aMUNG-TMP>
+"Here to create a temporary"
+
+#WORD *33525750552*
+<GFCN \1aGEN-TEMP ("VALUE" TEMP "OPTIONAL" ANY ANY ANY ANY) ALLOCATE9 NM10 ARG-TEMP11 NO-RECYC12>
+                   <OPT-DISPATCH 0 %<> OPT4 OPT5 OPT6 OPT7 OPT8>
+OPT4
+                   <PUSH 'ANY>
+OPT5
+                   <PUSH "TEMP">
+OPT6
+                   <PUSH %<>>
+OPT7
+                   <PUSH %<>>
+OPT8
+                   <TEMP TEMP16 TN14:LIST FT15:LIST TMP13:TEMP OF57:LIST>
+                   <INTGO>
+                   <GEN-LVAL 'TMPS-NEXT = TN14>
+                   <GEN-LVAL 'FREE-TEMPS = FT15>
+                   <EMPL? FT15 + BOOL24 (TYPE LIST)>
+                   <TYPE? ARG-TEMP11 <TYPE-CODE FALSE> + PHRASE23>
+BOOL24
+                   <FRAME '\1aMAKE-TAG>
+                   <PUSH NM10>
+                   <DEAD NM10>
+                   <CALL '\1aMAKE-TAG 1 = NM10>
+                   <TYPE? ALLOCATE9 <TYPE-CODE FALSE> + PHRASE27>
+                   <CHTYPE NM10 <TYPE-CODE ATOM> = TEMP16>
+                   <CONS TEMP16 () = TEMP16>
+                   <GEN-SET 'TMPS-NEXT TEMP16>
+                   <PUTREST TN14 TEMP16>
+                   <DEAD TN14 TEMP16>
+PHRASE27
+                   <PUSH NM10>
+                   <DEAD NM10>
+                   <TYPE? ALLOCATE9 <TYPE-CODE FALSE> - BOOL34>
+                   <TYPE? NO-RECYC12 <TYPE-CODE FALSE> + PHRASE33>
+                   <TYPE? ARG-TEMP11 <TYPE-CODE FALSE> + PHRASE33>
+BOOL34
+                   <SET TEMP16 1 (TYPE FIX)>
+                   <JUMP + PHRASE36>
+PHRASE33
+                   <SET TEMP16 0 (TYPE FIX)>
+PHRASE36
+                   <PUSH TEMP16>
+                   <DEAD TEMP16>
+                   <GEN-LVAL 'TMPS = STACK>
+                   <TYPE? ALLOCATE9 <TYPE-CODE FALSE> - BOOL41>
+                   <TYPE? ARG-TEMP11 <TYPE-CODE FALSE> + PHRASE40>
+                   <DEAD ARG-TEMP11>
+BOOL41
+                   <SET TEMP16 'T (TYPE ATOM)>
+                   <JUMP + PHRASE43>
+PHRASE40
+                   <SET TEMP16 %<> (TYPE FALSE)>
+PHRASE43
+                   <PUSH TEMP16>
+                   <DEAD TEMP16>
+                   <PUSH NO-RECYC12>
+                   <DEAD NO-RECYC12>
+                   <TYPE? ALLOCATE9 <TYPE-CODE FALSE> + PHRASE45>
+                   <FRAME '\1aISTYPE?>
+                   <PUSH ALLOCATE9>
+                   <DEAD ALLOCATE9>
+                   <CALL '\1aISTYPE? 1 = TEMP16>
+                   <JUMP + PHRASE47>
+PHRASE45
+                   <SET TEMP16 'NO-RETURN (TYPE ATOM)>
+PHRASE47
+                   <PUSH TEMP16>
+                   <DEAD TEMP16>
+                   <UBLOCK <TYPE-CODE VECTOR> 6 = TEMP16>
+                   <CHTYPE TEMP16 <TYPE-CODE TEMP> = TMP13>
+                   <DEAD TEMP16>
+                   <GEN-LVAL 'EVERY-TEMP = TEMP16>
+                   <CONS TMP13 TEMP16 = TEMP16>
+                   <GEN-SET 'EVERY-TEMP TEMP16>
+                   <DEAD TEMP16>
+                   <RETURN TMP13>
+                   <DEAD TMP13>
+PHRASE23
+                   <TYPE? ALLOCATE9 <TYPE-CODE FALSE> + PHRASE52>
+                   <EQUAL? ALLOCATE9 'ANY + PHRASE52>
+                   <SET TN14 FT15>
+                   <SET OF57 TN14>
+                   <LOOP>
+AGAIN58
+                   <INTGO>
+                   <EMPL? TN14 + PHRASE52 (TYPE LIST)>
+                   <NTHL TN14 1 = TMP13 (TYPE TEMP)>
+                   <NTHUV TMP13 6 = TEMP16>
+                   <EQUAL? TEMP16 'NO-RETURN + BOOL63>
+                   <DEAD TEMP16>
+                   <NTHUV TMP13 6 = TEMP16>
+                   <TYPE? TEMP16 <TYPE-CODE FALSE> + PHRASE62>
+                   <DEAD TEMP16>
+                   <FRAME '\1aISTYPE?>
+                   <FRAME '\1aTYPE-MERGE>
+                   <NTHUV TMP13 6 = STACK>
+                   <PUSH ALLOCATE9>
+                   <CALL '\1aTYPE-MERGE 2 = STACK>
+                   <CALL '\1aISTYPE? 1 = TEMP16>
+                   <TYPE? TEMP16 <TYPE-CODE FALSE> + PHRASE62>
+                   <DEAD TEMP16>
+BOOL63
+                   <VEQUAL? OF57 TN14 - PHRASE69>
+                   <RESTL TN14 1 = TEMP16 (TYPE LIST)>
+                   <DEAD TN14>
+                   <GEN-SET 'FREE-TEMPS TEMP16>
+                   <DEAD TEMP16>
+                   <JUMP + EXIT54>
+PHRASE69
+                   <RESTL TN14 1 = TEMP16 (TYPE LIST)>
+                   <DEAD TN14>
+                   <PUTREST OF57 TEMP16>
+                   <DEAD OF57 TEMP16>
+                   <JUMP + EXIT54>
+PHRASE62
+                   <SET OF57 TN14>
+                   <DEAD TN14>
+                   <RESTL OF57 1 = TN14 (TYPE LIST)>
+                   <JUMP + AGAIN58>
+EXIT54
+                   <FRAME '\1aUSE-TEMP>
+                   <PUSH TMP13>
+                   <PUSH ALLOCATE9>
+                   <DEAD ALLOCATE9>
+                   <CALL '\1aUSE-TEMP 2>
+                   <RETURN TMP13>
+                   <DEAD TMP13>
+PHRASE52
+                   <NTHL FT15 1 = TMP13 (TYPE TEMP)>
+                   <RESTL FT15 1 = TEMP16 (TYPE LIST)>
+                   <DEAD FT15>
+                   <GEN-SET 'FREE-TEMPS TEMP16>
+                   <DEAD TEMP16>
+                   <TYPE? ALLOCATE9 <TYPE-CODE FALSE> + PHRASE78>
+                   <FRAME '\1aUSE-TEMP>
+                   <PUSH TMP13>
+                   <PUSH ALLOCATE9>
+                   <DEAD ALLOCATE9>
+                   <CALL '\1aUSE-TEMP 2>
+PHRASE78
+                   <RETURN TMP13>
+                   <DEAD TMP13>
+                   <END \1aGEN-TEMP>
+#WORD *13442227611*
+<GFCN \1aSPEC-GEN-TEMP ("VALUE" TEMP ANY "OPTIONAL" ANY ANY) TTMPS7 ALLOCATE8 NM9>
+                   <OPT-DISPATCH 1 %<> OPT4 OPT5 OPT6>
+OPT4
+                   <PUSH 'ANY>
+OPT5
+                   <PUSH "TEMP">
+OPT6
+                   <TEMP TEMP3:LBIND TEMP15 L11 TEMP34 TMP10:TEMP>
+                   <INTGO>
+                   <GETS 'BIND = TEMP3 (TYPE LBIND)>
+                   <GEN-LVAL 'TMPS-NEXT = TEMP15>
+                   <BBIND 'TMPS-NEXT 'LIST 'FIX TEMP15>
+                   <DEAD TEMP15>
+                   <GEN-LVAL 'FREE-TEMPS = TEMP15>
+                   <BBIND 'FREE-TEMPS 'LIST 'FIX TEMP15>
+                   <DEAD TEMP15>
+                   <GEN-LVAL 'TMPS = TEMP15>
+                   <BBIND 'TMPS 'FORM 'FIX TEMP15>
+                   <DEAD TEMP15>
+                   <NTHR 'TMPS 2 = TEMP15 (RECORD-TYPE ATOM) (TYPE LBIND)>
+                   <NTHR TEMP15 1 = TEMP15 (RECORD-TYPE LBIND)>
+                   <EQUAL? TEMP15 TTMPS7 + PHRASE23>
+                   <DEAD TEMP15>
+                   <FRAME '\1aFIND-FRAME>
+                   <NTHR 'TMPS 2 = TEMP15 (RECORD-TYPE ATOM) (TYPE LBIND)>
+                   <PUTR TEMP15 1 TTMPS7 (RECORD-TYPE LBIND)>
+                   <DEAD TEMP15>
+                   <PUSH TTMPS7>
+                   <DEAD TTMPS7>
+                   <PUSH 'T>
+                   <CALL '\1aFIND-FRAME 2 = L11>
+                   <EMPTY? L11 - PHRASE30>
+                   <FRAME '\1aCOMPILE-LOSSAGE>
+                   <PUSH "Bad frame model">
+                   <CALL '\1aCOMPILE-LOSSAGE 1>
+PHRASE30
+                   <RESTL L11 1 = TEMP15 (TYPE LIST)>
+                   <NTHL TEMP15 1 = TEMP15 (TYPE LIST)>
+                   <NTHR 'TMPS-NEXT 2 = TEMP34 (RECORD-TYPE ATOM) (TYPE LBIND)>
+                   <PUTR TEMP34 1 TEMP15 (RECORD-TYPE LBIND)>
+                   <DEAD TEMP34 TEMP15>
+                   <RESTL L11 1 = TEMP15 (TYPE LIST)>
+                   <RESTL TEMP15 1 = TEMP15 (TYPE LIST)>
+                   <NTHL TEMP15 1 = TEMP15 (TYPE LIST)>
+                   <NTHR 'FREE-TEMPS 2 = TEMP34 (RECORD-TYPE ATOM) (TYPE LBIND)>
+                   <PUTR TEMP34 1 TEMP15 (RECORD-TYPE LBIND)>
+                   <DEAD TEMP34 TEMP15>
+                   <FRAME '\1aGEN-TEMP>
+                   <PUSH ALLOCATE8>
+                   <DEAD ALLOCATE8>
+                   <PUSH NM9>
+                   <DEAD NM9>
+                   <CALL '\1aGEN-TEMP 2 = TMP10>
+                   <NTHR 'TMPS-NEXT 2 = TEMP15 (RECORD-TYPE ATOM) (TYPE LBIND)>
+                   <NTHR TEMP15 1 = TEMP15 (RECORD-TYPE LBIND)>
+                   <RESTL L11 1 = TEMP34 (TYPE LIST)>
+                   <PUTL TEMP34 1 TEMP15>
+                   <DEAD TEMP34 TEMP15>
+                   <NTHR 'FREE-TEMPS 2 = TEMP15 (RECORD-TYPE ATOM) (TYPE LBIND)>
+                   <NTHR TEMP15 1 = TEMP15 (RECORD-TYPE LBIND)>
+                   <RESTL L11 1 = TEMP34 (TYPE LIST)>
+                   <DEAD L11>
+                   <RESTL TEMP34 1 = TEMP34 (TYPE LIST)>
+                   <PUTL TEMP34 1 TEMP15>
+                   <DEAD TEMP34 TEMP15>
+                   <JUMP + PHRASE42>
+PHRASE23
+                   <FRAME '\1aGEN-TEMP>
+                   <PUSH ALLOCATE8>
+                   <DEAD ALLOCATE8>
+                   <PUSH NM9>
+                   <DEAD NM9>
+                   <CALL '\1aGEN-TEMP 2 = TMP10>
+PHRASE42
+                   <UNBIND TEMP3>
+                   <DEAD TEMP3>
+                   <ADJ -27>
+                   <RETURN TMP10>
+                   <DEAD TMP10>
+                   <END \1aSPEC-GEN-TEMP>
+#WORD *3063020215*
+<GFCN \1aFIND-FRAME ("VALUE" <OR LIST TEMP> ANY "OPTIONAL" ANY) TMPS6 LOC7>
+                   <OPT-DISPATCH 1 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP9 L8:LIST>
+                   <INTGO>
+                   <GEN-LVAL 'ALL-TEMPS-LIST = L8>
+                   <LOOP>
+AGAIN15
+                   <INTGO>
+                   <EMPL? L8 - PHRASE20 (TYPE LIST)>
+                   <TYPE? LOC7 <TYPE-CODE FALSE> + PHRASE19>
+                   <RETURN ()>
+PHRASE19
+                   <FRAME '\1aCOMPILE-LOSSAGE>
+                   <PUSH "Bad frame model">
+                   <CALL '\1aCOMPILE-LOSSAGE 1>
+PHRASE20
+                   <NTHL L8 1 = TEMP9 (TYPE LIST)>
+                   <NTHL TEMP9 1 = TEMP9 (TYPE FORM)>
+                   <EQUAL? TEMP9 TMPS6 + PHRASE23>
+                   <DEAD TEMP9>
+                   <RESTL L8 1 = L8 (TYPE LIST)>
+                   <JUMP + AGAIN15>
+PHRASE23
+                   <TYPE? LOC7 <TYPE-CODE FALSE> + PHRASE27>
+                   <DEAD LOC7>
+                   <NTHL L8 1 = TEMP9 (TYPE LIST)>
+                   <DEAD L8>
+                   <RETURN TEMP9>
+                   <DEAD TEMP9>
+PHRASE27
+                   <NTHL L8 1 = TEMP9 (TYPE LIST)>
+                   <DEAD L8>
+                   <RESTL TEMP9 1 = TEMP9 (TYPE LIST)>
+                   <RESTL TEMP9 1 = TEMP9 (TYPE LIST)>
+                   <RESTL TEMP9 1 = TEMP9 (TYPE LIST)>
+                   <NTHL TEMP9 1 = TEMP9 (TYPE TEMP)>
+                   <RETURN TEMP9>
+                   <DEAD TEMP9>
+                   <END \1aFIND-FRAME>
+#WORD *15473032434*
+<GFCN \1aUSE-TEMP ("VALUE" TEMP TEMP "OPTIONAL" ANY ANY) TMP7 TY8 INIT9>
+                   <OPT-DISPATCH 1 %<> OPT4 OPT5 OPT6>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <PUSH #T$UNBOUND 0>
+OPT6
+                   <TEMP NM10 TEMP15 TEMP18 L11>
+                   <INTGO>
+                   <NTHUV TMP7 1 = NM10 (TYPE ATOM)>
+                   <NTHUV TMP7 4 = TEMP15>
+                   <TYPE? TEMP15 <TYPE-CODE FALSE> - PHRASE14>
+                   <DEAD TEMP15>
+                   <NTHUV TMP7 3 = TEMP15>
+                   <GEN-LVAL 'TMPS = TEMP18>
+                   <EQUAL? TEMP15 TEMP18 - PHRASE17>
+                   <DEAD TEMP15 TEMP18>
+                   <GEN-LVAL 'TMPS-NEXT = TEMP18>
+                   <CONS NM10 () = TEMP15>
+                   <DEAD NM10>
+                   <GEN-SET 'TMPS-NEXT TEMP15>
+                   <PUTREST TEMP18 TEMP15>
+                   <DEAD TEMP18 TEMP15>
+                   <JUMP + PHRASE25>
+PHRASE17
+                   <FRAME '\1aFIND-FRAME>
+                   <NTHUV TMP7 3 = STACK>
+                   <PUSH 'T>
+                   <CALL '\1aFIND-FRAME 2 = L11>
+                   <EMPTY? L11 - PHRASE28>
+                   <FRAME '\1aCOMPILE-LOSSAGE>
+                   <PUSH "Bad frame model">
+                   <CALL '\1aCOMPILE-LOSSAGE 1>
+PHRASE28
+                   <RESTL L11 1 = TEMP18 (TYPE LIST)>
+                   <NTHL TEMP18 1 = TEMP18>
+                   <CONS NM10 () = TEMP15>
+                   <DEAD NM10>
+                   <RESTL L11 1 = NM10 (TYPE LIST)>
+                   <PUTL NM10 1 TEMP15>
+                   <DEAD NM10 TEMP15>
+                   <RESTL L11 1 = NM10 (TYPE LIST)>
+                   <DEAD L11>
+                   <NTHL NM10 1 = NM10 (TYPE LIST)>
+                   <PUTREST TEMP18 NM10>
+                   <DEAD TEMP18 NM10>
+PHRASE25
+                   <PUTUV TMP7 4 'T>
+PHRASE14
+                   <TYPE? TY8 <TYPE-CODE FALSE> + PHRASE32>
+                   <NTHUV TMP7 6 = TEMP18>
+                   <TYPE? TEMP18 <TYPE-CODE FALSE> + PHRASE32>
+                   <DEAD TEMP18>
+                   <FRAME '\1aISTYPE?>
+                   <FRAME '\1aTYPE-MERGE>
+                   <NTHUV TMP7 6 = STACK>
+                   <PUSH TY8>
+                   <DEAD TY8>
+                   <CALL '\1aTYPE-MERGE 2 = STACK>
+                   <CALL '\1aISTYPE? 1 = TEMP18>
+                   <PUTUV TMP7 6 TEMP18>
+                   <DEAD TEMP18>
+                   <JUMP + PHRASE36>
+PHRASE32
+                   <TYPE? TY8 <TYPE-CODE FALSE> - PHRASE36>
+                   <DEAD TY8>
+                   <PUTUV TMP7 6 %<>>
+PHRASE36
+                   <NTHUV TMP7 2 = TEMP18 (TYPE FIX)>
+                   <ADD TEMP18 1 = TEMP18 (TYPE FIX)>
+                   <PUTUV TMP7 2 TEMP18 (TYPE FIX)>
+                   <DEAD TEMP18>
+                   <RETURN TMP7>
+                   <DEAD TMP7>
+                   <END \1aUSE-TEMP>
+#WORD *10040600577*
+<GFCN \1aFREE-TEMP ("VALUE" ANY ANY "OPTIONAL" ANY) TMP6 KILL7>
+                   <OPT-DISPATCH 1 %<> OPT4 OPT5>
+OPT4
+                   <PUSH 'T>
+OPT5
+                   <TEMP REFS8 TEMP26 L9 TEMP45>
+                   <INTGO>
+                   <TYPE? TMP6 <TYPE-CODE TEMP> - PHRASE54>
+                   <NTHUV TMP6 2 = REFS8 (TYPE FIX)>
+                   <SUB REFS8 1 = REFS8 (TYPE FIX)>
+                   <LESS? REFS8 0 - TAG13>
+                   <SET REFS8 0 (TYPE FIX)>
+TAG13
+                   <PUTUV TMP6 2 REFS8 (TYPE FIX)>
+                   <VEQUAL? REFS8 0 - PHRASE54 (TYPE FIX)>
+                   <DEAD REFS8>
+                   <NTHUV TMP6 5 = REFS8>
+                   <TYPE? REFS8 <TYPE-CODE FALSE> - PHRASE39>
+                   <DEAD REFS8>
+                   <GEN-LVAL 'TMPS = REFS8>
+                   <NTHUV TMP6 3 = TEMP26>
+                   <EQUAL? REFS8 TEMP26 - PHRASE22>
+                   <DEAD REFS8 TEMP26>
+                   <GEN-LVAL 'FREE-TEMPS = TEMP26>
+                   <EMPL? TEMP26 + TAG27>
+                   <LOOP (TMP6 VALUE) (TEMP26 VALUE)>
+TAG28
+                   <NTHL TEMP26 1 = REFS8>
+                   <TYPE? REFS8 <TYPE-CODE TEMP> - TAG29>
+                   <VEQUAL? REFS8 TMP6 + PHRASE22>
+                   <DEAD REFS8>
+TAG29
+                   <RESTL TEMP26 1 = TEMP26 (TYPE LIST)>
+                   <EMPL? TEMP26 - TAG28>
+TAG27
+                   <GEN-LVAL 'FREE-TEMPS = TEMP26>
+                   <CONS TMP6 TEMP26 = TEMP26>
+                   <GEN-SET 'FREE-TEMPS TEMP26>
+                   <DEAD TEMP26>
+                   <JUMP + PHRASE39>
+PHRASE22
+                   <FRAME '\1aFIND-FRAME>
+                   <NTHUV TMP6 3 = STACK>
+                   <PUSH 'T>
+                   <CALL '\1aFIND-FRAME 2 = L9>
+                   <EMPL? L9 + PHRASE39 (TYPE LIST)>
+                   <RESTL L9 1 = TEMP26 (TYPE LIST)>
+                   <RESTL TEMP26 1 = TEMP26 (TYPE LIST)>
+                   <NTHL TEMP26 1 = TEMP26>
+                   <EMPTY? TEMP26 + TAG41>
+                   <LOOP (TMP6 VALUE) (TEMP26 LENGTH VALUE TYPE)>
+TAG42
+                   <NTH1 TEMP26 = REFS8>
+                   <TYPE? REFS8 <TYPE-CODE TEMP> - TAG43>
+                   <VEQUAL? REFS8 TMP6 + PHRASE39>
+                   <DEAD REFS8>
+TAG43
+                   <REST1 TEMP26 = TEMP26>
+                   <EMPTY? TEMP26 - TAG42>
+TAG41
+                   <PUSH TMP6>
+                   <SET REFS8 1 (TYPE FIX)>
+                   <RESTL L9 1 = TEMP45 (TYPE LIST)>
+                   <RESTL TEMP45 1 = TEMP45 (TYPE LIST)>
+                   <NTHL TEMP45 1 = TEMP26>
+                   <DEAD TEMP45>
+                   <TYPE TEMP26 = TEMP45>
+                   <AND TEMP45 7 = TEMP45>
+                   <VEQUAL? TEMP45 1 + TAG46>
+                   <DEAD TEMP45>
+                   <LOOP (TEMP26 TYPE VALUE LENGTH) (REFS8 VALUE)>
+TAG52
+                   <INTGO>
+                   <EMPTY? TEMP26 + TAG51>
+                   <NTH1 TEMP26 = STACK>
+                   <REST1 TEMP26 = TEMP26>
+                   <ADD REFS8 1 = REFS8 (TYPE FIX)>
+                   <JUMP + TAG52>
+TAG51
+                   <LIST REFS8 = TEMP45 (TYPE LIST)>
+                   <DEAD REFS8>
+                   <JUMP + TAG47>
+TAG46
+                   <LOOP>
+TAG49
+                   <VEQUAL? REFS8 0 + TAG48>
+                   <POP = TEMP45>
+                   <CONS TEMP45 TEMP26 = TEMP26 (TYPE LIST)>
+                   <DEAD TEMP45>
+                   <SUB REFS8 1 = REFS8 (TYPE FIX)>
+                   <JUMP + TAG49>
+TAG48
+                   <SET TEMP45 TEMP26>
+                   <DEAD TEMP26>
+TAG47
+                   <RESTL L9 1 = TEMP26 (TYPE LIST)>
+                   <DEAD L9>
+                   <RESTL TEMP26 1 = TEMP26 (TYPE LIST)>
+                   <PUTL TEMP26 1 TEMP45>
+                   <DEAD TEMP26 TEMP45>
+PHRASE39
+                   <TYPE? KILL7 <TYPE-CODE FALSE> + PHRASE54>
+                   <DEAD KILL7>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`DEAD>
+                   <NTHUV TMP6 1 = STACK (TYPE ATOM)>
+                   <CALL '\1aIEMIT 2>
+PHRASE54
+                   <RETURN TMP6>
+                   <DEAD TMP6>
+                   <END \1aFREE-TEMP>
+#WORD *12645462404*
+<GFCN \1aDEALLOCATE-TEMP ("VALUE" ANY ANY) TMP4>
+                   <TEMP REFS5:FIX>
+                   <INTGO>
+                   <TYPE? TMP4 <TYPE-CODE TEMP> - PHRASE7>
+                   <NTHUV TMP4 2 = REFS5 (TYPE FIX)>
+                   <SUB REFS5 1 = REFS5 (TYPE FIX)>
+                   <LESS? REFS5 0 - TAG9>
+                   <SET REFS5 0 (TYPE FIX)>
+TAG9
+                   <PUTUV TMP4 2 REFS5 (TYPE FIX)>
+                   <DEAD REFS5>
+PHRASE7
+                   <RETURN TMP4>
+                   <DEAD TMP4>
+                   <END \1aDEALLOCATE-TEMP>
+"Generate a unique atom for label, temp name, var name etc."
+
+#WORD *2366522673*
+<GFCN \1aMAKE-TAG ("VALUE" ANY "OPTIONAL" <OR ATOM STRING>) S6>
+                   <OPT-DISPATCH 0 %<> OPT4 OPT5>
+OPT4
+                   <PUSH "TAG">
+OPT5
+                   <TEMP TEMP13 TC8:STRING>
+                   <INTGO>
+                   <TYPE? S6 <TYPE-CODE ATOM> - PHRASE10>
+                   <NTHR S6 3 = S6 (RECORD-TYPE ATOM)>
+PHRASE10
+                   <FRAME '\1aUNPARSE>
+                   <FRAME '\1a+>
+                   <GEN-LVAL 'TAG-COUNT = STACK>
+                   <PUSH 1>
+                   <CALL '\1a+ 2 = TEMP13>
+                   <GEN-SET 'TAG-COUNT TEMP13>
+                   <PUSH TEMP13>
+                   <DEAD TEMP13>
+                   <CALL '\1aUNPARSE 1 = TC8>
+                   <LENUS S6 = TEMP13 (TYPE FIX)>
+                   <NTHUS S6 TEMP13 = TEMP13 (TYPE CHARACTER)>
+                   <SUB TEMP13 48 = TEMP13 (TYPE FIX)>
+                   <LESS? TEMP13 0 + PHRASE20 (TYPE FIX)>
+                   <GRTR? TEMP13 9 + PHRASE20 (TYPE FIX)>
+                   <DEAD TEMP13>
+                   <PUSH S6>
+                   <DEAD S6>
+                   <PUSH "-">
+                   <PUSH TC8>
+                   <DEAD TC8>
+                   <UBLOCK <TYPE-CODE STRING> 3 = S6 (TYPE STRING)>
+                   <JUMP + PHRASE26>
+PHRASE20
+                   <PUSH S6>
+                   <DEAD S6>
+                   <PUSH TC8>
+                   <DEAD TC8>
+                   <UBLOCK <TYPE-CODE STRING> 2 = S6 (TYPE STRING)>
+PHRASE26
+                   <FRAME '\1aLOOKUP>
+                   <PUSH S6>
+                   <GVAL 'TMP-OBL = STACK>
+                   <CALL '\1aLOOKUP 2 = TEMP13>
+                   <TYPE? TEMP13 <TYPE-CODE FALSE> - BOOL28>
+                   <FRAME '\1aINSERT>
+                   <PUSH S6>
+                   <DEAD S6>
+                   <GVAL 'TMP-OBL = STACK>
+                   <CALL '\1aINSERT 2 = TEMP13>
+BOOL28
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+                   <END \1aMAKE-TAG>
+"Add an instruction to the output code"
+
+#WORD *23303111155*
+<GFCN \1aEMIT ("VALUE" <LIST ANY> ANY) THING4>
+                   <TEMP TEMP5 TEMP9>
+                   <INTGO>
+                   <GEN-LVAL 'CODE-PTR = TEMP5>
+                   <GEN-LVAL 'CODE-PTR = TEMP9>
+                   <RESTL TEMP9 1 = TEMP9 (TYPE LIST)>
+                   <CONS THING4 TEMP9 = TEMP9>
+                   <DEAD THING4>
+                   <GEN-SET 'CODE-PTR TEMP9>
+                   <PUTREST TEMP5 TEMP9>
+                   <DEAD TEMP9>
+                   <RETURN TEMP5>
+                   <DEAD TEMP5>
+                   <END \1aEMIT>
+<SETG INSTRUCTION ,FORM>
+
+#WORD *2764054272*
+<GFCN \1aIEMIT ("VALUE" ATOM "TUPLE" ANY)>
+                   <MAKTUP X4 = X4>
+                   <INTGO>
+                   <FRAME '\1aREAL-IEMIT>
+                   <PUSH %<>>
+                   <PUSH X4>
+                   <DEAD X4>
+                   <CALL '\1aREAL-IEMIT 2 = X4>
+                   <RETURN X4>
+                   <DEAD X4>
+                   <END \1aIEMIT>
+#WORD *5532060232*
+<GFCN \1aSPEC-IEMIT ("VALUE" ATOM "TUPLE" ANY)>
+                   <MAKTUP X4 = X4>
+                   <INTGO>
+                   <FRAME '\1aREAL-IEMIT>
+                   <PUSH 'T>
+                   <PUSH X4>
+                   <DEAD X4>
+                   <CALL '\1aREAL-IEMIT 2 = X4>
+                   <RETURN X4>
+                   <DEAD X4>
+                   <END \1aSPEC-IEMIT>
+#WORD *33617404344*
+<GFCN \1aREAL-IEMIT ("VALUE" ATOM ANY <TUPLE ANY>) SKIP-DEAD4 X5>
+                   <TEMP (DEAD-TEMPS6:LIST ()) INS7 (PAST=8 %<>) (DO-LATER-SETRL10 %<>) (FREED-TEMPS11:LIST ()) TEMP17 XP29:VECTOR Y30 TEMP36 TEMP41 FOR-SETRL9>
+                   <INTGO>
+                   <NTHUV X5 1 = INS7>
+                   <RESTUV X5 1 = TEMP17 (TYPE VECTOR)>
+                   <CHTYPE TEMP17 <TYPE-CODE VECTOR> = TEMP17>
+                   <EMPUV? TEMP17 + MAPAP22 (TYPE VECTOR)>
+                   <DEAD TEMP17>
+                   <RESTUV X5 1 = TEMP17 (TYPE VECTOR)>
+                   <CHTYPE TEMP17 <TYPE-CODE VECTOR> = TEMP17>
+                   <EMPUV? TEMP17 + PHRASE80>
+                   <LOOP>
+MAP19
+                   <INTGO>
+                   <EMPUV? TEMP17 + MAPAP22>
+                   <SET XP29 TEMP17>
+                   <NTHUV XP29 1 = Y30>
+                   <EQUAL? Y30 '= - PHRASE33>
+                   <SET PAST=8 'T (TYPE ATOM)>
+PHRASE33
+                   <TYPE? Y30 <TYPE-CODE MIM-SPECIAL> - PHRASE35>
+                   <CHTYPE Y30 <TYPE-CODE ATOM> = TEMP36>
+                   <DEAD Y30>
+                   <PUTUV XP29 1 TEMP36>
+                   <DEAD XP29 TEMP36>
+                   <JUMP + PHRASE67>
+PHRASE35
+                   <TYPE? Y30 <TYPE-CODE TEMP> - PHRASE37>
+                   <NTHUV Y30 3 = TEMP36>
+                   <GEN-LVAL 'TMPS = TEMP41>
+                   <EQUAL? TEMP36 TEMP41 + PHRASE39>
+                   <DEAD TEMP36 TEMP41>
+                   <EQUAL? INS7 '`SETRL - BOOL44>
+                   <RESTUV X5 2 = TEMP41 (TYPE VECTOR)>
+                   <CHTYPE TEMP41 <TYPE-CODE VECTOR> = TEMP41>
+                   <VEQUAL? TEMP41 XP29 + PHRASE39>
+                   <DEAD TEMP41>
+BOOL44
+                   <EQUAL? INS7 '`SET - PHRASE46>
+                   <RESTUV X5 1 = TEMP41 (TYPE VECTOR)>
+                   <CHTYPE TEMP41 <TYPE-CODE VECTOR> = TEMP41>
+                   <VEQUAL? TEMP41 XP29 - PHRASE48>
+                   <DEAD TEMP41>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SETRL>
+                   <FRAME '\1aFIND-FRAME>
+                   <NTHUV Y30 3 = STACK>
+                   <CALL '\1aFIND-FRAME 1 = STACK>
+                   <NTHUV Y30 1 = STACK (TYPE ATOM)>
+                   <DEAD Y30>
+                   <NTHUV XP29 2 = STACK>
+                   <DEAD XP29>
+                   <SET TEMP36 4 (TYPE FIX)>
+                   <RESTUV X5 3 = TEMP41 (TYPE VECTOR)>
+                   <DEAD X5>
+                   <CHTYPE TEMP41 <TYPE-CODE VECTOR> = TEMP41>
+                   <LOOP (TEMP41 VALUE LENGTH) (TEMP36 VALUE)>
+TAG51
+                   <INTGO>
+                   <EMPUV? TEMP41 + TAG49>
+                   <NTHUV TEMP41 1 = STACK>
+                   <RESTUV TEMP41 1 = TEMP41 (TYPE VECTOR)>
+                   <ADD TEMP36 1 = TEMP36 (TYPE FIX)>
+                   <JUMP + TAG51>
+TAG49
+                   <CALL '\1aIEMIT TEMP36>
+                   <DEAD TEMP36>
+                   <JUMP + PHRASE80>
+PHRASE48
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SETLR>
+                   <NTHUV X5 2 = STACK>
+                   <FRAME '\1aFIND-FRAME>
+                   <NTHUV Y30 3 = STACK>
+                   <CALL '\1aFIND-FRAME 1 = STACK>
+                   <NTHUV Y30 1 = STACK (TYPE ATOM)>
+                   <DEAD Y30>
+                   <SET TEMP41 4 (TYPE FIX)>
+                   <RESTUV X5 3 = TEMP36 (TYPE VECTOR)>
+                   <DEAD X5>
+                   <CHTYPE TEMP36 <TYPE-CODE VECTOR> = TEMP36>
+                   <LOOP (TEMP36 VALUE LENGTH) (TEMP41 VALUE)>
+TAG56
+                   <INTGO>
+                   <EMPUV? TEMP36 + TAG54>
+                   <NTHUV TEMP36 1 = STACK>
+                   <RESTUV TEMP36 1 = TEMP36 (TYPE VECTOR)>
+                   <ADD TEMP41 1 = TEMP41 (TYPE FIX)>
+                   <JUMP + TAG56>
+TAG54
+                   <CALL '\1aIEMIT TEMP41>
+                   <DEAD TEMP41>
+                   <JUMP + PHRASE80>
+PHRASE46
+                   <VEQUAL? PAST=8 0 - PHRASE58>
+                   <FRAME '\1aLOOP-FRAME>
+                   <PUSH Y30>
+                   <CALL '\1aLOOP-FRAME 1 = TEMP36>
+                   <CONS TEMP36 () = TEMP41>
+                   <PUTREST TEMP41 FREED-TEMPS11>
+                   <DEAD FREED-TEMPS11>
+                   <SET FREED-TEMPS11 TEMP41>
+                   <DEAD TEMP41>
+                   <NTHUV TEMP36 1 = TEMP41 (TYPE ATOM)>
+                   <CONS TEMP41 DEAD-TEMPS6 = DEAD-TEMPS6>
+                   <DEAD TEMP41>
+                   <JUMP + PHRASE62>
+PHRASE58
+                   <FRAME '\1aGEN-TEMP>
+                   <CALL '\1aGEN-TEMP 0 = DO-LATER-SETRL10>
+                   <SET TEMP36 DO-LATER-SETRL10>
+                   <SET FOR-SETRL9 Y30>
+                   <JUMP + PHRASE62>
+PHRASE39
+                   <SET TEMP36 Y30>
+PHRASE62
+                   <NTHUV TEMP36 1 = TEMP41 (TYPE ATOM)>
+                   <DEAD TEMP36>
+                   <PUTUV XP29 1 TEMP41>
+                   <DEAD XP29 TEMP41>
+                   <NTHUV Y30 2 = TEMP41 (TYPE FIX)>
+                   <VEQUAL? TEMP41 0 - PHRASE67 (TYPE FIX)>
+                   <DEAD TEMP41>
+                   <NTHUV Y30 1 = TEMP41 (TYPE ATOM)>
+                   <DEAD Y30>
+                   <CONS TEMP41 DEAD-TEMPS6 = DEAD-TEMPS6>
+                   <DEAD TEMP41>
+                   <JUMP + PHRASE67>
+PHRASE37
+                   <TYPE? Y30 <TYPE-CODE ATOM> - PHRASE67>
+                   <VEQUAL? Y30 '= + PHRASE67>
+                   <VEQUAL? Y30 '+ + PHRASE67>
+                   <VEQUAL? Y30 '- + PHRASE67>
+                   <VEQUAL? Y30 '`COMPERR + PHRASE67>
+                   <VEQUAL? Y30 '`UNWCONT + PHRASE67>
+                   <GVAL 'POP-STACK = TEMP41>
+                   <EQUAL? TEMP41 Y30 + PHRASE67>
+                   <DEAD TEMP41>
+                   <NTHR Y30 4 = TEMP41 (RECORD-TYPE ATOM)>
+                   <GVAL 'TMP-OBL = TEMP36>
+                   <EQUAL? TEMP41 TEMP36 + PHRASE67>
+                   <DEAD TEMP41 TEMP36>
+                   <FRAME '\1aFORM>
+                   <PUSH 'QUOTE>
+                   <PUSH Y30>
+                   <DEAD Y30>
+                   <CALL '\1aFORM 2 = TEMP36>
+                   <PUTUV XP29 1 TEMP36>
+                   <DEAD XP29 TEMP36>
+PHRASE67
+                   <RESTUV TEMP17 1 = TEMP17 (TYPE VECTOR)>
+                   <JUMP + MAP19>
+MAPAP22
+                   <FRAME '\1aINSTRUCTION>
+                   <PUSH INS7>
+                   <DEAD INS7>
+                   <SET INS7 1 (TYPE FIX)>
+                   <RESTUV X5 1 = TEMP17 (TYPE VECTOR)>
+                   <DEAD X5>
+                   <CHTYPE TEMP17 <TYPE-CODE VECTOR> = TEMP17>
+                   <LOOP (TEMP17 VALUE LENGTH) (INS7 VALUE)>
+TAG71
+                   <INTGO>
+                   <EMPUV? TEMP17 + TAG70>
+                   <NTHUV TEMP17 1 = STACK>
+                   <RESTUV TEMP17 1 = TEMP17 (TYPE VECTOR)>
+                   <ADD INS7 1 = INS7 (TYPE FIX)>
+                   <JUMP + TAG71>
+TAG70
+                   <CALL '\1aINSTRUCTION INS7 = INS7>
+                   <TYPE? SKIP-DEAD4 <TYPE-CODE FALSE> + PHRASE74>
+                   <DEAD SKIP-DEAD4>
+                   <GEN-LVAL 'CODE-PTR = PAST=8>
+                   <NTHL PAST=8 1 = Y30>
+                   <TYPE? Y30 <TYPE-CODE FORM> - PHRASE74>
+                   <EMPL? Y30 + PHRASE74 (TYPE FORM)>
+                   <NTHL Y30 1 = TEMP17>
+                   <EQUAL? TEMP17 '`DEAD - PHRASE74>
+                   <DEAD TEMP17>
+                   <PUTL PAST=8 1 INS7 (TYPE FORM)>
+                   <DEAD PAST=8 INS7>
+                   <SET INS7 Y30>
+                   <DEAD Y30>
+PHRASE74
+                   <FRAME '\1aEMIT>
+                   <PUSH INS7>
+                   <DEAD INS7>
+                   <CALL '\1aEMIT 1>
+                   <TYPE? DO-LATER-SETRL10 <TYPE-CODE FALSE> + PHRASE80>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SETRL>
+                   <FRAME '\1aFIND-FRAME>
+                   <NTHUV FOR-SETRL9 3 = STACK>
+                   <CALL '\1aFIND-FRAME 1 = STACK>
+                   <NTHUV FOR-SETRL9 1 = STACK (TYPE ATOM)>
+                   <DEAD FOR-SETRL9>
+                   <PUSH DO-LATER-SETRL10>
+                   <DEAD DO-LATER-SETRL10>
+                   <CALL '\1aIEMIT 4>
+PHRASE80
+                   <SET TEMP17 FREED-TEMPS11 (TYPE LIST)>
+                   <DEAD FREED-TEMPS11>
+                   <LOOP>
+MAP84
+                   <INTGO>
+                   <EMPL? TEMP17 + MAPAP87>
+                   <NTHL TEMP17 1 = INS7>
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH INS7>
+                   <DEAD INS7>
+                   <PUSH %<>>
+                   <CALL '\1aFREE-TEMP 2>
+                   <RESTL TEMP17 1 = TEMP17 (TYPE LIST)>
+                   <JUMP + MAP84>
+MAPAP87
+                   <EMPL? DEAD-TEMPS6 + PHRASE93 (TYPE LIST)>
+                   <FRAME '\1aEMIT>
+                   <CONS '`DEAD DEAD-TEMPS6 = DEAD-TEMPS6>
+                   <CHTYPE DEAD-TEMPS6 <TYPE-CODE FORM> = STACK>
+                   <DEAD DEAD-TEMPS6>
+                   <CALL '\1aEMIT 1>
+PHRASE93
+                   <RETURN 'T>
+                   <END \1aREAL-IEMIT>
+#WORD *30616176143*
+<GFCN \1aLOOP-FRAME ("VALUE" STRUCTURED ANY "OPTIONAL" ANY ANY) TMP7 LTMP8 TNAME9>
+                   <OPT-DISPATCH 1 %<> OPT4 OPT5 OPT6>
+OPT4
+                   <PUSH #T$UNBOUND 0>
+OPT5
+                   <PUSH #T$UNBOUND 0>
+OPT6
+                   <TEMP TEMP16 XTMP10 TEMP3:LBIND TEMP25>
+                   <INTGO>
+                   <TYPE? TNAME9 <TYPE-CODE UNBOUND> - TAG13>
+                   <FRAME '\1aNTH>
+                   <GEN-LVAL 'ALL-TEMPS-LIST = TEMP16>
+                   <NTH1 TEMP16 = STACK>
+                   <DEAD TEMP16>
+                   <PUSH 4>
+                   <CALL '\1aNTH 2 = TEMP16>
+                   <NTHUV TEMP16 1 = TNAME9 (TYPE ATOM)>
+                   <DEAD TEMP16>
+TAG13
+                   <TYPE? LTMP8 <TYPE-CODE UNBOUND> + PHRASE20>
+                   <SET XTMP10 LTMP8>
+                   <DEAD LTMP8>
+                   <JUMP + PHRASE21>
+PHRASE20
+                   <FRAME '\1aGEN-TEMP>
+                   <CALL '\1aGEN-TEMP 0 = XTMP10>
+PHRASE21
+                   <GETS 'BIND = TEMP3 (TYPE LBIND)>
+                   <GEN-LVAL 'ALL-TEMPS-LIST = TEMP16>
+                   <NTH1 TEMP16 = TEMP16>
+                   <NTH1 TEMP16 = TEMP16>
+                   <BBIND 'TMPS 'FORM 'FIX TEMP16>
+                   <DEAD TEMP16>
+                   <GEN-LVAL 'ALL-TEMPS-LIST = TEMP25>
+                   <RESTL TEMP25 1 = TEMP16 (TYPE LIST)>
+                   <DEAD TEMP25>
+                   <CHTYPE TEMP16 <TYPE-CODE LIST> = TEMP16>
+                   <BBIND 'ALL-TEMPS-LIST <LIST [REST <LIST FORM LIST LIST TEMP>]> 'FIX TEMP16>
+                   <DEAD TEMP16>
+                   <NTHUV TMP7 3 = TEMP16>
+                   <NTHR 'TMPS 2 = TEMP25 (RECORD-TYPE ATOM) (TYPE LBIND)>
+                   <NTHR TEMP25 1 = TEMP25 (RECORD-TYPE LBIND)>
+                   <EQUAL? TEMP16 TEMP25 + PHRASE29>
+                   <DEAD TEMP16 TEMP25>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SETLR>
+                   <NTHUV XTMP10 1 = STACK (TYPE ATOM)>
+                   <PUSH TNAME9>
+                   <DEAD TNAME9>
+                   <NTHR 'ALL-TEMPS-LIST 2 = TEMP25 (RECORD-TYPE ATOM) (TYPE LBIND)>
+                   <NTHR TEMP25 1 = TEMP25 (RECORD-TYPE LBIND)>
+                   <NTHL TEMP25 1 = TEMP25 (TYPE LIST)>
+                   <RESTL TEMP25 1 = TEMP25 (TYPE LIST)>
+                   <RESTL TEMP25 1 = TEMP25 (TYPE LIST)>
+                   <RESTL TEMP25 1 = TEMP25 (TYPE LIST)>
+                   <NTHL TEMP25 1 = TEMP25 (TYPE TEMP)>
+                   <NTHUV TEMP25 1 = STACK (TYPE ATOM)>
+                   <DEAD TEMP25>
+                   <CALL '\1aIEMIT 4>
+                   <FRAME '\1aLOOP-FRAME>
+                   <PUSH TMP7>
+                   <DEAD TMP7>
+                   <PUSH XTMP10>
+                   <NTHUV XTMP10 1 = STACK (TYPE ATOM)>
+                   <CALL '\1aLOOP-FRAME 3>
+                   <JUMP + PHRASE36>
+PHRASE29
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SETLR>
+                   <NTHUV XTMP10 1 = STACK (TYPE ATOM)>
+                   <PUSH TNAME9>
+                   <DEAD TNAME9>
+                   <NTHUV TMP7 1 = STACK (TYPE ATOM)>
+                   <DEAD TMP7>
+                   <CALL '\1aIEMIT 4>
+PHRASE36
+                   <UNBIND TEMP3>
+                   <DEAD TEMP3>
+                   <ADJ -18>
+                   <RETURN XTMP10>
+                   <DEAD XTMP10>
+                   <END \1aLOOP-FRAME>
+"Generate a label in the code"
+
+#WORD *24140542543*
+<GFCN \1aLABEL-TAG ("VALUE" <LIST ANY> ANY) TG4>
+                   <TEMP TEMP6:LIST>
+                   <INTGO>
+                   <FRAME '\1aEMIT>
+                   <PUSH TG4>
+                   <DEAD TG4>
+                   <CALL '\1aEMIT 1 = TEMP6>
+                   <RETURN TEMP6>
+                   <DEAD TEMP6>
+                   <END \1aLABEL-TAG>
+"Generate jump to label"
+
+#WORD *17601046251*
+<GFCN \1aBRANCH-TAG ("VALUE" ATOM ANY) TG4>
+                   <TEMP TEMP6:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`JUMP>
+                   <PUSH '+>
+                   <PUSH TG4>
+                   <DEAD TG4>
+                   <CALL '\1aIEMIT 3 = TEMP6>
+                   <RETURN TEMP6>
+                   <DEAD TEMP6>
+                   <END \1aBRANCH-TAG>
+"Generate code to PUSH something onto stack.  It can be called with various
+ arguments:
+       1) #TEMP - refernce to a named temporary
+       3) #MIM-SPECIAL atom - MIM special variable
+       4) other - quoted object "
+
+#WORD *34706603760*
+<GFCN \1aPUSH ("VALUE" ANY ANY) ITM4>
+                   <TEMP TEMP10>
+                   <INTGO>
+                   <TYPE? ITM4 <TYPE-CODE MIM-SPECIAL> - PHRASE6>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`PUSH>
+                   <CHTYPE ITM4 <TYPE-CODE ATOM> = STACK>
+                   <DEAD ITM4>
+                   <CALL '\1aIEMIT 2>
+                   <JUMP + PHRASE11>
+PHRASE6
+                   <TYPE? ITM4 <TYPE-CODE TEMP> - PHRASE8>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`PUSH>
+                   <PUSH ITM4>
+                   <DEAD ITM4>
+                   <CALL '\1aIEMIT 2>
+                   <JUMP + PHRASE11>
+PHRASE8
+                   <GVAL 'POP-STACK = TEMP10>
+                   <EQUAL? TEMP10 ITM4 + PHRASE11>
+                   <DEAD TEMP10>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`PUSH>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH ITM4>
+                   <DEAD ITM4>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <CALL '\1aIEMIT 2>
+PHRASE11
+                   <GVAL 'TOP-STACK = TEMP10>
+                   <RETURN TEMP10>
+                   <DEAD TEMP10>
+                   <END \1aPUSH>
+#WORD *15206262434*
+<GFCN \1aPOP ("VALUE" ANY ANY) ITM4>
+                   <TEMP TEMP12>
+                   <INTGO>
+                   <TYPE? ITM4 <TYPE-CODE TEMP> - PHRASE6>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`POP>
+                   <PUSH '=>
+                   <NTHUV ITM4 1 = STACK (TYPE ATOM)>
+                   <CALL '\1aIEMIT 3>
+                   <RETURN ITM4>
+                   <DEAD ITM4>
+PHRASE6
+                   <EQUAL? ITM4 'FLUSHED - PHRASE8>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`ADJ>
+                   <PUSH -2>
+                   <CALL '\1aIEMIT 2>
+                   <RETURN ITM4>
+                   <DEAD ITM4>
+PHRASE8
+                   <GVAL 'TOP-STACK = TEMP12>
+                   <EQUAL? TEMP12 ITM4 + PHRASE10>
+                   <DEAD TEMP12>
+                   <EQUAL? ITM4 'DONT-CARE + PHRASE10>
+                   <FRAME '\1aCOMPILE-LOSSAGE>
+                   <PUSH "Bad arg to POP">
+                   <PUSH ITM4>
+                   <CALL '\1aCOMPILE-LOSSAGE 2>
+                   <RETURN ITM4>
+                   <DEAD ITM4>
+PHRASE10
+                   <GVAL 'POP-STACK = ITM4>
+                   <RETURN ITM4>
+                   <DEAD ITM4>
+                   <END \1aPOP>
+#WORD *25060761075*
+<GFCN \1aPUSH-CONSTANT ("VALUE" ANY ANY) X4>
+                   <TEMP TEMP7>
+                   <INTGO>
+                   <FRAME '\1aPUSH>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH X4>
+                   <DEAD X4>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <CALL '\1aPUSH 1 = TEMP7>
+                   <RETURN TEMP7>
+                   <DEAD TEMP7>
+                   <END \1aPUSH-CONSTANT>
+" Generate FIXBIND to wrap bindings pending by linking up atoms."
+
+#WORD *1720700340*
+<GFCN \1aGEN-FIX-BIND ("VALUE" ATOM)>
+                   <TEMP TEMP5:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`FIXBIND>
+                   <CALL '\1aIEMIT 1 = TEMP5>
+                   <RETURN TEMP5>
+                   <DEAD TEMP5>
+                   <END \1aGEN-FIX-BIND>
+" Generate code for optional arguments."
+
+#WORD *24743654350*
+<GFCN \1aGEN-ARG-NUM ("VALUE" ATOM FIX) N4>
+                   <TEMP TEMP6:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`ARGNUM>
+                   <PUSH N4>
+                   <DEAD N4>
+                   <CALL '\1aIEMIT 2 = TEMP6>
+                   <RETURN TEMP6>
+                   <DEAD TEMP6>
+                   <END \1aGEN-ARG-NUM>
+#WORD *36751331051*
+<GFCN \1aSPECIAL-BINDING ("VALUE" ATOM ANY ANY "OPTIONAL" ANY) SYM6 FIXB7 INIT8>
+                   <OPT-DISPATCH 2 %<> OPT4 OPT5>
+OPT4
+                   <PUSH #T$UNBOUND 0>
+OPT5
+                   <TEMP TEMP16>
+                   <INTGO>
+                   <TYPE? INIT8 <TYPE-CODE UNBOUND> + PHRASE10>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`BBIND>
+                   <FRAME '\1aATOMCHK>
+                   <NTHUV SYM6 2 = STACK (TYPE ATOM)>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <FRAME '\1aATOMCHK>
+                   <NTHUV SYM6 7 = STACK>
+                   <DEAD SYM6>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <TYPE? FIXB7 <TYPE-CODE FALSE> + PHRASE15>
+                   <DEAD FIXB7>
+                   <SET TEMP16 ''FIX (TYPE ATOM)>
+                   <JUMP + PHRASE17>
+PHRASE15
+                   <SET TEMP16 %<> (TYPE FALSE)>
+PHRASE17
+                   <PUSH TEMP16>
+                   <DEAD TEMP16>
+                   <PUSH INIT8>
+                   <DEAD INIT8>
+                   <CALL '\1aIEMIT 5 = TEMP16>
+                   <RETURN TEMP16>
+                   <DEAD TEMP16>
+PHRASE10
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`BBIND>
+                   <FRAME '\1aATOMCHK>
+                   <NTHUV SYM6 2 = STACK (TYPE ATOM)>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <FRAME '\1aATOMCHK>
+                   <NTHUV SYM6 7 = STACK>
+                   <DEAD SYM6>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <TYPE? FIXB7 <TYPE-CODE FALSE> + PHRASE23>
+                   <DEAD FIXB7>
+                   <SET TEMP16 ''FIX (TYPE ATOM)>
+                   <JUMP + PHRASE25>
+PHRASE23
+                   <SET TEMP16 %<> (TYPE FALSE)>
+PHRASE25
+                   <PUSH TEMP16>
+                   <DEAD TEMP16>
+                   <CALL '\1aIEMIT 4 = TEMP16>
+                   <RETURN TEMP16>
+                   <DEAD TEMP16>
+                   <END \1aSPECIAL-BINDING>
+"Get the value of a special variable bound in the current function"
+
+#WORD *32754000014*
+<GFCN \1aGET-VALUE-X ("VALUE" ANY ANY ANY "OPTIONAL" ANY) ATM6 TMP7 EXT8>
+                   <OPT-DISPATCH 2 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP19 TEMP20>
+                   <INTGO>
+                   <TYPE? TMP7 <TYPE-CODE TEMP> - PHRASE16>
+                   <NTHUV TMP7 5 = TEMP19>
+                   <TYPE? TEMP19 <TYPE-CODE FALSE> + BOOL18>
+                   <DEAD TEMP19>
+                   <NTHUV TMP7 5 = TEMP19>
+                   <EQUAL? TEMP19 'ANY - PHRASE16>
+                   <DEAD TEMP19>
+BOOL18
+                   <NTHUV TMP7 6 = TEMP19>
+                   <TYPE? TEMP19 <TYPE-CODE FALSE> - PHRASE16>
+                   <DEAD TEMP19>
+                   <NTHUV TMP7 3 = TEMP19>
+                   <GEN-LVAL 'TMPS = TEMP20>
+                   <EQUAL? TEMP19 TEMP20 - PHRASE16>
+                   <DEAD TEMP19 TEMP20>
+                   <SET TEMP20 TMP7>
+                   <JUMP + PHRASE23>
+PHRASE16
+                   <FRAME '\1aGEN-TEMP>
+                   <CALL '\1aGEN-TEMP 0 = TEMP20>
+PHRASE23
+                   <FRAME '\1aATOMCHK>
+                   <PUSH ATM6>
+                   <DEAD ATM6>
+                   <CALL '\1aATOMCHK 1 = TEMP19>
+                   <FRAME '\1aMAKE-TAG>
+                   <CALL '\1aMAKE-TAG 0>
+                   <FRAME '\1aMAKE-TAG>
+                   <CALL '\1aMAKE-TAG 0>
+                   <TYPE? EXT8 <TYPE-CODE FALSE> + PHRASE29>
+                   <DEAD EXT8>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`GEN-LVAL>
+                   <PUSH TEMP19>
+                   <DEAD TEMP19>
+                   <PUSH '=>
+                   <PUSH TMP7>
+                   <CALL '\1aIEMIT 4>
+                   <RETURN TMP7>
+                   <DEAD TMP7>
+PHRASE29
+                   <FRAME '\1aUSE-TEMP>
+                   <PUSH TEMP20>
+                   <PUSH %<>>
+                   <CALL '\1aUSE-TEMP 2>
+                   <FRAME '\1aDEALLOCATE-TEMP>
+                   <PUSH TEMP20>
+                   <CALL '\1aDEALLOCATE-TEMP 1>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHR>
+                   <PUSH TEMP19>
+                   <DEAD TEMP19>
+                   <PUSH 2>
+                   <PUSH '=>
+                   <PUSH TEMP20>
+                   <GVAL 'RAT = STACK>
+                   <PUSH (`TYPE LBIND)>
+                   <CALL '\1aIEMIT 7>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHR>
+                   <PUSH TEMP20>
+                   <PUSH 1>
+                   <PUSH '=>
+                   <PUSH TMP7>
+                   <GVAL 'RBN = STACK>
+                   <CALL '\1aIEMIT 6>
+                   <EQUAL? TMP7 TEMP20 + PHRASE37>
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH TEMP20>
+                   <DEAD TEMP20>
+                   <CALL '\1aFREE-TEMP 1>
+PHRASE37
+                   <RETURN TMP7>
+                   <DEAD TMP7>
+                   <END \1aGET-VALUE-X>
+"See if a special variable is assigned"
+
+#WORD *12612333255*
+<GFCN \1aASS-GEN ("VALUE" ANY ANY ANY ANY "OPTIONAL" ANY) ATM6 TG7 DIR8 EXT9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP BTMP10:TEMP FQA11>
+                   <INTGO>
+                   <FRAME '\1aGEN-TEMP>
+                   <CALL '\1aGEN-TEMP 0 = BTMP10>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH ATM6>
+                   <DEAD ATM6>
+                   <CALL '\1aATOMCHK 1 = FQA11>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> + PHRASE18>
+                   <FRAME '\1aMAKE-TAG>
+                   <CALL '\1aMAKE-TAG 0>
+PHRASE18
+                   <TYPE? EXT9 <TYPE-CODE FALSE> + PHRASE22>
+                   <DEAD EXT9>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`GEN-ASSIGNED?>
+                   <PUSH FQA11>
+                   <DEAD FQA11>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> + PHRASE25>
+                   <DEAD DIR8>
+                   <SET FQA11 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE27>
+PHRASE25
+                   <SET FQA11 '- (TYPE ATOM)>
+PHRASE27
+                   <PUSH FQA11>
+                   <DEAD FQA11>
+                   <PUSH TG7>
+                   <DEAD TG7>
+                   <CALL '\1aIEMIT 4 = FQA11>
+                   <RETURN FQA11>
+                   <DEAD FQA11>
+PHRASE22
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHR>
+                   <PUSH FQA11>
+                   <DEAD FQA11>
+                   <PUSH 2>
+                   <PUSH '=>
+                   <PUSH BTMP10>
+                   <GVAL 'RAT = STACK>
+                   <PUSH (`TYPE LBIND)>
+                   <CALL '\1aIEMIT 7>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHR>
+                   <PUSH BTMP10>
+                   <PUSH 1>
+                   <PUSH '=>
+                   <PUSH BTMP10>
+                   <GVAL 'RBN = STACK>
+                   <CALL '\1aIEMIT 6>
+                   <FRAME '\1aGEN-TYPE?>
+                   <PUSH BTMP10>
+                   <PUSH 'UNBOUND>
+                   <PUSH TG7>
+                   <DEAD TG7>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> - TAG32>
+                   <DEAD DIR8>
+                   <SET FQA11 'T (TYPE ATOM)>
+                   <JUMP + TAG33>
+TAG32
+                   <SET FQA11 %<> (TYPE FALSE)>
+TAG33
+                   <PUSH FQA11>
+                   <DEAD FQA11>
+                   <CALL '\1aGEN-TYPE? 4>
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH BTMP10>
+                   <DEAD BTMP10>
+                   <CALL '\1aFREE-TEMP 1 = FQA11>
+                   <RETURN FQA11>
+                   <DEAD FQA11>
+                   <END \1aASS-GEN>
+"Set the value of a special variable bound in the current function"
+
+#WORD *22123224456*
+<GFCN \1aSET-VALUE ("VALUE" ANY ANY ANY "OPTIONAL" ANY) ATM6 TMP7 EXT8>
+                   <OPT-DISPATCH 2 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP FQA10 TG111>
+                   <INTGO>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH ATM6>
+                   <DEAD ATM6>
+                   <CALL '\1aATOMCHK 1 = FQA10>
+                   <FRAME '\1aMAKE-TAG>
+                   <CALL '\1aMAKE-TAG 0>
+                   <FRAME '\1aMAKE-TAG>
+                   <CALL '\1aMAKE-TAG 0>
+                   <TYPE? EXT8 <TYPE-CODE FALSE> + PHRASE19>
+                   <DEAD EXT8>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`GEN-SET>
+                   <PUSH FQA10>
+                   <DEAD FQA10>
+                   <PUSH TMP7>
+                   <CALL '\1aIEMIT 3>
+                   <RETURN TMP7>
+                   <DEAD TMP7>
+PHRASE19
+                   <FRAME '\1aGEN-TEMP>
+                   <PUSH 'LBIND>
+                   <CALL '\1aGEN-TEMP 1 = TG111>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHR>
+                   <PUSH FQA10>
+                   <DEAD FQA10>
+                   <PUSH 2>
+                   <PUSH '=>
+                   <PUSH TG111>
+                   <GVAL 'RAT = STACK>
+                   <PUSH (`TYPE LBIND)>
+                   <CALL '\1aIEMIT 7>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`PUTR>
+                   <PUSH TG111>
+                   <PUSH 1>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH TMP7>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <GVAL 'RBN = STACK>
+                   <CALL '\1aIEMIT 5>
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH TG111>
+                   <DEAD TG111>
+                   <CALL '\1aFREE-TEMP 1>
+                   <RETURN TMP7>
+                   <DEAD TMP7>
+                   <END \1aSET-VALUE>
+"Generate code to set a MIM local"
+
+#WORD *10407571022*
+<GFCN \1aSET-SYM ("VALUE" <OR FALSE TEMP> SYMTAB "OPTIONAL" ANY ANY) SYM7 VAL8 USE-IT9>
+                   <OPT-DISPATCH 1 %<> OPT4 OPT5 OPT6>
+OPT4
+                   <PUSH #T$UNBOUND 0>
+OPT5
+                   <PUSH %<>>
+OPT6
+                   <TEMP TMP10:TEMP (TY11 'ANY) REFS12:FIX TEMP22>
+                   <INTGO>
+                   <NTHUV SYM7 10 = TMP10 (TYPE TEMP)>
+                   <DEAD SYM7>
+                   <NTHUV TMP10 2 = REFS12 (TYPE FIX)>
+                   <TYPE? VAL8 <TYPE-CODE UNBOUND> + PHRASE14>
+                   <TYPE? VAL8 <TYPE-CODE TEMP> - PHRASE16>
+                   <NTHUV VAL8 6 = TY11>
+                   <JUMP + PHRASE17>
+PHRASE16
+                   <FRAME '\1aTYPE>
+                   <PUSH VAL8>
+                   <CALL '\1aTYPE 1 = TY11>
+PHRASE17
+                   <FRAME '\1aSET-TEMP>
+                   <PUSH TMP10>
+                   <PUSH VAL8>
+                   <DEAD VAL8>
+                   <CALL '\1aSET-TEMP 2>
+PHRASE14
+                   <SET TEMP22 USE-IT9>
+                   <DEAD USE-IT9>
+                   <TYPE? TEMP22 <TYPE-CODE FALSE> + PHRASE21>
+                   <FRAME '\1aUSE-TEMP>
+                   <PUSH TMP10>
+                   <PUSH TY11>
+                   <DEAD TY11>
+                   <CALL '\1aUSE-TEMP 2>
+                   <ADD REFS12 1 = REFS12 (TYPE FIX)>
+                   <PUTUV TMP10 2 REFS12 (TYPE FIX)>
+                   <DEAD REFS12>
+                   <SET TEMP22 TMP10>
+                   <DEAD TMP10>
+PHRASE21
+                   <RETURN TEMP22>
+                   <DEAD TEMP22>
+                   <END \1aSET-SYM>
+#WORD *23202063260*
+<GFCN \1aSET-TEMP ("VALUE" <OR ATOM FALSE> TEMP "OPTIONAL" ANY ANY) TMP7 VAL8 XTRA9>
+                   <OPT-DISPATCH 1 %<> OPT4 OPT5 OPT6>
+OPT4
+                   <PUSH #T$UNBOUND 0>
+OPT5
+                   <PUSH #T$UNBOUND 0>
+OPT6
+                   <TEMP (TY11 'ANY)>
+                   <INTGO>
+                   <TYPE? VAL8 <TYPE-CODE UNBOUND> + PHRASE16>
+                   <TYPE? VAL8 <TYPE-CODE TEMP> - PHRASE15>
+                   <NTHUV VAL8 6 = TY11>
+                   <JUMP + PHRASE16>
+PHRASE15
+                   <FRAME '\1aTYPE>
+                   <PUSH VAL8>
+                   <CALL '\1aTYPE 1 = TY11>
+PHRASE16
+                   <FRAME '\1aUSE-TEMP>
+                   <PUSH TMP7>
+                   <PUSH TY11>
+                   <DEAD TY11>
+                   <CALL '\1aUSE-TEMP 2>
+                   <TYPE? VAL8 <TYPE-CODE UNBOUND> - TAG22>
+                   <RETURN %<>>
+TAG22
+                   <TYPE? VAL8 <TYPE-CODE MIM-SPECIAL> - PHRASE24>
+                   <CHTYPE VAL8 <TYPE-CODE ATOM> = VAL8>
+                   <JUMP + PHRASE25>
+PHRASE24
+                   <FRAME '\1aATOMCHK>
+                   <PUSH VAL8>
+                   <DEAD VAL8>
+                   <CALL '\1aATOMCHK 1 = VAL8>
+PHRASE25
+                   <TYPE? XTRA9 <TYPE-CODE UNBOUND> + PHRASE28>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SET>
+                   <PUSH TMP7>
+                   <DEAD TMP7>
+                   <PUSH VAL8>
+                   <DEAD VAL8>
+                   <PUSH XTRA9>
+                   <DEAD XTRA9>
+                   <CALL '\1aIEMIT 4 = TY11>
+                   <RETURN TY11>
+                   <DEAD TY11>
+PHRASE28
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SET>
+                   <PUSH TMP7>
+                   <DEAD TMP7>
+                   <PUSH VAL8>
+                   <DEAD VAL8>
+                   <CALL '\1aIEMIT 3 = TY11>
+                   <RETURN TY11>
+                   <DEAD TY11>
+                   <END \1aSET-TEMP>
+"Quote atom to protect the MIM assembler"
+
+#WORD *24551434560*
+<GFCN \1aATOMCHK ("VALUE" ANY ANY) X4>
+                   <TEMP Y9 TEMP16>
+                   <INTGO>
+                   <SET Y9 X4>
+                   <LOOP>
+AGAIN10
+                   <INTGO>
+                   <TYPE? Y9 <TYPE-CODE ATOM> + EXIT7>
+                   <TYPE? Y9 <TYPE-CODE FORM> - PHRASE6>
+                   <EMPL? Y9 + PHRASE6>
+                   <RESTL Y9 1 = TEMP16 (TYPE LIST)>
+                   <EMPL? TEMP16 + PHRASE6>
+                   <RESTL TEMP16 1 = TEMP16 (TYPE LIST)>
+                   <EMPL? TEMP16 - PHRASE6>
+                   <DEAD TEMP16>
+                   <NTHL Y9 1 = TEMP16>
+                   <EQUAL? TEMP16 'QUOTE - PHRASE6>
+                   <DEAD TEMP16>
+                   <RESTL Y9 1 = TEMP16 (TYPE LIST)>
+                   <DEAD Y9>
+                   <NTHL TEMP16 1 = Y9>
+                   <DEAD TEMP16>
+                   <JUMP + AGAIN10>
+EXIT7
+                   <FRAME '\1aFORM>
+                   <PUSH 'QUOTE>
+                   <PUSH X4>
+                   <DEAD X4>
+                   <CALL '\1aFORM 2 = TEMP16>
+                   <RETURN TEMP16>
+                   <DEAD TEMP16>
+PHRASE6
+                   <RETURN X4>
+                   <DEAD X4>
+                   <END \1aATOMCHK>
+" Return currently running FRAME "
+
+#WORD *611722301*
+<GFCN \1aCURRENT-FRAME ("VALUE" ANY "OPTIONAL" ANY) FR6>
+                   <OPT-DISPATCH 0 %<> OPT4 OPT5>
+OPT4
+                   <PUSH #T$UNBOUND 0>
+OPT5
+                   <TEMP>
+                   <INTGO>
+                   <TYPE? FR6 <TYPE-CODE UNBOUND> - TAG7>
+                   <FRAME '\1aGEN-TEMP>
+                   <PUSH 'FRAME>
+                   <CALL '\1aGEN-TEMP 1 = FR6>
+TAG7
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`CFRAME>
+                   <PUSH '=>
+                   <PUSH FR6>
+                   <PUSH (`TYPE FRAME)>
+                   <CALL '\1aIEMIT 4>
+                   <RETURN FR6>
+                   <DEAD FR6>
+                   <END \1aCURRENT-FRAME>
+" Return TUPLE of arguments"
+
+#WORD *5672574535*
+<GFCN \1aGET-ARG-TUPLE ("VALUE" TEMP ANY) FR4>
+                   <TEMP TEMP7>
+                   <INTGO>
+                   <FRAME '\1aUSE-TEMP>
+                   <PUSH FR4>
+                   <PUSH 'TUPLE>
+                   <CALL '\1aUSE-TEMP 2>
+                   <FRAME '\1aPUT>
+                   <GEN-LVAL 'TMPS = STACK>
+                   <PUSH 1>
+                   <PUSH '`MAKTUP>
+                   <CALL '\1aPUT 3>
+                   <NTHUV FR4 1 = TEMP7 (TYPE ATOM)>
+                   <GEN-SET 'TMP-DEST TEMP7>
+                   <DEAD TEMP7>
+                   <RETURN FR4>
+                   <DEAD FR4>
+                   <END \1aGET-ARG-TUPLE>
+"Compare # of args supplied with a constant and jump in appropriate case"
+
+#WORD *34747706177*
+<GFCN \1aTEST-ARG ("VALUE" ATOM TEMP ATOM) TMP4 TG5>
+                   <TEMP>
+                   <INTGO>
+                   <FRAME '\1aGEN-TYPE?>
+                   <PUSH TMP4>
+                   <DEAD TMP4>
+                   <PUSH 'UNBOUND>
+                   <PUSH TG5>
+                   <DEAD TG5>
+                   <PUSH %<>>
+                   <CALL '\1aGEN-TYPE? 4>
+                   <RETURN 'T>
+                   <END \1aTEST-ARG>
+"Get current binding at top of world"
+
+#WORD *653212563*
+<GFCN \1aGET-BINDING ("VALUE" ATOM ANY) WHERE4>
+                   <TEMP TEMP6:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`GETS>
+                   <GVAL 'QQ-BIND = STACK>
+                   <PUSH '=>
+                   <PUSH WHERE4>
+                   <DEAD WHERE4>
+                   <PUSH (`TYPE LBIND)>
+                   <CALL '\1aIEMIT 5 = TEMP6>
+                   <RETURN TEMP6>
+                   <DEAD TEMP6>
+                   <END \1aGET-BINDING>
+"Get an arg by arg number and mung into a local"
+
+#WORD *37701143342*
+<GFCN \1aARG-TO-TEMP ("VALUE" ATOM SYMTAB) SYM4>
+                   <TEMP TMP5 ATMP6>
+                   <INTGO>
+                   <NTHUV SYM4 10 = TMP5 (TYPE TEMP)>
+                   <NTHUV SYM4 19 = ATMP6>
+                   <DEAD SYM4>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SET>
+                   <NTHUV TMP5 1 = STACK (TYPE ATOM)>
+                   <DEAD TMP5>
+                   <NTHUV ATMP6 1 = STACK (TYPE ATOM)>
+                   <DEAD ATMP6>
+                   <CALL '\1aIEMIT 3 = TMP5>
+                   <RETURN TMP5>
+                   <DEAD TMP5>
+                   <END \1aARG-TO-TEMP>
+"Generate call to MSUBR"
+
+#WORD *13350353433*
+<GFCN \1aMSUBR-CALL ("VALUE" ATOM ANY ANY ANY) NAM4 NARGS5 W6>
+                   <TEMP TEMP11:ATOM>
+                   <INTGO>
+                   <CHTYPE NAM4 <TYPE-CODE FCN-ATOM> = NAM4>
+                   <EQUAL? W6 'FLUSHED - PHRASE8>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`CALL>
+                   <FRAME '\1aFORM>
+                   <PUSH 'QUOTE>
+                   <PUSH NAM4>
+                   <DEAD NAM4>
+                   <CALL '\1aFORM 2 = STACK>
+                   <PUSH NARGS5>
+                   <DEAD NARGS5>
+                   <CALL '\1aIEMIT 3 = TEMP11>
+                   <RETURN TEMP11>
+                   <DEAD TEMP11>
+PHRASE8
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`CALL>
+                   <FRAME '\1aFORM>
+                   <PUSH 'QUOTE>
+                   <PUSH NAM4>
+                   <DEAD NAM4>
+                   <CALL '\1aFORM 2 = STACK>
+                   <PUSH NARGS5>
+                   <DEAD NARGS5>
+                   <PUSH '=>
+                   <PUSH W6>
+                   <DEAD W6>
+                   <CALL '\1aIEMIT 5 = TEMP11>
+                   <RETURN TEMP11>
+                   <DEAD TEMP11>
+                   <END \1aMSUBR-CALL>
+#WORD *5532206727*
+<GFCN \1aSEG-SUBR-CALL ("VALUE" ATOM ANY ANY ANY ANY ANY) NAM4 NARGS5 W6 COUNT7 LABEL8>
+                   <TEMP TEMP11:ATOM>
+                   <INTGO>
+                   <CHTYPE NAM4 <TYPE-CODE FCN-ATOM> = NAM4>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SCALL>
+                   <FRAME '\1aFORM>
+                   <PUSH 'QUOTE>
+                   <PUSH NAM4>
+                   <DEAD NAM4>
+                   <CALL '\1aFORM 2 = STACK>
+                   <PUSH NARGS5>
+                   <DEAD NARGS5>
+                   <PUSH '=>
+                   <PUSH W6>
+                   <DEAD W6>
+                   <PUSH '+>
+                   <PUSH LABEL8>
+                   <DEAD LABEL8>
+                   <PUSH COUNT7>
+                   <DEAD COUNT7>
+                   <CALL '\1aIEMIT 8 = TEMP11>
+                   <RETURN TEMP11>
+                   <DEAD TEMP11>
+                   <END \1aSEG-SUBR-CALL>
+"Begin building a FRAME for a future call"
+
+#WORD *6742474456*
+<GFCN \1aSTART-FRAME ("VALUE" ATOM "OPTIONAL" ANY) NAME6>
+                   <OPT-DISPATCH 0 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP11:ATOM>
+                   <INTGO>
+                   <TYPE? NAME6 <TYPE-CODE FALSE> + PHRASE8>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`FRAME>
+                   <FRAME '\1aFORM>
+                   <PUSH 'QUOTE>
+                   <CHTYPE NAME6 <TYPE-CODE FCN-ATOM> = STACK>
+                   <DEAD NAME6>
+                   <CALL '\1aFORM 2 = STACK>
+                   <CALL '\1aIEMIT 2 = TEMP11>
+                   <RETURN TEMP11>
+                   <DEAD TEMP11>
+PHRASE8
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`FRAME>
+                   <CALL '\1aIEMIT 1 = TEMP11>
+                   <RETURN TEMP11>
+                   <DEAD TEMP11>
+                   <END \1aSTART-FRAME>
+"Generate a VECTOR of the top N things on the stack"
+
+#WORD *4631107647*
+<GFCN \1aGEN-VECTOR ("VALUE" ANY ANY ANY "OPTIONAL" ANY) N6 V7 S?8>
+                   <OPT-DISPATCH 2 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP12:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <TYPE? S?8 <TYPE-CODE FALSE> + PHRASE11>
+                   <DEAD S?8>
+                   <SET TEMP12 '`SBLOCK (TYPE ATOM)>
+                   <JUMP + PHRASE13>
+PHRASE11
+                   <SET TEMP12 '`UBLOCK (TYPE ATOM)>
+PHRASE13
+                   <PUSH TEMP12>
+                   <DEAD TEMP12>
+                   <PUSH <`TYPE-CODE VECTOR>>
+                   <PUSH N6>
+                   <DEAD N6>
+                   <PUSH '=>
+                   <PUSH V7>
+                   <CALL '\1aIEMIT 5>
+                   <RETURN V7>
+                   <DEAD V7>
+                   <END \1aGEN-VECTOR>
+#WORD *13615155655*
+<GFCN \1aGEN-UVECTOR ("VALUE" ANY ANY ANY "OPTIONAL" ANY) N6 V7 S?8>
+                   <OPT-DISPATCH 2 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP12:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <TYPE? S?8 <TYPE-CODE FALSE> + PHRASE11>
+                   <DEAD S?8>
+                   <SET TEMP12 '`SBLOCK (TYPE ATOM)>
+                   <JUMP + PHRASE13>
+PHRASE11
+                   <SET TEMP12 '`UBLOCK (TYPE ATOM)>
+PHRASE13
+                   <PUSH TEMP12>
+                   <DEAD TEMP12>
+                   <PUSH <`TYPE-CODE UVECTOR>>
+                   <PUSH N6>
+                   <DEAD N6>
+                   <PUSH '=>
+                   <PUSH V7>
+                   <CALL '\1aIEMIT 5>
+                   <RETURN V7>
+                   <DEAD V7>
+                   <END \1aGEN-UVECTOR>
+"Same for TUPLE"
+
+#WORD *11426447543*
+<GFCN \1aGEN-TUPLE ("VALUE" ANY ANY ANY) N4 V5>
+                   <TEMP>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`TUPLE>
+                   <PUSH N4>
+                   <DEAD N4>
+                   <PUSH '=>
+                   <PUSH V5>
+                   <PUSH (`TYPE TUPLE)>
+                   <CALL '\1aIEMIT 5>
+                   <RETURN V5>
+                   <DEAD V5>
+                   <END \1aGEN-TUPLE>
+"Same for LIST"
+
+#WORD *27702304050*
+<GFCN \1aGEN-LIST ("VALUE" ATOM ANY ANY) N4 L5>
+                   <TEMP TEMP7:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`LIST>
+                   <PUSH N4>
+                   <DEAD N4>
+                   <PUSH '=>
+                   <PUSH L5>
+                   <DEAD L5>
+                   <PUSH (`TYPE LIST)>
+                   <CALL '\1aIEMIT 5 = TEMP7>
+                   <RETURN TEMP7>
+                   <DEAD TEMP7>
+                   <END \1aGEN-LIST>
+"Generate code to move datum from place to place"
+
+#WORD *2103751535*
+<GFCN \1aMOVE-ARG ("VALUE" ANY ANY ANY "OPTIONAL" ANY) FROM6 TO7 XTRA8>
+                   <OPT-DISPATCH 2 %<> OPT4 OPT5>
+OPT4
+                   <PUSH #T$UNBOUND 0>
+OPT5
+                   <TEMP (TY9 'ANY) TEMP19 TEMP40>
+                   <INTGO>
+                   <TYPE? XTRA8 <TYPE-CODE UNBOUND> - PHRASE11>
+                   <TYPE? FROM6 <TYPE-CODE TEMP> + PHRASE11>
+                   <TYPE? FROM6 <TYPE-CODE FORM> - PHRASE14>
+                   <EMPL? FROM6 + PHRASE14>
+                   <RESTL FROM6 1 = TY9 (TYPE LIST)>
+                   <EMPL? TY9 + PHRASE14>
+                   <RESTL TY9 1 = TY9 (TYPE LIST)>
+                   <EMPL? TY9 - PHRASE14>
+                   <DEAD TY9>
+                   <NTHL FROM6 1 = TY9>
+                   <EQUAL? TY9 'QUOTE - PHRASE14>
+                   <DEAD TY9>
+                   <RESTL FROM6 1 = TY9 (TYPE LIST)>
+                   <NTHL TY9 1 = TY9>
+                   <TYPE? TY9 <TYPE-CODE ATOM> - PHRASE14>
+                   <DEAD TY9>
+                   <SET XTRA8 (`TYPE ATOM) (TYPE LIST)>
+                   <JUMP + PHRASE17>
+PHRASE14
+                   <CONS '`TYPE () = TY9>
+                   <FRAME '\1aTYPE>
+                   <PUSH FROM6>
+                   <CALL '\1aTYPE 1 = TEMP19>
+                   <CONS TEMP19 () = TEMP19>
+                   <PUTREST TY9 TEMP19>
+                   <DEAD TEMP19>
+                   <SET XTRA8 TY9>
+                   <DEAD TY9>
+PHRASE17
+                   <RESTL XTRA8 1 = TY9 (TYPE LIST)>
+                   <NTHL TY9 1 = TY9 (TYPE ATOM)>
+                   <JUMP + PHRASE23>
+PHRASE11
+                   <TYPE? XTRA8 <TYPE-CODE UNBOUND> + PHRASE20>
+                   <TYPE? XTRA8 <TYPE-CODE LIST> - PHRASE20>
+                   <RESTL XTRA8 1 = TY9 (TYPE LIST)>
+                   <NTHL TY9 1 = TY9>
+                   <JUMP + PHRASE23>
+PHRASE20
+                   <TYPE? FROM6 <TYPE-CODE TEMP> - PHRASE22>
+                   <NTHUV FROM6 6 = TY9>
+                   <JUMP + PHRASE23>
+PHRASE22
+                   <FRAME '\1aTYPE>
+                   <PUSH FROM6>
+                   <CALL '\1aTYPE 1 = TY9>
+PHRASE23
+                   <EQUAL? TO7 'FLUSHED - PHRASE26>
+                   <GVAL 'POP-STACK = TY9>
+                   <EQUAL? TY9 FROM6 - PHRASE28>
+                   <DEAD TY9>
+                   <FRAME '\1aPOP>
+                   <PUSH 'FLUSHED>
+                   <CALL '\1aPOP 1>
+PHRASE28
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH FROM6>
+                   <DEAD FROM6>
+                   <CALL '\1aFREE-TEMP 1>
+                   <GVAL 'NO-DATUM = TY9>
+                   <RETURN TY9>
+                   <DEAD TY9>
+PHRASE26
+                   <TYPE? TO7 <TYPE-CODE LIST> - PHRASE31>
+                   <SET TEMP40 %<> (TYPE FALSE)>
+                   <SET TEMP19 TO7 (TYPE LIST)>
+                   <DEAD TO7>
+                   <LOOP>
+MAP33
+                   <INTGO>
+                   <EMPL? TEMP19 + MAPAP36>
+                   <NTHL TEMP19 1 = TY9>
+                   <FRAME '\1aMOVE-ARG>
+                   <PUSH FROM6>
+                   <PUSH TY9>
+                   <DEAD TY9>
+                   <PUSH XTRA8>
+                   <CALL '\1aMOVE-ARG 3 = TEMP40>
+                   <RESTL TEMP19 1 = TEMP19 (TYPE LIST)>
+                   <JUMP + MAP33>
+MAPAP36
+                   <RETURN TEMP40>
+                   <DEAD TEMP40>
+PHRASE31
+                   <EQUAL? TO7 FROM6 + PHRASE44>
+                   <GVAL 'POP-STACK = TEMP19>
+                   <EQUAL? TEMP19 TO7 - PHRASE46>
+                   <DEAD TEMP19>
+                   <FRAME '\1aPUSH>
+                   <PUSH FROM6>
+                   <CALL '\1aPUSH 1>
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH FROM6>
+                   <DEAD FROM6>
+                   <CALL '\1aFREE-TEMP 1>
+                   <RETURN TO7>
+                   <DEAD TO7>
+PHRASE46
+                   <GEN-ASSIGNED? 'THE-BOOL - PHRASE49>
+                   <GEN-LVAL 'THE-BOOL = TEMP40>
+                   <EQUAL? TEMP40 TO7 - PHRASE49>
+                   <DEAD TEMP40>
+                   <TYPE? FROM6 <TYPE-CODE FALSE> - PHRASE54>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`AND>
+                   <GEN-LVAL 'THE-BOOL = STACK>
+                   <GEN-LVAL 'THE-BIT = STACK>
+                   <PUSH '=>
+                   <GEN-LVAL 'THE-BOOL = STACK>
+                   <CALL '\1aIEMIT 5>
+                   <RETURN TO7>
+                   <DEAD TO7>
+PHRASE54
+                   <EQUAL? FROM6 'T - PHRASE63>
+                   <DEAD FROM6>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`OR>
+                   <GEN-LVAL 'THE-BOOL = STACK>
+                   <GEN-LVAL 'THE-BIT = STACK>
+                   <PUSH '=>
+                   <GEN-LVAL 'THE-BOOL = STACK>
+                   <CALL '\1aIEMIT 5>
+                   <RETURN TO7>
+                   <DEAD TO7>
+PHRASE63
+                   <FRAME '\1aERROR>
+                   <PUSH 'OH-SHIT!-ERRORS>
+                   <CALL '\1aERROR 1>
+                   <RETURN TO7>
+                   <DEAD TO7>
+PHRASE49
+                   <TYPE? TO7 <TYPE-CODE TEMP> - PHRASE76>
+                   <FRAME '\1aUSE-TEMP>
+                   <PUSH TO7>
+                   <PUSH TY9>
+                   <DEAD TY9>
+                   <CALL '\1aUSE-TEMP 2>
+                   <TYPE? FROM6 <TYPE-CODE TEMP> - PHRASE79>
+                   <TYPE? XTRA8 <TYPE-CODE UNBOUND> + PHRASE81>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SET>
+                   <PUSH TO7>
+                   <PUSH FROM6>
+                   <PUSH XTRA8>
+                   <DEAD XTRA8>
+                   <CALL '\1aIEMIT 4>
+                   <JUMP + PHRASE83>
+PHRASE81
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SET>
+                   <PUSH TO7>
+                   <PUSH FROM6>
+                   <CALL '\1aIEMIT 3>
+PHRASE83
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH FROM6>
+                   <DEAD FROM6>
+                   <CALL '\1aFREE-TEMP 1>
+                   <RETURN TO7>
+                   <DEAD TO7>
+PHRASE79
+                   <TYPE? XTRA8 <TYPE-CODE UNBOUND> + PHRASE88>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SET>
+                   <PUSH TO7>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH FROM6>
+                   <DEAD FROM6>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <PUSH XTRA8>
+                   <DEAD XTRA8>
+                   <CALL '\1aIEMIT 4>
+                   <RETURN TO7>
+                   <DEAD TO7>
+PHRASE88
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SET>
+                   <PUSH TO7>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH FROM6>
+                   <DEAD FROM6>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <CALL '\1aIEMIT 3>
+                   <RETURN TO7>
+                   <DEAD TO7>
+PHRASE76
+                   <EQUAL? TO7 'DONT-CARE + TAG95>
+                   <DEAD TO7>
+                   <RETURN %<>>
+TAG95
+                   <GVAL 'TOP-STACK = TY9>
+                   <EQUAL? TY9 FROM6 - PHRASE97>
+                   <DEAD TY9>
+                   <GVAL 'POP-STACK = TY9>
+                   <RETURN TY9>
+                   <DEAD TY9>
+PHRASE97
+                   <RETURN FROM6>
+                   <DEAD FROM6>
+PHRASE44
+                   <RETURN TO7>
+                   <DEAD TO7>
+                   <END \1aMOVE-ARG>
+#WORD *31253005015*
+<GFCN \1aREFERENCE ("VALUE" ANY ANY) X4>
+                   <TEMP>
+                   <INTGO>
+                   <RETURN X4>
+                   <DEAD X4>
+                   <END \1aREFERENCE>
+"Generate a TYPE? instruction"
+
+#WORD *36477445165*
+<GFCN \1aGEN-TYPE? ("VALUE" ATOM ANY ANY ANY ANY) ITM4 TYP5 TG6 DIR7>
+                   <TEMP TEMP11>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`TYPE?>
+                   <PUSH ITM4>
+                   <DEAD ITM4>
+                   <TYPE? TYP5 <TYPE-CODE TEMP> - PHRASE10>
+                   <SET TEMP11 TYP5>
+                   <DEAD TYP5>
+                   <JUMP + PHRASE12>
+PHRASE10
+                   <FRAME '\1aFORM>
+                   <PUSH '`TYPE-CODE>
+                   <PUSH TYP5>
+                   <DEAD TYP5>
+                   <CALL '\1aFORM 2 = TEMP11>
+PHRASE12
+                   <PUSH TEMP11>
+                   <DEAD TEMP11>
+                   <TYPE? DIR7 <TYPE-CODE FALSE> + PHRASE15>
+                   <DEAD DIR7>
+                   <SET TEMP11 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE16>
+PHRASE15
+                   <SET TEMP11 '- (TYPE ATOM)>
+PHRASE16
+                   <PUSH TEMP11>
+                   <DEAD TEMP11>
+                   <PUSH TG6>
+                   <DEAD TG6>
+                   <CALL '\1aIEMIT 5 = TEMP11>
+                   <RETURN TEMP11>
+                   <DEAD TEMP11>
+                   <END \1aGEN-TYPE?>
+#WORD *31611377042*
+<GFCN \1aGEN-VT ("VALUE" ANY ANY ANY ANY "OPTIONAL" ANY) ITM6 TG7 DIR8 RTMP9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH #T$UNBOUND 0>
+OPT5
+                   <TEMP SIGN11:ATOM TMP10 TEMP20>
+                   <INTGO>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> + PHRASE13>
+                   <SET SIGN11 '- (TYPE ATOM)>
+                   <JUMP + COND12>
+PHRASE13
+                   <SET SIGN11 '+ (TYPE ATOM)>
+COND12
+                   <TYPE? RTMP9 <TYPE-CODE UNBOUND> + PHRASE15>
+                   <SET TMP10 RTMP9>
+                   <JUMP + PHRASE16>
+PHRASE15
+                   <FRAME '\1aGEN-TEMP>
+                   <PUSH %<>>
+                   <CALL '\1aGEN-TEMP 1 = TMP10>
+PHRASE16
+                   <FRAME '\1aUSE-TEMP>
+                   <PUSH TMP10>
+                   <CALL '\1aUSE-TEMP 1>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHR>
+                   <PUSH ITM6>
+                   <DEAD ITM6>
+                   <PUSH 5>
+                   <PUSH '=>
+                   <PUSH TMP10>
+                   <GVAL 'RAT = STACK>
+                   <CONS TG7 () = TEMP20>
+                   <CONS SIGN11 TEMP20 = TEMP20>
+                   <DEAD SIGN11>
+                   <CONS '`BRANCH-FALSE TEMP20 = STACK>
+                   <DEAD TEMP20>
+                   <CALL '\1aIEMIT 7>
+                   <FRAME '\1aSPEC-IEMIT>
+                   <PUSH '`TYPE?>
+                   <PUSH TMP10>
+                   <PUSH <`TYPE-CODE FALSE>>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> + PHRASE23>
+                   <DEAD DIR8>
+                   <SET TEMP20 '- (TYPE ATOM)>
+                   <JUMP + PHRASE24>
+PHRASE23
+                   <SET TEMP20 '+ (TYPE ATOM)>
+PHRASE24
+                   <PUSH TEMP20>
+                   <DEAD TEMP20>
+                   <PUSH TG7>
+                   <DEAD TG7>
+                   <CALL '\1aSPEC-IEMIT 5>
+                   <TYPE? RTMP9 <TYPE-CODE UNBOUND> + TAG27>
+                   <DEAD RTMP9>
+                   <RETURN %<>>
+TAG27
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH TMP10>
+                   <DEAD TMP10>
+                   <CALL '\1aFREE-TEMP 1 = TEMP20>
+                   <RETURN TEMP20>
+                   <DEAD TEMP20>
+                   <END \1aGEN-VT>
+#WORD *1736634447*
+<GFCN \1aGEN-TC ("VALUE" TEMP ANY "OPTIONAL" ANY) TMP6 RTMP7>
+                   <OPT-DISPATCH 1 %<> OPT4 OPT5>
+OPT4
+                   <PUSH #T$UNBOUND 0>
+OPT5
+                   <TEMP TEMP15>
+                   <INTGO>
+                   <TYPE? RTMP7 <TYPE-CODE UNBOUND> + PHRASE9>
+                   <FRAME '\1aUSE-TEMP>
+                   <PUSH RTMP7>
+                   <PUSH 'TYPE-C>
+                   <CALL '\1aUSE-TEMP 2>
+                   <JUMP + PHRASE11>
+PHRASE9
+                   <FRAME '\1aGEN-TEMP>
+                   <PUSH 'TYPE-C>
+                   <CALL '\1aGEN-TEMP 1 = RTMP7>
+PHRASE11
+                   <GEN-LVAL 'CAREFUL = TEMP15>
+                   <TYPE? TEMP15 <TYPE-CODE FALSE> + PHRASE14>
+                   <DEAD TEMP15>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHR>
+                   <PUSH TMP6>
+                   <DEAD TMP6>
+                   <PUSH 5>
+                   <PUSH '=>
+                   <PUSH RTMP7>
+                   <GVAL 'RAT = STACK>
+                   <PUSH (`BRANCH-FALSE + `COMPERR)>
+                   <CALL '\1aIEMIT 7>
+                   <FRAME '\1aSPEC-IEMIT>
+                   <PUSH '`TYPE?>
+                   <PUSH RTMP7>
+                   <PUSH <`TYPE-CODE FALSE>>
+                   <PUSH '+>
+                   <PUSH '`COMPERR>
+                   <CALL '\1aSPEC-IEMIT 5>
+                   <RETURN RTMP7>
+                   <DEAD RTMP7>
+PHRASE14
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHR>
+                   <PUSH TMP6>
+                   <DEAD TMP6>
+                   <PUSH 5>
+                   <PUSH '=>
+                   <PUSH RTMP7>
+                   <GVAL 'RAT = STACK>
+                   <PUSH (`TYPE TYPE-C)>
+                   <CALL '\1aIEMIT 7>
+                   <RETURN RTMP7>
+                   <DEAD RTMP7>
+                   <END \1aGEN-TC>
+"Generate SETG/GVAL things"
+
+#WORD *27662305212*
+                   <GFCN \1aGEN-GVAL ("VALUE" ATOM ANY ANY "OPTIONAL" ANY) ATM6 W7 TYP8>
+                   <OPT-DISPATCH 2 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP18>
+                   <INTGO>
+                   <TYPE? ATM6 <TYPE-CODE ATOM> - PHRASE13>
+                   <FRAME '\1aFORM>
+                   <PUSH 'QUOTE>
+                   <PUSH ATM6>
+                   <DEAD ATM6>
+                   <CALL '\1aFORM 2 = ATM6>
+PHRASE13
+                   <TYPE? TYP8 <TYPE-CODE FALSE> + PHRASE16>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`GVAL>
+                   <PUSH ATM6>
+                   <DEAD ATM6>
+                   <PUSH '=>
+                   <PUSH W7>
+                   <DEAD W7>
+                   <CONS TYP8 () = TEMP18>
+                   <DEAD TYP8>
+                   <CONS '`TYPE TEMP18 = STACK>
+                   <DEAD TEMP18>
+                   <CALL '\1aIEMIT 5 = TEMP18>
+                   <RETURN TEMP18>
+                   <DEAD TEMP18>
+PHRASE16
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`GVAL>
+                   <PUSH ATM6>
+                   <DEAD ATM6>
+                   <PUSH '=>
+                   <PUSH W7>
+                   <DEAD W7>
+                   <CALL '\1aIEMIT 4 = TEMP18>
+                   <RETURN TEMP18>
+                   <DEAD TEMP18>
+                   <END \1aGEN-GVAL>
+
+#WORD *13501635567*
+<GFCN \1aGEN-GASS ("VALUE" ANY ANY ANY ANY ANY) ATM4 TG5 DIR6 NM7>
+                   <TEMP TG18 (SIGN9 '+) TEMP23 TEM10:TEMP>
+                   <INTGO>
+                   <EQUAL? NM7 'GASSIGNED? + PHRASE12>
+                   <SET TG18 TG5>
+                   <JUMP + PHRASE15>
+PHRASE12
+                   <TYPE? DIR6 <TYPE-CODE FALSE> + PHRASE13>
+                   <FRAME '\1aMAKE-TAG>
+                   <CALL '\1aMAKE-TAG 0 = TG18>
+                   <JUMP + PHRASE15>
+PHRASE13
+                   <SET TG18 TG5>
+PHRASE15
+                   <TYPE? DIR6 <TYPE-CODE FALSE> + PHRASE17>
+                   <EQUAL? NM7 'GASSIGNED? + PHRASE17>
+                   <SET SIGN9 '- (TYPE ATOM)>
+PHRASE17
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHR>
+                   <TYPE? ATM4 <TYPE-CODE ATOM> - PHRASE21>
+                   <FRAME '\1aFORM>
+                   <PUSH 'QUOTE>
+                   <PUSH ATM4>
+                   <DEAD ATM4>
+                   <CALL '\1aFORM 2 = TEMP23>
+                   <JUMP + PHRASE24>
+PHRASE21
+                   <SET TEMP23 ATM4>
+                   <DEAD ATM4>
+PHRASE24
+                   <PUSH TEMP23>
+                   <DEAD TEMP23>
+                   <PUSH 1>
+                   <PUSH '=>
+                   <FRAME '\1aGEN-TEMP>
+                   <CALL '\1aGEN-TEMP 0 = TEM10>
+                   <PUSH TEM10>
+                   <GVAL 'RAT = STACK>
+                   <CONS TG18 () = TEMP23>
+                   <CONS SIGN9 TEMP23 = TEMP23>
+                   <CONS '`BRANCH-FALSE TEMP23 = STACK>
+                   <DEAD TEMP23>
+                   <CALL '\1aIEMIT 7>
+                   <FRAME '\1aSPEC-IEMIT>
+                   <PUSH '`TYPE?>
+                   <PUSH TEM10>
+                   <PUSH <`TYPE-CODE FALSE>>
+                   <PUSH SIGN9>
+                   <DEAD SIGN9>
+                   <PUSH TG18>
+                   <CALL '\1aSPEC-IEMIT 5>
+                   <EQUAL? NM7 'GASSIGNED? - PHRASE28>
+                   <DEAD NM7>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHR>
+                   <PUSH TEM10>
+                   <PUSH 1>
+                   <PUSH '=>
+                   <PUSH TEM10>
+                   <GVAL 'RGBN = STACK>
+                   <CALL '\1aIEMIT 6>
+                   <FRAME '\1aGEN-TYPE?>
+                   <PUSH TEM10>
+                   <PUSH 'UNBOUND>
+                   <PUSH TG5>
+                   <TYPE? DIR6 <TYPE-CODE FALSE> - TAG31>
+                   <DEAD DIR6>
+                   <SET TEMP23 'T (TYPE ATOM)>
+                   <JUMP + TAG32>
+TAG31
+                   <SET TEMP23 %<> (TYPE FALSE)>
+TAG32
+                   <PUSH TEMP23>
+                   <DEAD TEMP23>
+                   <CALL '\1aGEN-TYPE? 4>
+PHRASE28
+                   <EQUAL? TG5 TG18 + PHRASE34>
+                   <DEAD TG5>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH TG18>
+                   <DEAD TG18>
+                   <CALL '\1aLABEL-TAG 1>
+PHRASE34
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH TEM10>
+                   <DEAD TEM10>
+                   <CALL '\1aFREE-TEMP 1 = TEMP23>
+                   <RETURN TEMP23>
+                   <DEAD TEMP23>
+                   <END \1aGEN-GASS>
+#WORD *13315522243*
+<GFCN \1aGEN-SETG ("VALUE" ANY ANY ANY ANY ANY) ATM4 VAL5 DCL6 WHERE7>
+                   <TEMP TEMP16 TEM8:TEMP TEMP21 TG19 TEMP23:LIST>
+                   <INTGO>
+                   <TYPE? ATM4 <TYPE-CODE ATOM> - PHRASE12>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`SETG>
+                   <FRAME '\1aFORM>
+                   <PUSH 'QUOTE>
+                   <PUSH ATM4>
+                   <DEAD ATM4>
+                   <CALL '\1aFORM 2 = STACK>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH VAL5>
+                   <DEAD VAL5>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <CALL '\1aIEMIT 3 = TEMP16>
+                   <RETURN TEMP16>
+                   <DEAD TEMP16>
+PHRASE12
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHR>
+                   <PUSH ATM4>
+                   <PUSH 1>
+                   <PUSH '=>
+                   <FRAME '\1aGEN-TEMP>
+                   <CALL '\1aGEN-TEMP 0 = TEM8>
+                   <PUSH TEM8>
+                   <GVAL 'RAT = STACK>
+                   <CONS '`BRANCH-FALSE () = TEMP16>
+                   <CONS '+ () = TEMP21>
+                   <PUTREST TEMP16 TEMP21>
+                   <FRAME '\1aMAKE-TAG>
+                   <CALL '\1aMAKE-TAG 0 = TG19>
+                   <CONS TG19 () = TEMP23>
+                   <PUTREST TEMP21 TEMP23>
+                   <DEAD TEMP21 TEMP23>
+                   <PUSH TEMP16>
+                   <DEAD TEMP16>
+                   <CALL '\1aIEMIT 7>
+                   <FRAME '\1aSPEC-IEMIT>
+                   <PUSH '`TYPE?>
+                   <PUSH TEM8>
+                   <PUSH <`TYPE-CODE FALSE>>
+                   <PUSH '+>
+                   <PUSH TG19>
+                   <CALL '\1aSPEC-IEMIT 5>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`PUTR>
+                   <PUSH TEM8>
+                   <PUSH 1>
+                   <PUSH VAL5>
+                   <GVAL 'RGBN = STACK>
+                   <CALL '\1aIEMIT 5>
+                   <TYPE? DCL6 <TYPE-CODE FALSE> + PHRASE27>
+                   <FRAME '\1aIEMIT>
+                   <PUSH TEM8>
+                   <PUSH '`PUTR>
+                   <PUSH 3>
+                   <PUSH DCL6>
+                   <GVAL 'RGBN = STACK>
+                   <CALL '\1aIEMIT 5>
+PHRASE27
+                   <FRAME '\1aBRANCH-TAG>
+                   <FRAME '\1aMAKE-TAG>
+                   <CALL '\1aMAKE-TAG 0 = TEMP21>
+                   <PUSH TEMP21>
+                   <CALL '\1aBRANCH-TAG 1>
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH TG19>
+                   <DEAD TG19>
+                   <CALL '\1aLABEL-TAG 1>
+                   <FRAME '\1aSTART-FRAME>
+                   <PUSH 'SETG>
+                   <CALL '\1aSTART-FRAME 1>
+                   <FRAME '\1aPUSH>
+                   <PUSH ATM4>
+                   <DEAD ATM4>
+                   <CALL '\1aPUSH 1>
+                   <FRAME '\1aPUSH>
+                   <PUSH VAL5>
+                   <CALL '\1aPUSH 1>
+                   <TYPE? DCL6 <TYPE-CODE FALSE> + PHRASE36>
+                   <FRAME '\1aPUSH>
+                   <PUSH DCL6>
+                   <CALL '\1aPUSH 1>
+PHRASE36
+                   <EQUAL? WHERE7 'FLUSHED + PHRASE39>
+                   <DEAD WHERE7>
+                   <FRAME '\1aMSUBR-CALL>
+                   <PUSH 'SETG>
+                   <TYPE? DCL6 <TYPE-CODE FALSE> + PHRASE42>
+                   <DEAD DCL6>
+                   <SET TEMP16 3 (TYPE FIX)>
+                   <JUMP + PHRASE43>
+PHRASE42
+                   <SET TEMP16 2 (TYPE FIX)>
+PHRASE43
+                   <PUSH TEMP16>
+                   <DEAD TEMP16>
+                   <PUSH VAL5>
+                   <DEAD VAL5>
+                   <CALL '\1aMSUBR-CALL 3>
+                   <JUMP + PHRASE44>
+PHRASE39
+                   <FRAME '\1aMSUBR-CALL>
+                   <PUSH 'SETG>
+                   <TYPE? DCL6 <TYPE-CODE FALSE> + PHRASE47>
+                   <DEAD DCL6>
+                   <SET TEMP16 3 (TYPE FIX)>
+                   <JUMP + PHRASE48>
+PHRASE47
+                   <SET TEMP16 2 (TYPE FIX)>
+PHRASE48
+                   <PUSH TEMP16>
+                   <DEAD TEMP16>
+                   <PUSH 'FLUSHED>
+                   <CALL '\1aMSUBR-CALL 3>
+PHRASE44
+                   <FRAME '\1aLABEL-TAG>
+                   <PUSH TEMP21>
+                   <DEAD TEMP21>
+                   <CALL '\1aLABEL-TAG 1>
+                   <FRAME '\1aFREE-TEMP>
+                   <PUSH TEM8>
+                   <DEAD TEM8>
+                   <CALL '\1aFREE-TEMP 1 = TEMP16>
+                   <RETURN TEMP16>
+                   <DEAD TEMP16>
+                   <END \1aGEN-SETG>
+"Generate CHTYPE"
+
+#WORD *33653725540*
+<GFCN \1aGEN-CHTYPE ("VALUE" ATOM ANY ANY ANY) ITM4 TYP5 W6>
+                   <TEMP TEMP11>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`CHTYPE>
+                   <PUSH ITM4>
+                   <DEAD ITM4>
+                   <TYPE? TYP5 <TYPE-CODE ATOM> - PHRASE9>
+                   <NTHR TYP5 5 = TEMP11 (RECORD-TYPE ATOM) (BRANCH-FALSE + PHRASE9)>
+                   <TYPE? TEMP11 <TYPE-CODE FALSE> + PHRASE9>
+                   <DEAD TEMP11>
+                   <FRAME '\1aFORM>
+                   <PUSH '`TYPE-CODE>
+                   <PUSH TYP5>
+                   <DEAD TYP5>
+                   <CALL '\1aFORM 2 = TEMP11>
+                   <JUMP + PHRASE13>
+PHRASE9
+                   <SET TEMP11 TYP5>
+                   <DEAD TYP5>
+PHRASE13
+                   <PUSH TEMP11>
+                   <DEAD TEMP11>
+                   <PUSH '=>
+                   <PUSH W6>
+                   <DEAD W6>
+                   <CALL '\1aIEMIT 5 = TEMP11>
+                   <RETURN TEMP11>
+                   <DEAD TEMP11>
+                   <END \1aGEN-CHTYPE>
+#WORD *4052555024*
+<GFCN \1aD-B-TAG ("VALUE" ATOM ANY ANY ANY ANY) BR4 WH5 DIR6 TYP7>
+                   <TEMP TEMP12>
+                   <INTGO>
+                   <FRAME '\1aTYPE-OK?>
+                   <PUSH TYP7>
+                   <PUSH <FALSE ANY>>
+                   <CALL '\1aTYPE-OK? 2 = TEMP12>
+                   <TYPE? TEMP12 <TYPE-CODE FALSE> - PHRASE9>
+                   <DEAD TEMP12>
+                   <FRAME '\1aTYPE-AND>
+                   <PUSH TYP7>
+                   <DEAD TYP7>
+                   <PUSH <NOT FALSE>>
+                   <CALL '\1aTYPE-AND 2 = TYP7>
+                   <TYPE? TYP7 <TYPE-CODE FALSE> + PHRASE9>
+                   <FRAME '\1aTYPE-OK?>
+                   <PUSH TYP7>
+                   <PUSH <PRIMTYPE FIX>>
+                   <CALL '\1aTYPE-OK? 2 = TEMP12>
+                   <TYPE? TEMP12 <TYPE-CODE FALSE> - PHRASE9>
+                   <DEAD TEMP12>
+                   <FRAME '\1aTYPE-AND>
+                   <PUSH TYP7>
+                   <DEAD TYP7>
+                   <PUSH <PRIMTYPE LIST>>
+                   <CALL '\1aTYPE-AND 2 = TYP7>
+                   <TYPE? TYP7 <TYPE-CODE FALSE> + BOOL15>
+                   <FRAME '\1aMINL>
+                   <PUSH TYP7>
+                   <DEAD TYP7>
+                   <CALL '\1aMINL 1 = TEMP12>
+                   <GRTR? TEMP12 0 - PHRASE9 (TYPE FIX)>
+                   <DEAD TEMP12>
+BOOL15
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`VEQUAL?>
+                   <PUSH WH5>
+                   <DEAD WH5>
+                   <PUSH 0>
+                   <TYPE? DIR6 <TYPE-CODE FALSE> + PHRASE22>
+                   <DEAD DIR6>
+                   <SET TEMP12 '- (TYPE ATOM)>
+                   <JUMP + PHRASE23>
+PHRASE22
+                   <SET TEMP12 '+ (TYPE ATOM)>
+PHRASE23
+                   <PUSH TEMP12>
+                   <DEAD TEMP12>
+                   <PUSH BR4>
+                   <DEAD BR4>
+                   <CALL '\1aIEMIT 5 = TEMP12>
+                   <RETURN TEMP12>
+                   <DEAD TEMP12>
+PHRASE9
+                   <FRAME '\1aGEN-TYPE?>
+                   <PUSH WH5>
+                   <DEAD WH5>
+                   <PUSH 'FALSE>
+                   <PUSH BR4>
+                   <DEAD BR4>
+                   <TYPE? DIR6 <TYPE-CODE FALSE> - TAG26>
+                   <DEAD DIR6>
+                   <SET TEMP12 'T (TYPE ATOM)>
+                   <JUMP + TAG27>
+TAG26
+                   <SET TEMP12 %<> (TYPE FALSE)>
+TAG27
+                   <PUSH TEMP12>
+                   <DEAD TEMP12>
+                   <CALL '\1aGEN-TYPE? 4 = TEMP12>
+                   <RETURN TEMP12>
+                   <DEAD TEMP12>
+                   <END \1aD-B-TAG>
+#WORD *27467444044*
+<GFCN \1aMIM-RETURN ("VALUE" ATOM "OPTIONAL" ANY) VAL6>
+                   <OPT-DISPATCH 0 %<> OPT4 OPT5>
+OPT4
+                   <PUSH #T$UNBOUND 0>
+OPT5
+                   <TEMP TEMP11:ATOM>
+                   <INTGO>
+                   <TYPE? VAL6 <TYPE-CODE UNBOUND> - TAG7>
+                   <GVAL 'POP-STACK = VAL6>
+TAG7
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`RETURN>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH VAL6>
+                   <DEAD VAL6>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <CALL '\1aIEMIT 2 = TEMP11>
+                   <RETURN TEMP11>
+                   <DEAD TEMP11>
+                   <END \1aMIM-RETURN>
+#WORD *31253005015*
+<GFCN \1aRET-TMP-AC ("VALUE" ANY ANY) X4>
+                   <TEMP>
+                   <INTGO>
+                   <RETURN X4>
+                   <DEAD X4>
+                   <END \1aRET-TMP-AC>
+#WORD *5726064271*
+<GFCN \1aGEN-SHIFT ("VALUE" ATOM ANY ANY ANY) DAT4 AMT5 W6>
+                   <TEMP TEMP8:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`LSH>
+                   <PUSH DAT4>
+                   <DEAD DAT4>
+                   <PUSH AMT5>
+                   <DEAD AMT5>
+                   <PUSH '=>
+                   <PUSH W6>
+                   <DEAD W6>
+                   <PUSH (`TYPE FIX)>
+                   <CALL '\1aIEMIT 6 = TEMP8>
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aGEN-SHIFT>
+#WORD *7656341160*
+<GFCN \1aNTH-LIST ("VALUE" ATOM ANY ANY ANY "OPTIONAL" ANY) SRC6 DST7 AMT8 RESTYP9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP13>
+                   <INTGO>
+                   <TYPE? RESTYP9 <TYPE-CODE FALSE> + PHRASE11>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHL>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH AMT8>
+                   <DEAD AMT8>
+                   <PUSH '=>
+                   <PUSH DST7>
+                   <DEAD DST7>
+                   <CONS RESTYP9 () = TEMP13>
+                   <DEAD RESTYP9>
+                   <CONS '`TYPE TEMP13 = STACK>
+                   <DEAD TEMP13>
+                   <CALL '\1aIEMIT 6 = TEMP13>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+PHRASE11
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHL>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH AMT8>
+                   <DEAD AMT8>
+                   <PUSH '=>
+                   <PUSH DST7>
+                   <DEAD DST7>
+                   <CALL '\1aIEMIT 5 = TEMP13>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+                   <END \1aNTH-LIST>
+#WORD *37642615207*
+<GFCN \1aNTH-UVECTOR ("VALUE" ATOM ANY ANY ANY "OPTIONAL" ANY) SRC6 DST7 AMT8 RESTYP9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP13>
+                   <INTGO>
+                   <TYPE? RESTYP9 <TYPE-CODE FALSE> + PHRASE11>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHUU>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH AMT8>
+                   <DEAD AMT8>
+                   <PUSH '=>
+                   <PUSH DST7>
+                   <DEAD DST7>
+                   <CONS RESTYP9 () = TEMP13>
+                   <DEAD RESTYP9>
+                   <CONS '`TYPE TEMP13 = STACK>
+                   <DEAD TEMP13>
+                   <CALL '\1aIEMIT 6 = TEMP13>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+PHRASE11
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHUU>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH AMT8>
+                   <DEAD AMT8>
+                   <PUSH '=>
+                   <PUSH DST7>
+                   <DEAD DST7>
+                   <CALL '\1aIEMIT 5 = TEMP13>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+                   <END \1aNTH-UVECTOR>
+#WORD *37642623207*
+<GFCN \1aNTH-VECTOR ("VALUE" ATOM ANY ANY ANY "OPTIONAL" ANY) SRC6 DST7 AMT8 RESTYP9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP13>
+                   <INTGO>
+                   <TYPE? RESTYP9 <TYPE-CODE FALSE> + PHRASE11>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHUV>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH AMT8>
+                   <DEAD AMT8>
+                   <PUSH '=>
+                   <PUSH DST7>
+                   <DEAD DST7>
+                   <CONS RESTYP9 () = TEMP13>
+                   <DEAD RESTYP9>
+                   <CONS '`TYPE TEMP13 = STACK>
+                   <DEAD TEMP13>
+                   <CALL '\1aIEMIT 6 = TEMP13>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+PHRASE11
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHUV>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH AMT8>
+                   <DEAD AMT8>
+                   <PUSH '=>
+                   <PUSH DST7>
+                   <DEAD DST7>
+                   <CALL '\1aIEMIT 5 = TEMP13>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+                   <END \1aNTH-VECTOR>
+#WORD *37642661207*
+<GFCN \1aNTH-STRING ("VALUE" ATOM ANY ANY ANY "OPTIONAL" ANY) SRC6 DST7 AMT8 RESTYP9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP13>
+                   <INTGO>
+                   <TYPE? RESTYP9 <TYPE-CODE FALSE> + PHRASE11>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHUS>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH AMT8>
+                   <DEAD AMT8>
+                   <PUSH '=>
+                   <PUSH DST7>
+                   <DEAD DST7>
+                   <CONS RESTYP9 () = TEMP13>
+                   <DEAD RESTYP9>
+                   <CONS '`TYPE TEMP13 = STACK>
+                   <DEAD TEMP13>
+                   <CALL '\1aIEMIT 6 = TEMP13>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+PHRASE11
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHUS>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH AMT8>
+                   <DEAD AMT8>
+                   <PUSH '=>
+                   <PUSH DST7>
+                   <DEAD DST7>
+                   <CALL '\1aIEMIT 5 = TEMP13>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+                   <END \1aNTH-STRING>
+#WORD *37642433207*
+<GFCN \1aNTH-BYTES ("VALUE" ATOM ANY ANY ANY "OPTIONAL" ANY) SRC6 DST7 AMT8 RESTYP9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP13>
+                   <INTGO>
+                   <TYPE? RESTYP9 <TYPE-CODE FALSE> + PHRASE11>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHUB>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH AMT8>
+                   <DEAD AMT8>
+                   <PUSH '=>
+                   <PUSH DST7>
+                   <DEAD DST7>
+                   <CONS RESTYP9 () = TEMP13>
+                   <DEAD RESTYP9>
+                   <CONS '`TYPE TEMP13 = STACK>
+                   <DEAD TEMP13>
+                   <CALL '\1aIEMIT 6 = TEMP13>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+PHRASE11
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHUB>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH AMT8>
+                   <DEAD AMT8>
+                   <PUSH '=>
+                   <PUSH DST7>
+                   <DEAD DST7>
+                   <CALL '\1aIEMIT 5 = TEMP13>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+                   <END \1aNTH-BYTES>
+#WORD *36622040206*
+<GFCN \1aNTH-RECORD ("VALUE" ATOM ANY ANY ANY ANY "OPTIONAL" ANY) SRC6 DST7 AMT8 TPS9 RESTYP10>
+                   <OPT-DISPATCH 4 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP14>
+                   <INTGO>
+                   <TYPE? RESTYP10 <TYPE-CODE FALSE> + PHRASE12>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHR>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH AMT8>
+                   <DEAD AMT8>
+                   <PUSH '=>
+                   <PUSH DST7>
+                   <DEAD DST7>
+                   <CONS TPS9 () = TEMP14>
+                   <DEAD TPS9>
+                   <CONS '`RECORD-TYPE TEMP14 = STACK>
+                   <DEAD TEMP14>
+                   <CONS RESTYP10 () = TEMP14>
+                   <DEAD RESTYP10>
+                   <CONS '`TYPE TEMP14 = STACK>
+                   <DEAD TEMP14>
+                   <CALL '\1aIEMIT 7 = TEMP14>
+                   <RETURN TEMP14>
+                   <DEAD TEMP14>
+PHRASE12
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHR>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH AMT8>
+                   <DEAD AMT8>
+                   <PUSH '=>
+                   <PUSH DST7>
+                   <DEAD DST7>
+                   <CONS TPS9 () = TEMP14>
+                   <DEAD TPS9>
+                   <CONS '`RECORD-TYPE TEMP14 = STACK>
+                   <DEAD TEMP14>
+                   <CALL '\1aIEMIT 6 = TEMP14>
+                   <RETURN TEMP14>
+                   <DEAD TEMP14>
+                   <END \1aNTH-RECORD>
+#WORD *26165674423*
+<GFCN \1aREST-LIST ("VALUE" ATOM ANY ANY ANY) SRC4 DST5 AMT6>
+                   <TEMP TEMP8:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`RESTL>
+                   <PUSH SRC4>
+                   <DEAD SRC4>
+                   <PUSH AMT6>
+                   <DEAD AMT6>
+                   <PUSH '=>
+                   <PUSH DST5>
+                   <DEAD DST5>
+                   <PUSH (`TYPE LIST)>
+                   <CALL '\1aIEMIT 6 = TEMP8>
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aREST-LIST>
+#WORD *31527275142*
+<GFCN \1aREST-UVECTOR ("VALUE" ATOM ANY ANY ANY) SRC4 DST5 AMT6>
+                   <TEMP TEMP8:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`RESTUU>
+                   <PUSH SRC4>
+                   <DEAD SRC4>
+                   <PUSH AMT6>
+                   <DEAD AMT6>
+                   <PUSH '=>
+                   <PUSH DST5>
+                   <DEAD DST5>
+                   <PUSH (`TYPE UVECTOR)>
+                   <CALL '\1aIEMIT 6 = TEMP8>
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aREST-UVECTOR>
+#WORD *1112506473*
+<GFCN \1aREST-VECTOR ("VALUE" ATOM ANY ANY ANY "OPTIONAL" ANY) SRC6 DST7 AMT8 TY9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH #T$UNBOUND 0>
+OPT5
+                   <TEMP TEMP13>
+                   <INTGO>
+                   <TYPE? TY9 <TYPE-CODE UNBOUND> + PHRASE11>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`RESTUV>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH AMT8>
+                   <DEAD AMT8>
+                   <PUSH '=>
+                   <PUSH DST7>
+                   <DEAD DST7>
+                   <CONS TY9 () = TEMP13>
+                   <DEAD TY9>
+                   <CONS '`TYPE TEMP13 = STACK>
+                   <DEAD TEMP13>
+                   <CALL '\1aIEMIT 6 = TEMP13>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+PHRASE11
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`RESTUV>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH AMT8>
+                   <DEAD AMT8>
+                   <PUSH '=>
+                   <PUSH DST7>
+                   <DEAD DST7>
+                   <CALL '\1aIEMIT 5 = TEMP13>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+                   <END \1aREST-VECTOR>
+#WORD *17426161542*
+<GFCN \1aREST-STRING ("VALUE" ATOM ANY ANY ANY) SRC4 DST5 AMT6>
+                   <TEMP TEMP8:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`RESTUS>
+                   <PUSH SRC4>
+                   <DEAD SRC4>
+                   <PUSH AMT6>
+                   <DEAD AMT6>
+                   <PUSH '=>
+                   <PUSH DST5>
+                   <DEAD DST5>
+                   <PUSH (`TYPE STRING)>
+                   <CALL '\1aIEMIT 6 = TEMP8>
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aREST-STRING>
+#WORD *23726174240*
+<GFCN \1aREST-BYTES ("VALUE" ATOM ANY ANY ANY) SRC4 DST5 AMT6>
+                   <TEMP TEMP8:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`RESTUB>
+                   <PUSH SRC4>
+                   <DEAD SRC4>
+                   <PUSH AMT6>
+                   <DEAD AMT6>
+                   <PUSH '=>
+                   <PUSH DST5>
+                   <DEAD DST5>
+                   <PUSH (`TYPE BYTES)>
+                   <CALL '\1aIEMIT 6 = TEMP8>
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aREST-BYTES>
+#WORD *2775313625*
+<GFCN \1aEMPTY-LIST ("VALUE" ATOM ANY ANY ANY "OPTIONAL" ANY) SRC6 TG7 DIR8 TY9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP15>
+                   <INTGO>
+                   <TYPE? TY9 <TYPE-CODE FALSE> + PHRASE11>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`EMPL?>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> + PHRASE14>
+                   <DEAD DIR8>
+                   <SET TEMP15 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE16>
+PHRASE14
+                   <SET TEMP15 '- (TYPE ATOM)>
+PHRASE16
+                   <PUSH TEMP15>
+                   <DEAD TEMP15>
+                   <PUSH TG7>
+                   <DEAD TG7>
+                   <CONS TY9 () = TEMP15>
+                   <DEAD TY9>
+                   <CONS '`TYPE TEMP15 = STACK>
+                   <DEAD TEMP15>
+                   <CALL '\1aIEMIT 5 = TEMP15>
+                   <RETURN TEMP15>
+                   <DEAD TEMP15>
+PHRASE11
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`EMPL?>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> + PHRASE20>
+                   <DEAD DIR8>
+                   <SET TEMP15 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE22>
+PHRASE20
+                   <SET TEMP15 '- (TYPE ATOM)>
+PHRASE22
+                   <PUSH TEMP15>
+                   <DEAD TEMP15>
+                   <PUSH TG7>
+                   <DEAD TG7>
+                   <CALL '\1aIEMIT 4 = TEMP15>
+                   <RETURN TEMP15>
+                   <DEAD TEMP15>
+                   <END \1aEMPTY-LIST>
+#WORD *11563557552*
+<GFCN \1aEMPTY-UVECTOR ("VALUE" ATOM ANY ANY ANY "OPTIONAL" ANY) SRC6 TG7 DIR8 TY9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP15>
+                   <INTGO>
+                   <TYPE? TY9 <TYPE-CODE FALSE> + PHRASE11>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`EMPUU?>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> + PHRASE14>
+                   <DEAD DIR8>
+                   <SET TEMP15 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE16>
+PHRASE14
+                   <SET TEMP15 '- (TYPE ATOM)>
+PHRASE16
+                   <PUSH TEMP15>
+                   <DEAD TEMP15>
+                   <PUSH TG7>
+                   <DEAD TG7>
+                   <CONS TY9 () = TEMP15>
+                   <DEAD TY9>
+                   <CONS '`TYPE TEMP15 = STACK>
+                   <DEAD TEMP15>
+                   <CALL '\1aIEMIT 5 = TEMP15>
+                   <RETURN TEMP15>
+                   <DEAD TEMP15>
+PHRASE11
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`EMPUU?>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> + PHRASE20>
+                   <DEAD DIR8>
+                   <SET TEMP15 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE22>
+PHRASE20
+                   <SET TEMP15 '- (TYPE ATOM)>
+PHRASE22
+                   <PUSH TEMP15>
+                   <DEAD TEMP15>
+                   <PUSH TG7>
+                   <DEAD TG7>
+                   <CALL '\1aIEMIT 4 = TEMP15>
+                   <RETURN TEMP15>
+                   <DEAD TEMP15>
+                   <END \1aEMPTY-UVECTOR>
+#WORD *11563561552*
+<GFCN \1aEMPTY-VECTOR ("VALUE" ATOM ANY ANY ANY "OPTIONAL" ANY) SRC6 TG7 DIR8 TY9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP15>
+                   <INTGO>
+                   <TYPE? TY9 <TYPE-CODE FALSE> + PHRASE11>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`EMPUV?>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> + PHRASE14>
+                   <DEAD DIR8>
+                   <SET TEMP15 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE16>
+PHRASE14
+                   <SET TEMP15 '- (TYPE ATOM)>
+PHRASE16
+                   <PUSH TEMP15>
+                   <DEAD TEMP15>
+                   <PUSH TG7>
+                   <DEAD TG7>
+                   <CONS TY9 () = TEMP15>
+                   <DEAD TY9>
+                   <CONS '`TYPE TEMP15 = STACK>
+                   <DEAD TEMP15>
+                   <CALL '\1aIEMIT 5 = TEMP15>
+                   <RETURN TEMP15>
+                   <DEAD TEMP15>
+PHRASE11
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`EMPUV?>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> + PHRASE20>
+                   <DEAD DIR8>
+                   <SET TEMP15 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE22>
+PHRASE20
+                   <SET TEMP15 '- (TYPE ATOM)>
+PHRASE22
+                   <PUSH TEMP15>
+                   <DEAD TEMP15>
+                   <PUSH TG7>
+                   <DEAD TG7>
+                   <CALL '\1aIEMIT 4 = TEMP15>
+                   <RETURN TEMP15>
+                   <DEAD TEMP15>
+                   <END \1aEMPTY-VECTOR>
+#WORD *11563523552*
+<GFCN \1aEMPTY-STRING ("VALUE" ATOM ANY ANY ANY "OPTIONAL" ANY) SRC6 TG7 DIR8 TY9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP15>
+                   <INTGO>
+                   <TYPE? TY9 <TYPE-CODE FALSE> + PHRASE11>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`EMPUS?>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> + PHRASE14>
+                   <DEAD DIR8>
+                   <SET TEMP15 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE16>
+PHRASE14
+                   <SET TEMP15 '- (TYPE ATOM)>
+PHRASE16
+                   <PUSH TEMP15>
+                   <DEAD TEMP15>
+                   <PUSH TG7>
+                   <DEAD TG7>
+                   <CONS TY9 () = TEMP15>
+                   <DEAD TY9>
+                   <CONS '`TYPE TEMP15 = STACK>
+                   <DEAD TEMP15>
+                   <CALL '\1aIEMIT 5 = TEMP15>
+                   <RETURN TEMP15>
+                   <DEAD TEMP15>
+PHRASE11
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`EMPUS?>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> + PHRASE20>
+                   <DEAD DIR8>
+                   <SET TEMP15 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE22>
+PHRASE20
+                   <SET TEMP15 '- (TYPE ATOM)>
+PHRASE22
+                   <PUSH TEMP15>
+                   <DEAD TEMP15>
+                   <PUSH TG7>
+                   <DEAD TG7>
+                   <CALL '\1aIEMIT 4 = TEMP15>
+                   <RETURN TEMP15>
+                   <DEAD TEMP15>
+                   <END \1aEMPTY-STRING>
+#WORD *11563771552*
+<GFCN \1aEMPTY-BYTES ("VALUE" ATOM ANY ANY ANY "OPTIONAL" ANY) SRC6 TG7 DIR8 TY9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP15>
+                   <INTGO>
+                   <TYPE? TY9 <TYPE-CODE FALSE> + PHRASE11>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`EMPUB?>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> + PHRASE14>
+                   <DEAD DIR8>
+                   <SET TEMP15 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE16>
+PHRASE14
+                   <SET TEMP15 '- (TYPE ATOM)>
+PHRASE16
+                   <PUSH TEMP15>
+                   <DEAD TEMP15>
+                   <PUSH TG7>
+                   <DEAD TG7>
+                   <CONS TY9 () = TEMP15>
+                   <DEAD TY9>
+                   <CONS '`TYPE TEMP15 = STACK>
+                   <DEAD TEMP15>
+                   <CALL '\1aIEMIT 5 = TEMP15>
+                   <RETURN TEMP15>
+                   <DEAD TEMP15>
+PHRASE11
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`EMPUB?>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <TYPE? DIR8 <TYPE-CODE FALSE> + PHRASE20>
+                   <DEAD DIR8>
+                   <SET TEMP15 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE22>
+PHRASE20
+                   <SET TEMP15 '- (TYPE ATOM)>
+PHRASE22
+                   <PUSH TEMP15>
+                   <DEAD TEMP15>
+                   <PUSH TG7>
+                   <DEAD TG7>
+                   <CALL '\1aIEMIT 4 = TEMP15>
+                   <RETURN TEMP15>
+                   <DEAD TEMP15>
+                   <END \1aEMPTY-BYTES>
+#WORD *1702352460*
+<GFCN \1aEMPTY-RECORD ("VALUE" ATOM ANY ANY ANY ANY) SRC4 TG5 DIR6 TPS7>
+                   <TEMP TEMP11>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`EMPR?>
+                   <PUSH SRC4>
+                   <DEAD SRC4>
+                   <TYPE? DIR6 <TYPE-CODE FALSE> + PHRASE10>
+                   <DEAD DIR6>
+                   <SET TEMP11 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE12>
+PHRASE10
+                   <SET TEMP11 '- (TYPE ATOM)>
+PHRASE12
+                   <PUSH TEMP11>
+                   <DEAD TEMP11>
+                   <PUSH TG5>
+                   <DEAD TG5>
+                   <CONS TPS7 () = TEMP11>
+                   <DEAD TPS7>
+                   <CONS '`RECORD-TYPE TEMP11 = STACK>
+                   <DEAD TEMP11>
+                   <CALL '\1aIEMIT 5 = TEMP11>
+                   <RETURN TEMP11>
+                   <DEAD TEMP11>
+                   <END \1aEMPTY-RECORD>
+#WORD *36742164650*
+<GFCN \1aLENGTH-LIST ("VALUE" ATOM ANY ANY) SRC4 DST5>
+                   <TEMP TEMP7:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`LENL>
+                   <PUSH SRC4>
+                   <DEAD SRC4>
+                   <PUSH '=>
+                   <PUSH DST5>
+                   <DEAD DST5>
+                   <PUSH (`TYPE FIX)>
+                   <CALL '\1aIEMIT 5 = TEMP7>
+                   <RETURN TEMP7>
+                   <DEAD TEMP7>
+                   <END \1aLENGTH-LIST>
+#WORD *36742544644*
+<GFCN \1aLENGTH-UVECTOR ("VALUE" ATOM ANY ANY) SRC4 DST5>
+                   <TEMP TEMP7:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`LENUU>
+                   <PUSH SRC4>
+                   <DEAD SRC4>
+                   <PUSH '=>
+                   <PUSH DST5>
+                   <DEAD DST5>
+                   <PUSH (`TYPE FIX)>
+                   <CALL '\1aIEMIT 5 = TEMP7>
+                   <RETURN TEMP7>
+                   <DEAD TEMP7>
+                   <END \1aLENGTH-UVECTOR>
+#WORD *36742545244*
+<GFCN \1aLENGTH-VECTOR ("VALUE" ATOM ANY ANY) SRC4 DST5>
+                   <TEMP TEMP7:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`LENUV>
+                   <PUSH SRC4>
+                   <DEAD SRC4>
+                   <PUSH '=>
+                   <PUSH DST5>
+                   <DEAD DST5>
+                   <PUSH (`TYPE FIX)>
+                   <CALL '\1aIEMIT 5 = TEMP7>
+                   <RETURN TEMP7>
+                   <DEAD TEMP7>
+                   <END \1aLENGTH-VECTOR>
+#WORD *36742547644*
+<GFCN \1aLENGTH-STRING ("VALUE" ATOM ANY ANY) SRC4 DST5>
+                   <TEMP TEMP7:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`LENUS>
+                   <PUSH SRC4>
+                   <DEAD SRC4>
+                   <PUSH '=>
+                   <PUSH DST5>
+                   <DEAD DST5>
+                   <PUSH (`TYPE FIX)>
+                   <CALL '\1aIEMIT 5 = TEMP7>
+                   <RETURN TEMP7>
+                   <DEAD TEMP7>
+                   <END \1aLENGTH-STRING>
+#WORD *36742557244*
+<GFCN \1aLENGTH-BYTES ("VALUE" ATOM ANY ANY) SRC4 DST5>
+                   <TEMP TEMP7:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`LENUB>
+                   <PUSH SRC4>
+                   <DEAD SRC4>
+                   <PUSH '=>
+                   <PUSH DST5>
+                   <DEAD DST5>
+                   <PUSH (`TYPE FIX)>
+                   <CALL '\1aIEMIT 5 = TEMP7>
+                   <RETURN TEMP7>
+                   <DEAD TEMP7>
+                   <END \1aLENGTH-BYTES>
+#WORD *24305305022*
+<GFCN \1aLENGTH-RECORD ("VALUE" ATOM ANY ANY ANY) SRC4 DST5 TPS6>
+                   <TEMP TEMP8>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`LENR>
+                   <PUSH SRC4>
+                   <DEAD SRC4>
+                   <PUSH '=>
+                   <PUSH DST5>
+                   <DEAD DST5>
+                   <CONS TPS6 () = TEMP8>
+                   <DEAD TPS6>
+                   <CONS '`RECORD-TYPE TEMP8 = STACK>
+                   <DEAD TEMP8>
+                   <PUSH (`TYPE FIX)>
+                   <CALL '\1aIEMIT 6 = TEMP8>
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aLENGTH-RECORD>
+#WORD *30661471225*
+<GFCN \1aPUT-LIST ("VALUE" ATOM ANY ANY ANY "OPTIONAL" ANY) SRC6 NUM7 NEW8 TY9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP14:ATOM>
+                   <INTGO>
+                   <TYPE? TY9 <TYPE-CODE FALSE> + PHRASE11>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`PUTL>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH NUM7>
+                   <DEAD NUM7>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH NEW8>
+                   <DEAD NEW8>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <PUSH TY9>
+                   <DEAD TY9>
+                   <CALL '\1aIEMIT 5 = TEMP14>
+                   <RETURN TEMP14>
+                   <DEAD TEMP14>
+PHRASE11
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`PUTL>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH NUM7>
+                   <DEAD NUM7>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH NEW8>
+                   <DEAD NEW8>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <CALL '\1aIEMIT 4 = TEMP14>
+                   <RETURN TEMP14>
+                   <DEAD TEMP14>
+                   <END \1aPUT-LIST>
+#WORD *7456411203*
+<GFCN \1aPUT-VECTOR ("VALUE" ATOM ANY ANY ANY "OPTIONAL" ANY) SRC6 NUM7 NEW8 TY9>
+                   <OPT-DISPATCH 3 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP14:ATOM>
+                   <INTGO>
+                   <TYPE? TY9 <TYPE-CODE FALSE> + PHRASE11>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`PUTUV>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH NUM7>
+                   <DEAD NUM7>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH NEW8>
+                   <DEAD NEW8>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <PUSH TY9>
+                   <DEAD TY9>
+                   <CALL '\1aIEMIT 5 = TEMP14>
+                   <RETURN TEMP14>
+                   <DEAD TEMP14>
+PHRASE11
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`PUTUV>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH NUM7>
+                   <DEAD NUM7>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH NEW8>
+                   <DEAD NEW8>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <CALL '\1aIEMIT 4 = TEMP14>
+                   <RETURN TEMP14>
+                   <DEAD TEMP14>
+                   <END \1aPUT-VECTOR>
+#WORD *11513072505*
+<GFCN \1aPUT-UVECTOR ("VALUE" ATOM ANY ANY ANY) SRC4 NUM5 NEW6>
+                   <TEMP TEMP8:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`PUTUU>
+                   <PUSH SRC4>
+                   <DEAD SRC4>
+                   <PUSH NUM5>
+                   <DEAD NUM5>
+                   <PUSH NEW6>
+                   <DEAD NEW6>
+                   <CALL '\1aIEMIT 4 = TEMP8>
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aPUT-UVECTOR>
+#WORD *11613072505*
+<GFCN \1aPUT-STRING ("VALUE" ATOM ANY ANY ANY) SRC4 NUM5 NEW6>
+                   <TEMP TEMP8:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`PUTUS>
+                   <PUSH SRC4>
+                   <DEAD SRC4>
+                   <PUSH NUM5>
+                   <DEAD NUM5>
+                   <PUSH NEW6>
+                   <DEAD NEW6>
+                   <CALL '\1aIEMIT 4 = TEMP8>
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aPUT-STRING>
+#WORD *10653072505*
+<GFCN \1aPUT-BYTES ("VALUE" ATOM ANY ANY ANY) SRC4 NUM5 NEW6>
+                   <TEMP TEMP8:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`PUTUB>
+                   <PUSH SRC4>
+                   <DEAD SRC4>
+                   <PUSH NUM5>
+                   <DEAD NUM5>
+                   <PUSH NEW6>
+                   <DEAD NEW6>
+                   <CALL '\1aIEMIT 4 = TEMP8>
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aPUT-BYTES>
+#WORD *21515124213*
+<GFCN \1aPUT-RECORD ("VALUE" ATOM ANY ANY ANY ANY "OPTIONAL" ANY) SRC6 NUM7 NEW8 TPS9 TY10>
+                   <OPT-DISPATCH 4 %<> OPT4 OPT5>
+OPT4
+                   <PUSH %<>>
+OPT5
+                   <TEMP TEMP15>
+                   <INTGO>
+                   <TYPE? TY10 <TYPE-CODE FALSE> + PHRASE12>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`PUTR>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH NUM7>
+                   <DEAD NUM7>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH NEW8>
+                   <DEAD NEW8>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <CONS TPS9 () = TEMP15>
+                   <DEAD TPS9>
+                   <CONS '`RECORD-TYPE TEMP15 = STACK>
+                   <DEAD TEMP15>
+                   <PUSH TY10>
+                   <DEAD TY10>
+                   <CALL '\1aIEMIT 6 = TEMP15>
+                   <RETURN TEMP15>
+                   <DEAD TEMP15>
+PHRASE12
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`PUTR>
+                   <PUSH SRC6>
+                   <DEAD SRC6>
+                   <PUSH NUM7>
+                   <DEAD NUM7>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH NEW8>
+                   <DEAD NEW8>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <CONS TPS9 () = TEMP15>
+                   <DEAD TPS9>
+                   <CONS '`RECORD-TYPE TEMP15 = STACK>
+                   <DEAD TEMP15>
+                   <CALL '\1aIEMIT 5 = TEMP15>
+                   <RETURN TEMP15>
+                   <DEAD TEMP15>
+                   <END \1aPUT-RECORD>
+#WORD *6150273754*
+<GFCN \1aPROTECT ("VALUE" ANY ANY) ITM4>
+                   <TEMP TEMP8>
+                   <INTGO>
+                   <TYPE? ITM4 <TYPE-CODE TEMP> - PHRASE6>
+                   <NTHUV ITM4 2 = TEMP8 (TYPE FIX)>
+                   <VEQUAL? TEMP8 0 - PHRASE6 (TYPE FIX)>
+                   <DEAD TEMP8>
+                   <RETURN ITM4>
+                   <DEAD ITM4>
+PHRASE6
+                   <FRAME '\1aPUSH>
+                   <PUSH ITM4>
+                   <DEAD ITM4>
+                   <CALL '\1aPUSH 1 = TEMP8>
+                   <RETURN TEMP8>
+                   <DEAD TEMP8>
+                   <END \1aPROTECT>
+#WORD *31340356417*
+<GFCN \1aGEN-VAL-==? ("VALUE" ATOM ANY ANY ANY ANY) D14 D25 DIR6 BR7>
+                   <TEMP TEMP13:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`VEQUAL?>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH D14>
+                   <DEAD D14>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH D25>
+                   <DEAD D25>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <TYPE? DIR6 <TYPE-CODE FALSE> + PHRASE12>
+                   <DEAD DIR6>
+                   <SET TEMP13 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE14>
+PHRASE12
+                   <SET TEMP13 '- (TYPE ATOM)>
+PHRASE14
+                   <PUSH TEMP13>
+                   <DEAD TEMP13>
+                   <PUSH BR7>
+                   <DEAD BR7>
+                   <CALL '\1aIEMIT 5 = TEMP13>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+                   <END \1aGEN-VAL-==?>
+#WORD *5543604076*
+<GFCN \1aGEN-==? ("VALUE" ATOM ANY ANY ANY ANY) D14 D25 DIR6 BR7>
+                   <TEMP TEMP13:ATOM>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`EQUAL?>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH D14>
+                   <DEAD D14>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <FRAME '\1aATOMCHK>
+                   <PUSH D25>
+                   <DEAD D25>
+                   <CALL '\1aATOMCHK 1 = STACK>
+                   <TYPE? DIR6 <TYPE-CODE FALSE> + PHRASE12>
+                   <DEAD DIR6>
+                   <SET TEMP13 '+ (TYPE ATOM)>
+                   <JUMP + PHRASE14>
+PHRASE12
+                   <SET TEMP13 '- (TYPE ATOM)>
+PHRASE14
+                   <PUSH TEMP13>
+                   <DEAD TEMP13>
+                   <PUSH BR7>
+                   <DEAD BR7>
+                   <CALL '\1aIEMIT 5 = TEMP13>
+                   <RETURN TEMP13>
+                   <DEAD TEMP13>
+                   <END \1aGEN-==?>
+#WORD *4641046574*
+<GFCN \1aPREV-FRAME ("VALUE" ANY ANY) WHERE4>
+                   <TEMP TEMP7:LIST>
+                   <INTGO>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`CFRAME>
+                   <PUSH '=>
+                   <PUSH WHERE4>
+                   <CALL '\1aIEMIT 3>
+                   <FRAME '\1aIEMIT>
+                   <PUSH '`NTHR>
+                   <PUSH WHERE4>
+                   <PUSH 5>
+                   <PUSH '=>
+                   <PUSH WHERE4>
+                   <CONS 'FRAME () = TEMP7>
+                   <CONS '`RECORD-TYPE TEMP7 = STACK>
+                   <DEAD TEMP7>
+                   <CALL '\1aIEMIT 6>
+                   <RETURN WHERE4>
+                   <DEAD WHERE4>
+                   <END \1aPREV-FRAME>
+<ENDPACKAGE>