commit 6d3ef2e1af24e486c7aca4f5535f37a3e995beee
parent 06b224de9347a530209448d01d2874104dae2797
Author: Commit-Bot <unknown>
Date:   Fri, 12 Nov 2010 09:01:24 +0000
Automatic commit from picoLisp.tgz, From: Fri, 12 Nov 2010 09:01:24 GMT
Diffstat:
3 files changed, 596 insertions(+), 575 deletions(-)
diff --git a/ersatz/PicoLisp.java b/ersatz/PicoLisp.java
@@ -182,199 +182,200 @@ public class PicoLisp {
       mkSymbol(new Number("116"), "====", Intern);
       mkSymbol(new Number("117"), "box?", Intern);
       mkSymbol(new Number("118"), "str?", Intern);
-      mkSymbol(new Number("119"), "zap", Intern);
-      mkSymbol(new Number("120"), "chop", Intern);
-      mkSymbol(new Number("121"), "pack", Intern);
-      mkSymbol(new Number("122"), "glue", Intern);
-      mkSymbol(new Number("123"), "text", Intern);
-      mkSymbol(new Number("124"), "pre?", Intern);
-      mkSymbol(new Number("125"), "sub?", Intern);
-      mkSymbol(new Number("126"), "val", Intern);
-      mkSymbol(new Number("127"), "set", Intern);
-      mkSymbol(new Number("128"), "setq", Intern);
-      mkSymbol(new Number("129"), "xchg", Intern);
-      mkSymbol(new Number("130"), "on", Intern);
-      mkSymbol(new Number("131"), "off", Intern);
-      mkSymbol(new Number("132"), "onOff", Intern);
-      mkSymbol(new Number("133"), "zero", Intern);
-      mkSymbol(new Number("134"), "one", Intern);
-      mkSymbol(new Number("135"), "default", Intern);
-      mkSymbol(new Number("136"), "push", Intern);
-      mkSymbol(new Number("137"), "push1", Intern);
-      mkSymbol(new Number("138"), "pop", Intern);
-      mkSymbol(new Number("139"), "cut", Intern);
-      mkSymbol(new Number("140"), "del", Intern);
-      mkSymbol(new Number("141"), "queue", Intern);
-      mkSymbol(new Number("142"), "fifo", Intern);
-      mkSymbol(new Number("143"), "idx", Intern);
-      mkSymbol(new Number("144"), "lup", Intern);
-      mkSymbol(new Number("145"), "put", Intern);
-      mkSymbol(new Number("146"), "get", Intern);
-      mkSymbol(new Number("147"), "prop", Intern);
-      mkSymbol(new Number("148"), ";", Intern);
-      mkSymbol(new Number("149"), "=:", Intern);
-      mkSymbol(new Number("150"), ":", Intern);
-      mkSymbol(new Number("151"), "::", Intern);
-      mkSymbol(new Number("152"), "putl", Intern);
-      mkSymbol(new Number("153"), "getl", Intern);
-      mkSymbol(new Number("154"), "meta", Intern);
-      mkSymbol(new Number("155"), "low?", Intern);
-      mkSymbol(new Number("156"), "upp?", Intern);
-      mkSymbol(new Number("157"), "lowc", Intern);
-      mkSymbol(new Number("158"), "uppc", Intern);
-      mkSymbol(new Number("159"), "fold", Intern);
-      mkSymbol(new Number("160"), "car", Intern);
-      mkSymbol(new Number("161"), "cdr", Intern);
-      mkSymbol(new Number("162"), "caar", Intern);
-      mkSymbol(new Number("163"), "cadr", Intern);
-      mkSymbol(new Number("164"), "cdar", Intern);
-      mkSymbol(new Number("165"), "cddr", Intern);
-      mkSymbol(new Number("166"), "caaar", Intern);
-      mkSymbol(new Number("167"), "caadr", Intern);
-      mkSymbol(new Number("168"), "cadar", Intern);
-      mkSymbol(new Number("169"), "caddr", Intern);
-      mkSymbol(new Number("170"), "cdaar", Intern);
-      mkSymbol(new Number("171"), "cdadr", Intern);
-      mkSymbol(new Number("172"), "cddar", Intern);
-      mkSymbol(new Number("173"), "cdddr", Intern);
-      mkSymbol(new Number("174"), "caaaar", Intern);
-      mkSymbol(new Number("175"), "caaadr", Intern);
-      mkSymbol(new Number("176"), "caadar", Intern);
-      mkSymbol(new Number("177"), "caaddr", Intern);
-      mkSymbol(new Number("178"), "cadaar", Intern);
-      mkSymbol(new Number("179"), "cadadr", Intern);
-      mkSymbol(new Number("180"), "caddar", Intern);
-      mkSymbol(new Number("181"), "cadddr", Intern);
-      mkSymbol(new Number("182"), "cdaaar", Intern);
-      mkSymbol(new Number("183"), "cdaadr", Intern);
-      mkSymbol(new Number("184"), "cdadar", Intern);
-      mkSymbol(new Number("185"), "cdaddr", Intern);
-      mkSymbol(new Number("186"), "cddaar", Intern);
-      mkSymbol(new Number("187"), "cddadr", Intern);
-      mkSymbol(new Number("188"), "cdddar", Intern);
-      mkSymbol(new Number("189"), "cddddr", Intern);
-      mkSymbol(new Number("190"), "nth", Intern);
-      mkSymbol(new Number("191"), "con", Intern);
-      mkSymbol(new Number("192"), "cons", Intern);
-      mkSymbol(new Number("193"), "conc", Intern);
-      mkSymbol(new Number("194"), "circ", Intern);
-      mkSymbol(new Number("195"), "rot", Intern);
-      mkSymbol(new Number("196"), "list", Intern);
-      mkSymbol(new Number("197"), "need", Intern);
-      mkSymbol(new Number("198"), "range", Intern);
-      mkSymbol(new Number("199"), "full", Intern);
-      mkSymbol(new Number("200"), "make", Intern);
-      mkSymbol(new Number("201"), "made", Intern);
-      mkSymbol(new Number("202"), "chain", Intern);
-      mkSymbol(new Number("203"), "link", Intern);
-      mkSymbol(new Number("204"), "yoke", Intern);
-      mkSymbol(new Number("205"), "copy", Intern);
-      mkSymbol(new Number("206"), "mix", Intern);
-      mkSymbol(new Number("207"), "append", Intern);
-      mkSymbol(new Number("208"), "delete", Intern);
-      mkSymbol(new Number("209"), "delq", Intern);
-      mkSymbol(new Number("210"), "replace", Intern);
-      mkSymbol(new Number("211"), "strip", Intern);
-      mkSymbol(new Number("212"), "split", Intern);
-      mkSymbol(new Number("213"), "reverse", Intern);
-      mkSymbol(new Number("214"), "flip", Intern);
-      mkSymbol(new Number("215"), "trim", Intern);
-      mkSymbol(new Number("216"), "clip", Intern);
-      mkSymbol(new Number("217"), "head", Intern);
-      mkSymbol(new Number("218"), "tail", Intern);
-      mkSymbol(new Number("219"), "stem", Intern);
-      mkSymbol(new Number("220"), "fin", Intern);
-      mkSymbol(new Number("221"), "last", Intern);
-      mkSymbol(new Number("222"), "==", Intern);
-      mkSymbol(new Number("223"), "n==", Intern);
-      mkSymbol(new Number("224"), "=", Intern);
-      mkSymbol(new Number("225"), "<>", Intern);
-      mkSymbol(new Number("226"), "=0", Intern);
-      mkSymbol(new Number("227"), "=T", Intern);
-      mkSymbol(new Number("228"), "n0", Intern);
-      mkSymbol(new Number("229"), "nT", Intern);
-      mkSymbol(new Number("230"), "<", Intern);
-      mkSymbol(new Number("231"), "<=", Intern);
-      mkSymbol(new Number("232"), ">", Intern);
-      mkSymbol(new Number("233"), ">=", Intern);
-      mkSymbol(new Number("234"), "max", Intern);
-      mkSymbol(new Number("235"), "min", Intern);
-      mkSymbol(new Number("236"), "atom", Intern);
-      mkSymbol(new Number("237"), "pair", Intern);
-      mkSymbol(new Number("238"), "lst?", Intern);
-      mkSymbol(new Number("239"), "num?", Intern);
-      mkSymbol(new Number("240"), "sym?", Intern);
-      mkSymbol(new Number("241"), "flg?", Intern);
-      mkSymbol(new Number("242"), "member", Intern);
-      mkSymbol(new Number("243"), "memq", Intern);
-      mkSymbol(new Number("244"), "mmeq", Intern);
-      mkSymbol(new Number("245"), "sect", Intern);
-      mkSymbol(new Number("246"), "diff", Intern);
-      mkSymbol(new Number("247"), "index", Intern);
-      mkSymbol(new Number("248"), "offset", Intern);
-      mkSymbol(new Number("249"), "length", Intern);
-      mkSymbol(new Number("250"), "size", Intern);
-      mkSymbol(new Number("251"), "assoc", Intern);
-      mkSymbol(new Number("252"), "asoq", Intern);
-      mkSymbol(new Number("253"), "rank", Intern);
-      mkSymbol(new Number("254"), "match", Intern);
-      mkSymbol(new Number("255"), "fill", Intern);
-      mkSymbol(new Number("256"), "prove", Intern);
-      mkSymbol(new Number("257"), "->", Intern);
-      mkSymbol(new Number("258"), "unify", Intern);
-      mkSymbol(new Number("259"), "sort", Intern);
-      mkSymbol(new Number("260"), "format", Intern);
-      mkSymbol(new Number("261"), "+", Intern);
-      mkSymbol(new Number("262"), "-", Intern);
-      mkSymbol(new Number("263"), "inc", Intern);
-      mkSymbol(new Number("264"), "dec", Intern);
-      mkSymbol(new Number("265"), "*", Intern);
-      mkSymbol(new Number("266"), "*/", Intern);
-      mkSymbol(new Number("267"), "/", Intern);
-      mkSymbol(new Number("268"), "%", Intern);
-      mkSymbol(new Number("269"), ">>", Intern);
-      mkSymbol(new Number("270"), "lt0", Intern);
-      mkSymbol(new Number("271"), "ge0", Intern);
-      mkSymbol(new Number("272"), "gt0", Intern);
-      mkSymbol(new Number("273"), "abs", Intern);
-      mkSymbol(new Number("274"), "bit?", Intern);
-      mkSymbol(new Number("275"), "&", Intern);
-      mkSymbol(new Number("276"), "|", Intern);
-      mkSymbol(new Number("277"), "x|", Intern);
-      mkSymbol(new Number("278"), "seed", Intern);
-      mkSymbol(new Number("279"), "rand", Intern);
-      mkSymbol(new Number("280"), "path", Intern);
-      mkSymbol(new Number("281"), "read", Intern);
-      mkSymbol(new Number("282"), "wait", Intern);
-      mkSymbol(new Number("283"), "poll", Intern);
-      mkSymbol(new Number("284"), "peek", Intern);
-      mkSymbol(new Number("285"), "char", Intern);
-      mkSymbol(new Number("286"), "skip", Intern);
-      mkSymbol(new Number("287"), "eol", Intern);
-      mkSymbol(new Number("288"), "eof", Intern);
-      mkSymbol(new Number("289"), "from", Intern);
-      mkSymbol(new Number("290"), "till", Intern);
-      mkSymbol(new Number("291"), "line", Intern);
-      mkSymbol(new Number("292"), "any", Intern);
-      mkSymbol(new Number("293"), "sym", Intern);
-      mkSymbol(new Number("294"), "str", Intern);
-      mkSymbol(new Number("295"), "load", Intern);
-      mkSymbol(new Number("296"), "in", Intern);
-      mkSymbol(new Number("297"), "out", Intern);
-      mkSymbol(new Number("298"), "open", Intern);
-      mkSymbol(new Number("299"), "close", Intern);
-      mkSymbol(new Number("300"), "echo", Intern);
-      mkSymbol(new Number("301"), "prin", Intern);
-      mkSymbol(new Number("302"), "prinl", Intern);
-      mkSymbol(new Number("303"), "space", Intern);
-      mkSymbol(new Number("304"), "print", Intern);
-      mkSymbol(new Number("305"), "printsp", Intern);
-      mkSymbol(new Number("306"), "println", Intern);
-      mkSymbol(new Number("307"), "flush", Intern);
-      mkSymbol(new Number("308"), "port", Intern);
-      mkSymbol(new Number("309"), "accept", Intern);
-      mkSymbol(new Number("310"), "connect", Intern);
-      MaxFun = 310;
+      mkSymbol(new Number("119"), "ext?", Intern);
+      mkSymbol(new Number("120"), "zap", Intern);
+      mkSymbol(new Number("121"), "chop", Intern);
+      mkSymbol(new Number("122"), "pack", Intern);
+      mkSymbol(new Number("123"), "glue", Intern);
+      mkSymbol(new Number("124"), "text", Intern);
+      mkSymbol(new Number("125"), "pre?", Intern);
+      mkSymbol(new Number("126"), "sub?", Intern);
+      mkSymbol(new Number("127"), "val", Intern);
+      mkSymbol(new Number("128"), "set", Intern);
+      mkSymbol(new Number("129"), "setq", Intern);
+      mkSymbol(new Number("130"), "xchg", Intern);
+      mkSymbol(new Number("131"), "on", Intern);
+      mkSymbol(new Number("132"), "off", Intern);
+      mkSymbol(new Number("133"), "onOff", Intern);
+      mkSymbol(new Number("134"), "zero", Intern);
+      mkSymbol(new Number("135"), "one", Intern);
+      mkSymbol(new Number("136"), "default", Intern);
+      mkSymbol(new Number("137"), "push", Intern);
+      mkSymbol(new Number("138"), "push1", Intern);
+      mkSymbol(new Number("139"), "pop", Intern);
+      mkSymbol(new Number("140"), "cut", Intern);
+      mkSymbol(new Number("141"), "del", Intern);
+      mkSymbol(new Number("142"), "queue", Intern);
+      mkSymbol(new Number("143"), "fifo", Intern);
+      mkSymbol(new Number("144"), "idx", Intern);
+      mkSymbol(new Number("145"), "lup", Intern);
+      mkSymbol(new Number("146"), "put", Intern);
+      mkSymbol(new Number("147"), "get", Intern);
+      mkSymbol(new Number("148"), "prop", Intern);
+      mkSymbol(new Number("149"), ";", Intern);
+      mkSymbol(new Number("150"), "=:", Intern);
+      mkSymbol(new Number("151"), ":", Intern);
+      mkSymbol(new Number("152"), "::", Intern);
+      mkSymbol(new Number("153"), "putl", Intern);
+      mkSymbol(new Number("154"), "getl", Intern);
+      mkSymbol(new Number("155"), "meta", Intern);
+      mkSymbol(new Number("156"), "low?", Intern);
+      mkSymbol(new Number("157"), "upp?", Intern);
+      mkSymbol(new Number("158"), "lowc", Intern);
+      mkSymbol(new Number("159"), "uppc", Intern);
+      mkSymbol(new Number("160"), "fold", Intern);
+      mkSymbol(new Number("161"), "car", Intern);
+      mkSymbol(new Number("162"), "cdr", Intern);
+      mkSymbol(new Number("163"), "caar", Intern);
+      mkSymbol(new Number("164"), "cadr", Intern);
+      mkSymbol(new Number("165"), "cdar", Intern);
+      mkSymbol(new Number("166"), "cddr", Intern);
+      mkSymbol(new Number("167"), "caaar", Intern);
+      mkSymbol(new Number("168"), "caadr", Intern);
+      mkSymbol(new Number("169"), "cadar", Intern);
+      mkSymbol(new Number("170"), "caddr", Intern);
+      mkSymbol(new Number("171"), "cdaar", Intern);
+      mkSymbol(new Number("172"), "cdadr", Intern);
+      mkSymbol(new Number("173"), "cddar", Intern);
+      mkSymbol(new Number("174"), "cdddr", Intern);
+      mkSymbol(new Number("175"), "caaaar", Intern);
+      mkSymbol(new Number("176"), "caaadr", Intern);
+      mkSymbol(new Number("177"), "caadar", Intern);
+      mkSymbol(new Number("178"), "caaddr", Intern);
+      mkSymbol(new Number("179"), "cadaar", Intern);
+      mkSymbol(new Number("180"), "cadadr", Intern);
+      mkSymbol(new Number("181"), "caddar", Intern);
+      mkSymbol(new Number("182"), "cadddr", Intern);
+      mkSymbol(new Number("183"), "cdaaar", Intern);
+      mkSymbol(new Number("184"), "cdaadr", Intern);
+      mkSymbol(new Number("185"), "cdadar", Intern);
+      mkSymbol(new Number("186"), "cdaddr", Intern);
+      mkSymbol(new Number("187"), "cddaar", Intern);
+      mkSymbol(new Number("188"), "cddadr", Intern);
+      mkSymbol(new Number("189"), "cdddar", Intern);
+      mkSymbol(new Number("190"), "cddddr", Intern);
+      mkSymbol(new Number("191"), "nth", Intern);
+      mkSymbol(new Number("192"), "con", Intern);
+      mkSymbol(new Number("193"), "cons", Intern);
+      mkSymbol(new Number("194"), "conc", Intern);
+      mkSymbol(new Number("195"), "circ", Intern);
+      mkSymbol(new Number("196"), "rot", Intern);
+      mkSymbol(new Number("197"), "list", Intern);
+      mkSymbol(new Number("198"), "need", Intern);
+      mkSymbol(new Number("199"), "range", Intern);
+      mkSymbol(new Number("200"), "full", Intern);
+      mkSymbol(new Number("201"), "make", Intern);
+      mkSymbol(new Number("202"), "made", Intern);
+      mkSymbol(new Number("203"), "chain", Intern);
+      mkSymbol(new Number("204"), "link", Intern);
+      mkSymbol(new Number("205"), "yoke", Intern);
+      mkSymbol(new Number("206"), "copy", Intern);
+      mkSymbol(new Number("207"), "mix", Intern);
+      mkSymbol(new Number("208"), "append", Intern);
+      mkSymbol(new Number("209"), "delete", Intern);
+      mkSymbol(new Number("210"), "delq", Intern);
+      mkSymbol(new Number("211"), "replace", Intern);
+      mkSymbol(new Number("212"), "strip", Intern);
+      mkSymbol(new Number("213"), "split", Intern);
+      mkSymbol(new Number("214"), "reverse", Intern);
+      mkSymbol(new Number("215"), "flip", Intern);
+      mkSymbol(new Number("216"), "trim", Intern);
+      mkSymbol(new Number("217"), "clip", Intern);
+      mkSymbol(new Number("218"), "head", Intern);
+      mkSymbol(new Number("219"), "tail", Intern);
+      mkSymbol(new Number("220"), "stem", Intern);
+      mkSymbol(new Number("221"), "fin", Intern);
+      mkSymbol(new Number("222"), "last", Intern);
+      mkSymbol(new Number("223"), "==", Intern);
+      mkSymbol(new Number("224"), "n==", Intern);
+      mkSymbol(new Number("225"), "=", Intern);
+      mkSymbol(new Number("226"), "<>", Intern);
+      mkSymbol(new Number("227"), "=0", Intern);
+      mkSymbol(new Number("228"), "=T", Intern);
+      mkSymbol(new Number("229"), "n0", Intern);
+      mkSymbol(new Number("230"), "nT", Intern);
+      mkSymbol(new Number("231"), "<", Intern);
+      mkSymbol(new Number("232"), "<=", Intern);
+      mkSymbol(new Number("233"), ">", Intern);
+      mkSymbol(new Number("234"), ">=", Intern);
+      mkSymbol(new Number("235"), "max", Intern);
+      mkSymbol(new Number("236"), "min", Intern);
+      mkSymbol(new Number("237"), "atom", Intern);
+      mkSymbol(new Number("238"), "pair", Intern);
+      mkSymbol(new Number("239"), "lst?", Intern);
+      mkSymbol(new Number("240"), "num?", Intern);
+      mkSymbol(new Number("241"), "sym?", Intern);
+      mkSymbol(new Number("242"), "flg?", Intern);
+      mkSymbol(new Number("243"), "member", Intern);
+      mkSymbol(new Number("244"), "memq", Intern);
+      mkSymbol(new Number("245"), "mmeq", Intern);
+      mkSymbol(new Number("246"), "sect", Intern);
+      mkSymbol(new Number("247"), "diff", Intern);
+      mkSymbol(new Number("248"), "index", Intern);
+      mkSymbol(new Number("249"), "offset", Intern);
+      mkSymbol(new Number("250"), "length", Intern);
+      mkSymbol(new Number("251"), "size", Intern);
+      mkSymbol(new Number("252"), "assoc", Intern);
+      mkSymbol(new Number("253"), "asoq", Intern);
+      mkSymbol(new Number("254"), "rank", Intern);
+      mkSymbol(new Number("255"), "match", Intern);
+      mkSymbol(new Number("256"), "fill", Intern);
+      mkSymbol(new Number("257"), "prove", Intern);
+      mkSymbol(new Number("258"), "->", Intern);
+      mkSymbol(new Number("259"), "unify", Intern);
+      mkSymbol(new Number("260"), "sort", Intern);
+      mkSymbol(new Number("261"), "format", Intern);
+      mkSymbol(new Number("262"), "+", Intern);
+      mkSymbol(new Number("263"), "-", Intern);
+      mkSymbol(new Number("264"), "inc", Intern);
+      mkSymbol(new Number("265"), "dec", Intern);
+      mkSymbol(new Number("266"), "*", Intern);
+      mkSymbol(new Number("267"), "*/", Intern);
+      mkSymbol(new Number("268"), "/", Intern);
+      mkSymbol(new Number("269"), "%", Intern);
+      mkSymbol(new Number("270"), ">>", Intern);
+      mkSymbol(new Number("271"), "lt0", Intern);
+      mkSymbol(new Number("272"), "ge0", Intern);
+      mkSymbol(new Number("273"), "gt0", Intern);
+      mkSymbol(new Number("274"), "abs", Intern);
+      mkSymbol(new Number("275"), "bit?", Intern);
+      mkSymbol(new Number("276"), "&", Intern);
+      mkSymbol(new Number("277"), "|", Intern);
+      mkSymbol(new Number("278"), "x|", Intern);
+      mkSymbol(new Number("279"), "seed", Intern);
+      mkSymbol(new Number("280"), "rand", Intern);
+      mkSymbol(new Number("281"), "path", Intern);
+      mkSymbol(new Number("282"), "read", Intern);
+      mkSymbol(new Number("283"), "wait", Intern);
+      mkSymbol(new Number("284"), "poll", Intern);
+      mkSymbol(new Number("285"), "peek", Intern);
+      mkSymbol(new Number("286"), "char", Intern);
+      mkSymbol(new Number("287"), "skip", Intern);
+      mkSymbol(new Number("288"), "eol", Intern);
+      mkSymbol(new Number("289"), "eof", Intern);
+      mkSymbol(new Number("290"), "from", Intern);
+      mkSymbol(new Number("291"), "till", Intern);
+      mkSymbol(new Number("292"), "line", Intern);
+      mkSymbol(new Number("293"), "any", Intern);
+      mkSymbol(new Number("294"), "sym", Intern);
+      mkSymbol(new Number("295"), "str", Intern);
+      mkSymbol(new Number("296"), "load", Intern);
+      mkSymbol(new Number("297"), "in", Intern);
+      mkSymbol(new Number("298"), "out", Intern);
+      mkSymbol(new Number("299"), "open", Intern);
+      mkSymbol(new Number("300"), "close", Intern);
+      mkSymbol(new Number("301"), "echo", Intern);
+      mkSymbol(new Number("302"), "prin", Intern);
+      mkSymbol(new Number("303"), "prinl", Intern);
+      mkSymbol(new Number("304"), "space", Intern);
+      mkSymbol(new Number("305"), "print", Intern);
+      mkSymbol(new Number("306"), "printsp", Intern);
+      mkSymbol(new Number("307"), "println", Intern);
+      mkSymbol(new Number("308"), "flush", Intern);
+      mkSymbol(new Number("309"), "port", Intern);
+      mkSymbol(new Number("310"), "accept", Intern);
+      mkSymbol(new Number("311"), "connect", Intern);
+      MaxFun = 311;
       init();
       for (boolean first = true; ; first = false) {
          try {
@@ -2329,390 +2330,392 @@ public class PicoLisp {
                return do117(ex);
             case 118:  // str?
                return do118(ex);
-            case 119:  // zap
-               return do119(ex);
-            case 120:  // chop
+            case 119:  // ext?
+               return Nil;
+            case 120:  // zap
                return do120(ex);
-            case 121:  // pack
+            case 121:  // chop
                return do121(ex);
-            case 122:  // glue
+            case 122:  // pack
                return do122(ex);
-            case 123:  // text
+            case 123:  // glue
                return do123(ex);
-            case 124:  // pre?
+            case 124:  // text
                return do124(ex);
-            case 125:  // sub?
+            case 125:  // pre?
                return do125(ex);
-            case 126:  // val
+            case 126:  // sub?
+               return do126(ex);
+            case 127:  // val
                return ex.Cdr.Car.eval().Car;
-            case 127:  // set
-               return do127(ex);
-            case 128:  // setq
+            case 128:  // set
                return do128(ex);
-            case 129:  // xchg
+            case 129:  // setq
                return do129(ex);
-            case 130:  // on
+            case 130:  // xchg
                return do130(ex);
-            case 131:  // off
+            case 131:  // on
                return do131(ex);
-            case 132:  // onOff
+            case 132:  // off
                return do132(ex);
-            case 133:  // zero
+            case 133:  // onOff
                return do133(ex);
-            case 134:  // one
+            case 134:  // zero
                return do134(ex);
-            case 135:  // default
+            case 135:  // one
                return do135(ex);
-            case 136:  // push
+            case 136:  // default
                return do136(ex);
-            case 137:  // push1
+            case 137:  // push
                return do137(ex);
-            case 138:  // pop
+            case 138:  // push1
                return do138(ex);
-            case 139:  // cut
+            case 139:  // pop
                return do139(ex);
-            case 140:  // del
+            case 140:  // cut
                return do140(ex);
-            case 141:  // queue
+            case 141:  // del
                return do141(ex);
-            case 142:  // fifo
+            case 142:  // queue
                return do142(ex);
-            case 143:  // idx
+            case 143:  // fifo
                return do143(ex);
-            case 144:  // lup
+            case 144:  // idx
                return do144(ex);
-            case 145:  // put
+            case 145:  // lup
                return do145(ex);
-            case 146:  // get
+            case 146:  // put
                return do146(ex);
-            case 147:  // prop
+            case 147:  // get
                return do147(ex);
-            case 148:  // ;
+            case 148:  // prop
                return do148(ex);
-            case 149:  // =:
+            case 149:  // ;
                return do149(ex);
-            case 150:  // :
+            case 150:  // =:
                return do150(ex);
-            case 151:  // ::
+            case 151:  // :
                return do151(ex);
-            case 152:  // putl
+            case 152:  // ::
                return do152(ex);
-            case 153:  // getl
+            case 153:  // putl
                return do153(ex);
-            case 154:  // meta
+            case 154:  // getl
                return do154(ex);
-            case 155:  // low?
+            case 155:  // meta
                return do155(ex);
-            case 156:  // upp?
+            case 156:  // low?
                return do156(ex);
-            case 157:  // lowc
+            case 157:  // upp?
                return do157(ex);
-            case 158:  // uppc
+            case 158:  // lowc
                return do158(ex);
-            case 159:  // fold
+            case 159:  // uppc
                return do159(ex);
-            case 160:  // car
+            case 160:  // fold
+               return do160(ex);
+            case 161:  // car
                return ex.Cdr.Car.eval().Car;
-            case 161:  // cdr
+            case 162:  // cdr
                return ex.Cdr.Car.eval().Cdr;
-            case 162:  // caar
+            case 163:  // caar
                return ex.Cdr.Car.eval().Car.Car;
-            case 163:  // cadr
+            case 164:  // cadr
                return ex.Cdr.Car.eval().Cdr.Car;
-            case 164:  // cdar
+            case 165:  // cdar
                return ex.Cdr.Car.eval().Car.Cdr;
-            case 165:  // cddr
+            case 166:  // cddr
                return ex.Cdr.Car.eval().Cdr.Cdr;
-            case 166:  // caaar
-               return do166(ex);
-            case 167:  // caadr
+            case 167:  // caaar
                return do167(ex);
-            case 168:  // cadar
+            case 168:  // caadr
                return do168(ex);
-            case 169:  // caddr
+            case 169:  // cadar
                return do169(ex);
-            case 170:  // cdaar
+            case 170:  // caddr
                return do170(ex);
-            case 171:  // cdadr
+            case 171:  // cdaar
                return do171(ex);
-            case 172:  // cddar
+            case 172:  // cdadr
                return do172(ex);
-            case 173:  // cdddr
+            case 173:  // cddar
                return do173(ex);
-            case 174:  // caaaar
+            case 174:  // cdddr
                return do174(ex);
-            case 175:  // caaadr
+            case 175:  // caaaar
                return do175(ex);
-            case 176:  // caadar
+            case 176:  // caaadr
                return do176(ex);
-            case 177:  // caaddr
+            case 177:  // caadar
                return do177(ex);
-            case 178:  // cadaar
+            case 178:  // caaddr
                return do178(ex);
-            case 179:  // cadadr
+            case 179:  // cadaar
                return do179(ex);
-            case 180:  // caddar
+            case 180:  // cadadr
                return do180(ex);
-            case 181:  // cadddr
+            case 181:  // caddar
                return do181(ex);
-            case 182:  // cdaaar
+            case 182:  // cadddr
                return do182(ex);
-            case 183:  // cdaadr
+            case 183:  // cdaaar
                return do183(ex);
-            case 184:  // cdadar
+            case 184:  // cdaadr
                return do184(ex);
-            case 185:  // cdaddr
+            case 185:  // cdadar
                return do185(ex);
-            case 186:  // cddaar
+            case 186:  // cdaddr
                return do186(ex);
-            case 187:  // cddadr
+            case 187:  // cddaar
                return do187(ex);
-            case 188:  // cdddar
+            case 188:  // cddadr
                return do188(ex);
-            case 189:  // cddddr
+            case 189:  // cdddar
                return do189(ex);
-            case 190:  // nth
+            case 190:  // cddddr
                return do190(ex);
-            case 191:  // con
+            case 191:  // nth
                return do191(ex);
-            case 192:  // cons
+            case 192:  // con
                return do192(ex);
-            case 193:  // conc
+            case 193:  // cons
                return do193(ex);
-            case 194:  // circ
+            case 194:  // conc
                return do194(ex);
-            case 195:  // rot
+            case 195:  // circ
                return do195(ex);
-            case 196:  // list
+            case 196:  // rot
                return do196(ex);
-            case 197:  // need
+            case 197:  // list
                return do197(ex);
-            case 198:  // range
+            case 198:  // need
                return do198(ex);
-            case 199:  // full
+            case 199:  // range
                return do199(ex);
-            case 200:  // make
+            case 200:  // full
                return do200(ex);
-            case 201:  // made
+            case 201:  // make
                return do201(ex);
-            case 202:  // chain
+            case 202:  // made
                return do202(ex);
-            case 203:  // link
+            case 203:  // chain
                return do203(ex);
-            case 204:  // yoke
+            case 204:  // link
                return do204(ex);
-            case 205:  // copy
+            case 205:  // yoke
                return do205(ex);
-            case 206:  // mix
+            case 206:  // copy
                return do206(ex);
-            case 207:  // append
+            case 207:  // mix
                return do207(ex);
-            case 208:  // delete
+            case 208:  // append
                return do208(ex);
-            case 209:  // delq
+            case 209:  // delete
                return do209(ex);
-            case 210:  // replace
+            case 210:  // delq
                return do210(ex);
-            case 211:  // strip
+            case 211:  // replace
                return do211(ex);
-            case 212:  // split
+            case 212:  // strip
                return do212(ex);
-            case 213:  // reverse
+            case 213:  // split
                return do213(ex);
-            case 214:  // flip
+            case 214:  // reverse
                return do214(ex);
-            case 215:  // trim
+            case 215:  // flip
                return do215(ex);
-            case 216:  // clip
+            case 216:  // trim
                return do216(ex);
-            case 217:  // head
+            case 217:  // clip
                return do217(ex);
-            case 218:  // tail
+            case 218:  // head
                return do218(ex);
-            case 219:  // stem
+            case 219:  // tail
                return do219(ex);
-            case 220:  // fin
+            case 220:  // stem
                return do220(ex);
-            case 221:  // last
+            case 221:  // fin
                return do221(ex);
-            case 222:  // ==
+            case 222:  // last
                return do222(ex);
-            case 223:  // n==
+            case 223:  // ==
                return do223(ex);
-            case 224:  // =
+            case 224:  // n==
                return do224(ex);
-            case 225:  // <>
+            case 225:  // =
                return do225(ex);
-            case 226:  // =0
+            case 226:  // <>
                return do226(ex);
-            case 227:  // =T
+            case 227:  // =0
                return do227(ex);
-            case 228:  // n0
+            case 228:  // =T
                return do228(ex);
-            case 229:  // nT
+            case 229:  // n0
                return do229(ex);
-            case 230:  // <
+            case 230:  // nT
                return do230(ex);
-            case 231:  // <=
+            case 231:  // <
                return do231(ex);
-            case 232:  // >
+            case 232:  // <=
                return do232(ex);
-            case 233:  // >=
+            case 233:  // >
                return do233(ex);
-            case 234:  // max
+            case 234:  // >=
                return do234(ex);
-            case 235:  // min
+            case 235:  // max
                return do235(ex);
-            case 236:  // atom
+            case 236:  // min
                return do236(ex);
-            case 237:  // pair
+            case 237:  // atom
                return do237(ex);
-            case 238:  // lst?
+            case 238:  // pair
                return do238(ex);
-            case 239:  // num?
+            case 239:  // lst?
                return do239(ex);
-            case 240:  // sym?
+            case 240:  // num?
                return do240(ex);
-            case 241:  // flg?
+            case 241:  // sym?
                return do241(ex);
-            case 242:  // member
+            case 242:  // flg?
                return do242(ex);
-            case 243:  // memq
+            case 243:  // member
                return do243(ex);
-            case 244:  // mmeq
+            case 244:  // memq
                return do244(ex);
-            case 245:  // sect
+            case 245:  // mmeq
                return do245(ex);
-            case 246:  // diff
+            case 246:  // sect
                return do246(ex);
-            case 247:  // index
+            case 247:  // diff
                return do247(ex);
-            case 248:  // offset
+            case 248:  // index
                return do248(ex);
-            case 249:  // length
+            case 249:  // offset
                return do249(ex);
-            case 250:  // size
+            case 250:  // length
                return do250(ex);
-            case 251:  // assoc
+            case 251:  // size
                return do251(ex);
-            case 252:  // asoq
+            case 252:  // assoc
                return do252(ex);
-            case 253:  // rank
+            case 253:  // asoq
                return do253(ex);
-            case 254:  // match
+            case 254:  // rank
                return do254(ex);
-            case 255:  // fill
+            case 255:  // match
                return do255(ex);
-            case 256:  // prove
+            case 256:  // fill
                return do256(ex);
-            case 257:  // ->
+            case 257:  // prove
                return do257(ex);
-            case 258:  // unify
+            case 258:  // ->
                return do258(ex);
-            case 259:  // sort
+            case 259:  // unify
                return do259(ex);
-            case 260:  // format
+            case 260:  // sort
                return do260(ex);
-            case 261:  // +
+            case 261:  // format
                return do261(ex);
-            case 262:  // -
+            case 262:  // +
                return do262(ex);
-            case 263:  // inc
+            case 263:  // -
                return do263(ex);
-            case 264:  // dec
+            case 264:  // inc
                return do264(ex);
-            case 265:  // *
+            case 265:  // dec
                return do265(ex);
-            case 266:  // */
+            case 266:  // *
                return do266(ex);
-            case 267:  // /
+            case 267:  // */
                return do267(ex);
-            case 268:  // %
+            case 268:  // /
                return do268(ex);
-            case 269:  // >>
+            case 269:  // %
                return do269(ex);
-            case 270:  // lt0
+            case 270:  // >>
                return do270(ex);
-            case 271:  // ge0
+            case 271:  // lt0
                return do271(ex);
-            case 272:  // gt0
+            case 272:  // ge0
                return do272(ex);
-            case 273:  // abs
+            case 273:  // gt0
                return do273(ex);
-            case 274:  // bit?
+            case 274:  // abs
                return do274(ex);
-            case 275:  // &
+            case 275:  // bit?
                return do275(ex);
-            case 276:  // |
+            case 276:  // &
                return do276(ex);
-            case 277:  // x|
+            case 277:  // |
                return do277(ex);
-            case 278:  // seed
+            case 278:  // x|
                return do278(ex);
-            case 279:  // rand
+            case 279:  // seed
                return do279(ex);
-            case 280:  // path
+            case 280:  // rand
                return do280(ex);
-            case 281:  // read
+            case 281:  // path
                return do281(ex);
-            case 282:  // wait
+            case 282:  // read
                return do282(ex);
-            case 283:  // poll
+            case 283:  // wait
                return do283(ex);
-            case 284:  // peek
+            case 284:  // poll
                return do284(ex);
-            case 285:  // char
+            case 285:  // peek
                return do285(ex);
-            case 286:  // skip
+            case 286:  // char
                return do286(ex);
-            case 287:  // eol
+            case 287:  // skip
                return do287(ex);
-            case 288:  // eof
+            case 288:  // eol
                return do288(ex);
-            case 289:  // from
+            case 289:  // eof
                return do289(ex);
-            case 290:  // till
+            case 290:  // from
                return do290(ex);
-            case 291:  // line
+            case 291:  // till
                return do291(ex);
-            case 292:  // any
+            case 292:  // line
                return do292(ex);
-            case 293:  // sym
+            case 293:  // any
                return do293(ex);
-            case 294:  // str
+            case 294:  // sym
                return do294(ex);
-            case 295:  // load
+            case 295:  // str
                return do295(ex);
-            case 296:  // in
+            case 296:  // load
                return do296(ex);
-            case 297:  // out
+            case 297:  // in
                return do297(ex);
-            case 298:  // open
+            case 298:  // out
                return do298(ex);
-            case 299:  // close
+            case 299:  // open
                return do299(ex);
-            case 300:  // echo
+            case 300:  // close
                return do300(ex);
-            case 301:  // prin
+            case 301:  // echo
                return do301(ex);
-            case 302:  // prinl
+            case 302:  // prin
                return do302(ex);
-            case 303:  // space
+            case 303:  // prinl
                return do303(ex);
-            case 304:  // print
+            case 304:  // space
                return do304(ex);
-            case 305:  // printsp
+            case 305:  // print
                return do305(ex);
-            case 306:  // println
+            case 306:  // printsp
                return do306(ex);
-            case 307:  // flush
+            case 307:  // println
                return do307(ex);
-            case 308:  // port
+            case 308:  // flush
                return do308(ex);
-            case 309:  // accept
+            case 309:  // port
                return do309(ex);
-            case 310:  // connect
+            case 310:  // accept
                return do310(ex);
+            case 311:  // connect
+               return do311(ex);
             default:
                return undefined(this, ex);
             }
@@ -4420,7 +4423,14 @@ public class PicoLisp {
             cmd[i] = x.Car.eval().name();
             x = x.Cdr;
          }
-         try {i = Runtime.getRuntime().exec(cmd).waitFor();}
+         try {
+            Process p = Runtime.getRuntime().exec(cmd);
+            BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null)
+               System.out.println(line);
+            i = p.waitFor();
+         }
          catch (IOException e) {System.err.println(cmd[0] + ": Can't exec");}
          catch (InterruptedException e) {}  //#! sighandler()
          return i == 0? T : Nil;
@@ -4518,14 +4528,14 @@ public class PicoLisp {
          return ((x = ex.Cdr.Car.eval()) instanceof Symbol) && Intern.get(x.name()) == null? x : Nil;
       }
 
-      final static Any do119(Any ex) { // zap
+      final static Any do120(Any ex) { // zap
          Symbol s;
          s = (Symbol)ex.Cdr.Car.eval();
          Intern.remove(s.name());
          return s;
       }
 
-      final static Any do120(Any ex) { // chop
+      final static Any do121(Any ex) { // chop
          Any x, y;
          String str;
          x = ex.Cdr.Car.eval();
@@ -4540,7 +4550,7 @@ public class PicoLisp {
          return x;
       }
 
-      final static Any do121(Any ex) { // pack
+      final static Any do122(Any ex) { // pack
          StringBuilder sb;
          sb = new StringBuilder();
          for (ex = ex.Cdr; ex instanceof Cell; ex = ex.Cdr)
@@ -4548,7 +4558,7 @@ public class PicoLisp {
          return mkStr(sb);
       }
 
-      final static Any do122(Any ex) { // glue
+      final static Any do123(Any ex) { // glue
          Any x, y;
          StringBuilder sb;
          x = ex.Cdr.Car.eval();
@@ -4561,7 +4571,7 @@ public class PicoLisp {
          return mkStr(sb);
       }
 
-      final static Any do123(Any ex) { // text
+      final static Any do124(Any ex) { // text
          int i, j, k;
          char c;
          String str;
@@ -4590,21 +4600,21 @@ public class PicoLisp {
          return mkStr(sb);
       }
 
-      final static Any do124(Any ex) { // pre?
+      final static Any do125(Any ex) { // pre?
          Any x;
          String str;
          str = evString(ex = ex.Cdr);
          return (x = ex.Cdr.Car.eval()).name().startsWith(str)? x : Nil;
       }
 
-      final static Any do125(Any ex) { // sub?
+      final static Any do126(Any ex) { // sub?
          Any x;
          String str;
          str = evString(ex = ex.Cdr);
          return (x = ex.Cdr.Car.eval()).name().indexOf(str) >= 0? x : Nil;
       }
 
-      final static Any do127(Any ex) { // set
+      final static Any do128(Any ex) { // set
          Any x, y;
          x = ex.Cdr;
          do {
@@ -4615,7 +4625,7 @@ public class PicoLisp {
          return y.Car;
       }
 
-      final static Any do128(Any ex) { // setq
+      final static Any do129(Any ex) { // setq
          Any x, y;
          x = ex.Cdr;
          do {
@@ -4626,7 +4636,7 @@ public class PicoLisp {
          return y.Car;
       }
 
-      final static Any do129(Any ex) { // xchg
+      final static Any do130(Any ex) { // xchg
          Any w, x, y, z;
          x = ex.Cdr;
          do {
@@ -4637,7 +4647,7 @@ public class PicoLisp {
          return w;
       }
 
-      final static Any do130(Any ex) { // on
+      final static Any do131(Any ex) { // on
          Any x;
          x = ex.Cdr;
          do
@@ -4646,7 +4656,7 @@ public class PicoLisp {
          return T;
       }
 
-      final static Any do131(Any ex) { // off
+      final static Any do132(Any ex) { // off
          Any x;
          x = ex.Cdr;
          do
@@ -4655,7 +4665,7 @@ public class PicoLisp {
          return Nil;
       }
 
-      final static Any do132(Any ex) { // onOff
+      final static Any do133(Any ex) { // onOff
          Any x, y;
          x = ex.Cdr;
          do
@@ -4664,7 +4674,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do133(Any ex) { // zero
+      final static Any do134(Any ex) { // zero
          Any x;
          x = ex.Cdr;
          do
@@ -4673,7 +4683,7 @@ public class PicoLisp {
          return Zero;
       }
 
-      final static Any do134(Any ex) { // one
+      final static Any do135(Any ex) { // one
          Any x;
          x = ex.Cdr;
          do
@@ -4682,7 +4692,7 @@ public class PicoLisp {
          return One;
       }
 
-      final static Any do135(Any ex) { // default
+      final static Any do136(Any ex) { // default
          Any x, y;
          x = ex.Cdr;
          do {
@@ -4695,7 +4705,7 @@ public class PicoLisp {
          return y.Car;
       }
 
-      final static Any do136(Any ex) { // push
+      final static Any do137(Any ex) { // push
          Any x, y, z;
          needVar(ex, y = (x = ex.Cdr).Car.eval());
          do
@@ -4704,7 +4714,7 @@ public class PicoLisp {
          return z;
       }
 
-      final static Any do137(Any ex) { // push1
+      final static Any do138(Any ex) { // push1
          Any x, y, z;
          needVar(ex, y = (x = ex.Cdr).Car.eval());
          do
@@ -4714,7 +4724,7 @@ public class PicoLisp {
          return z;
       }
 
-      final static Any do138(Any ex) { // pop
+      final static Any do139(Any ex) { // pop
          Any x, y;
          needVar(ex, x = ex.Cdr.Car.eval());
          if ((y = x.Car) instanceof Cell) {
@@ -4724,7 +4734,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do139(Any ex) { // cut
+      final static Any do140(Any ex) { // cut
          long n;
          Any x, y, z;
          if ((n = evLong(ex.Cdr)) <= 0)
@@ -4739,7 +4749,7 @@ public class PicoLisp {
          return x.Car;
       }
 
-      final static Any do140(Any ex) { // del
+      final static Any do141(Any ex) { // del
          Any w, lst, x, y, z;
          w = ex.Cdr.Car.eval();
          needVar(ex, x = ex.Cdr.Cdr.Car.eval());
@@ -4755,7 +4765,7 @@ public class PicoLisp {
          return x.Car;
       }
 
-      final static Any do141(Any ex) { // queue
+      final static Any do142(Any ex) { // queue
          Any x, y;
          needVar(ex, x = ex.Cdr.Car.eval());
          y = ex.Cdr.Cdr.Car.eval();
@@ -4768,7 +4778,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do142(Any ex) { // fifo
+      final static Any do143(Any ex) { // fifo
          Any x, y, z, lst;
          needVar(ex, y = (x = ex.Cdr).Car.eval());
          if ((x = x.Cdr) instanceof Cell) {
@@ -4796,7 +4806,7 @@ public class PicoLisp {
          return z;
       }
 
-      final static Any do143(Any ex) { // idx
+      final static Any do144(Any ex) { // idx
          Any x, y;
          needVar(ex, x = (ex = ex.Cdr).Car.eval());
          if (!((ex = ex.Cdr) instanceof Cell))
@@ -4805,7 +4815,7 @@ public class PicoLisp {
          return idx(x, y, ex.Cdr instanceof Cell? (ex.Cdr.Car.eval() == Nil? -1 : +1) : 0);
       }
 
-      final static Any do144(Any ex) { // lup
+      final static Any do145(Any ex) { // lup
          int i;
          Any x, y, z;
          x = (ex = ex.Cdr).Car.eval();
@@ -4825,7 +4835,7 @@ public class PicoLisp {
          return Nil;
       }
 
-      final static Any do145(Any ex) { // put
+      final static Any do146(Any ex) { // put
          Any x, y;
          x = (ex = ex.Cdr).Car.eval();
          for (;;) {
@@ -4836,7 +4846,7 @@ public class PicoLisp {
          }
       }
 
-      final static Any do146(Any ex) { // get
+      final static Any do147(Any ex) { // get
          Any x;
          x = (ex = ex.Cdr).Car.eval();
          while ((ex = ex.Cdr) instanceof Cell)
@@ -4844,7 +4854,7 @@ public class PicoLisp {
          return x;
       }
 
-      final static Any do147(Any ex) { // prop
+      final static Any do148(Any ex) { // prop
          Any x;
          x = (ex = ex.Cdr).Car.eval();
          while ((ex = ex.Cdr).Cdr instanceof Cell)
@@ -4852,7 +4862,7 @@ public class PicoLisp {
          return x.prop(ex.Car.eval());
       }
 
-      final static Any do148(Any ex) { // ;
+      final static Any do149(Any ex) { // ;
          Any x;
          x = (ex = ex.Cdr).Car.eval();
          while ((ex = ex.Cdr) instanceof Cell)
@@ -4860,7 +4870,7 @@ public class PicoLisp {
          return x;
       }
 
-      final static Any do149(Any ex) { // =:
+      final static Any do150(Any ex) { // =:
          Any x, y;
          for (x = This.Car;;) {
             y = (ex = ex.Cdr).Car;
@@ -4870,7 +4880,7 @@ public class PicoLisp {
          }
       }
 
-      final static Any do150(Any ex) { // :
+      final static Any do151(Any ex) { // :
          Any x;
          x = This.Car;
          do
@@ -4879,7 +4889,7 @@ public class PicoLisp {
          return x;
       }
 
-      final static Any do151(Any ex) { // ::
+      final static Any do152(Any ex) { // ::
          Any x;
          x = This.Car;
          while ((ex = ex.Cdr).Cdr instanceof Cell)
@@ -4887,7 +4897,7 @@ public class PicoLisp {
          return x.prop(ex.Car);
       }
 
-      final static Any do152(Any ex) { // putl
+      final static Any do153(Any ex) { // putl
          Any x;
          x = (ex = ex.Cdr).Car.eval();
          while ((ex = ex.Cdr).Cdr instanceof Cell)
@@ -4895,7 +4905,7 @@ public class PicoLisp {
          return x.putl(ex.Car.eval());
       }
 
-      final static Any do153(Any ex) { // getl
+      final static Any do154(Any ex) { // getl
          Any x;
          x = (ex = ex.Cdr).Car.eval();
          while ((ex = ex.Cdr) instanceof Cell)
@@ -4903,7 +4913,7 @@ public class PicoLisp {
          return x.getl();
       }
 
-      final static Any do154(Any ex) { // meta
+      final static Any do155(Any ex) { // meta
          Any x, y;
          if ((x = (ex = ex.Cdr).Car.eval()) instanceof Symbol)
             x = x.Car;
@@ -4912,17 +4922,17 @@ public class PicoLisp {
          return x;
       }
 
-      final static Any do155(Any ex) { // low?
+      final static Any do156(Any ex) { // low?
          Any x;
          return (x = ex.Cdr.Car.eval()) instanceof Symbol && Character.isLowerCase(firstChar(x))? x : Nil;
       }
 
-      final static Any do156(Any ex) { // upp?
+      final static Any do157(Any ex) { // upp?
          Any x;
          return (x = ex.Cdr.Car.eval()) instanceof Symbol && Character.isUpperCase(firstChar(x))? x : Nil;
       }
 
-      final static Any do157(Any ex) { // lowc
+      final static Any do158(Any ex) { // lowc
          int i, j;
          Any x;
          String str;
@@ -4935,7 +4945,7 @@ public class PicoLisp {
          return mkStr(sb);
       }
 
-      final static Any do158(Any ex) { // uppc
+      final static Any do159(Any ex) { // uppc
          int i, j;
          Any x;
          String str;
@@ -4948,7 +4958,7 @@ public class PicoLisp {
          return mkStr(sb);
       }
 
-      final static Any do159(Any ex) { // fold
+      final static Any do160(Any ex) { // fold
          int i, j, k;
          char c;
          Any x;
@@ -4971,103 +4981,103 @@ public class PicoLisp {
          return mkStr(sb);
       }
 
-      final static Any do166(Any ex) { // caaar
+      final static Any do167(Any ex) { // caaar
          return ex.Cdr.Car.eval().Car.Car.Car;
       }
 
-      final static Any do167(Any ex) { // caadr
+      final static Any do168(Any ex) { // caadr
          return ex.Cdr.Car.eval().Cdr.Car.Car;
       }
 
-      final static Any do168(Any ex) { // cadar
+      final static Any do169(Any ex) { // cadar
          return ex.Cdr.Car.eval().Car.Cdr.Car;
       }
 
-      final static Any do169(Any ex) { // caddr
+      final static Any do170(Any ex) { // caddr
          return ex.Cdr.Car.eval().Cdr.Cdr.Car;
       }
 
-      final static Any do170(Any ex) { // cdaar
+      final static Any do171(Any ex) { // cdaar
          return ex.Cdr.Car.eval().Car.Car.Cdr;
       }
 
-      final static Any do171(Any ex) { // cdadr
+      final static Any do172(Any ex) { // cdadr
          return ex.Cdr.Car.eval().Cdr.Car.Cdr;
       }
 
-      final static Any do172(Any ex) { // cddar
+      final static Any do173(Any ex) { // cddar
          return ex.Cdr.Car.eval().Car.Cdr.Cdr;
       }
 
-      final static Any do173(Any ex) { // cdddr
+      final static Any do174(Any ex) { // cdddr
          return ex.Cdr.Car.eval().Cdr.Cdr.Cdr;
       }
 
-      final static Any do174(Any ex) { // caaaar
+      final static Any do175(Any ex) { // caaaar
          return ex.Cdr.Car.eval().Car.Car.Car.Car;
       }
 
-      final static Any do175(Any ex) { // caaadr
+      final static Any do176(Any ex) { // caaadr
          return ex.Cdr.Car.eval().Cdr.Car.Car.Car;
       }
 
-      final static Any do176(Any ex) { // caadar
+      final static Any do177(Any ex) { // caadar
          return ex.Cdr.Car.eval().Car.Cdr.Car.Car;
       }
 
-      final static Any do177(Any ex) { // caaddr
+      final static Any do178(Any ex) { // caaddr
          return ex.Cdr.Car.eval().Cdr.Cdr.Car.Car;
       }
 
-      final static Any do178(Any ex) { // cadaar
+      final static Any do179(Any ex) { // cadaar
          return ex.Cdr.Car.eval().Car.Car.Cdr.Car;
       }
 
-      final static Any do179(Any ex) { // cadadr
+      final static Any do180(Any ex) { // cadadr
          return ex.Cdr.Car.eval().Cdr.Car.Cdr.Car;
       }
 
-      final static Any do180(Any ex) { // caddar
+      final static Any do181(Any ex) { // caddar
          return ex.Cdr.Car.eval().Car.Cdr.Cdr.Car;
       }
 
-      final static Any do181(Any ex) { // cadddr
+      final static Any do182(Any ex) { // cadddr
          return ex.Cdr.Car.eval().Cdr.Cdr.Cdr.Car;
       }
 
-      final static Any do182(Any ex) { // cdaaar
+      final static Any do183(Any ex) { // cdaaar
          return ex.Cdr.Car.eval().Car.Car.Car.Cdr;
       }
 
-      final static Any do183(Any ex) { // cdaadr
+      final static Any do184(Any ex) { // cdaadr
          return ex.Cdr.Car.eval().Cdr.Car.Car.Cdr;
       }
 
-      final static Any do184(Any ex) { // cdadar
+      final static Any do185(Any ex) { // cdadar
          return ex.Cdr.Car.eval().Car.Cdr.Car.Cdr;
       }
 
-      final static Any do185(Any ex) { // cdaddr
+      final static Any do186(Any ex) { // cdaddr
          return ex.Cdr.Car.eval().Cdr.Cdr.Car.Cdr;
       }
 
-      final static Any do186(Any ex) { // cddaar
+      final static Any do187(Any ex) { // cddaar
          return ex.Cdr.Car.eval().Car.Car.Cdr.Cdr;
       }
 
-      final static Any do187(Any ex) { // cddadr
+      final static Any do188(Any ex) { // cddadr
          return ex.Cdr.Car.eval().Cdr.Car.Cdr.Cdr;
       }
 
-      final static Any do188(Any ex) { // cdddar
+      final static Any do189(Any ex) { // cdddar
          return ex.Cdr.Car.eval().Car.Cdr.Cdr.Cdr;
       }
 
-      final static Any do189(Any ex) { // cddddr
+      final static Any do190(Any ex) { // cddddr
          return ex.Cdr.Car.eval().Cdr.Cdr.Cdr.Cdr;
       }
 
-      final static Any do190(Any ex) { // nth
+      final static Any do191(Any ex) { // nth
          Any x;
          x = (ex = ex.Cdr).Car.eval();
          for (;;) {
@@ -5080,13 +5090,13 @@ public class PicoLisp {
          }
       }
 
-      final static Any do191(Any ex) { // con
+      final static Any do192(Any ex) { // con
          Any x;
          x = ex.Cdr.Car.eval();
          return x.Cdr = ex.Cdr.Cdr.Car.eval();
       }
 
-      final static Any do192(Any ex) { // cons
+      final static Any do193(Any ex) { // cons
          Any x, y;
          y = x = new Cell((ex = ex.Cdr).Car.eval(), Nil);
          while ((ex = ex.Cdr).Cdr instanceof Cell)
@@ -5095,7 +5105,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do193(Any ex) { // conc
+      final static Any do194(Any ex) { // conc
          Any x, y, z;
          z = x = (ex = ex.Cdr).Car.eval();
          while ((ex = ex.Cdr) instanceof Cell) {
@@ -5110,7 +5120,7 @@ public class PicoLisp {
          return z;
       }
 
-      final static Any do194(Any ex) { // circ
+      final static Any do195(Any ex) { // circ
          Any x, y;
          y = x = new Cell((ex = ex.Cdr).Car.eval(), Nil);
          while ((ex = ex.Cdr) instanceof Cell)
@@ -5119,7 +5129,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do195(Any ex) { // rot
+      final static Any do196(Any ex) { // rot
          int i;
          Any w, x, y, z;
          w = y = (ex = ex.Cdr).Car.eval();
@@ -5134,7 +5144,7 @@ public class PicoLisp {
          return w;
       }
 
-      final static Any do196(Any ex) { // list
+      final static Any do197(Any ex) { // list
          Any x, y;
          x = y = new Cell((ex = ex.Cdr).Car.eval(), Nil);
          while ((ex = ex.Cdr) instanceof Cell)
@@ -5142,7 +5152,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do197(Any ex) { // need
+      final static Any do198(Any ex) { // need
          long n;
          Any x, y, z;
          n = evLong(ex = ex.Cdr);
@@ -5165,7 +5175,7 @@ public class PicoLisp {
          return z;
       }
 
-      final static Any do198(Any ex) { // range
+      final static Any do199(Any ex) { // range
          Any x, y;
          Number num;
          num = (Number)(y = (x = ex.Cdr).Car.eval());
@@ -5181,7 +5191,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do199(Any ex) { // full
+      final static Any do200(Any ex) { // full
          Any x;
          for (x = ex.Cdr.Car.eval(); x instanceof Cell; x = x.Cdr)
             if (x.Car == Nil)
@@ -5189,7 +5199,7 @@ public class PicoLisp {
          return T;
       }
 
-      final static Any do200(Any ex) { // make
+      final static Any do201(Any ex) { // make
          Any x, y, z;
          x = Env.Make;  Env.Make = Nil;
          y = Env.Yoke;  Env.Yoke = Nil;
@@ -5200,7 +5210,7 @@ public class PicoLisp {
          return z;
       }
 
-      final static Any do201(Any ex) { // made
+      final static Any do202(Any ex) { // made
          Any x;
          if ((x = ex.Cdr) instanceof Cell) {
             Env.Yoke = x.Car.eval();
@@ -5212,7 +5222,7 @@ public class PicoLisp {
          return Env.Yoke;
       }
 
-      final static Any do202(Any ex) { // chain
+      final static Any do203(Any ex) { // chain
          Any x, y;
          ex = ex.Cdr;
          do {
@@ -5227,7 +5237,7 @@ public class PicoLisp {
          return x;
       }
 
-      final static Any do203(Any ex) { // link
+      final static Any do204(Any ex) { // link
          Any x;
          ex = ex.Cdr;
          do {
@@ -5240,7 +5250,7 @@ public class PicoLisp {
          return x;
       }
 
-      final static Any do204(Any ex) { // yoke
+      final static Any do205(Any ex) { // yoke
          Any x;
          ex = ex.Cdr;
          do {
@@ -5252,7 +5262,7 @@ public class PicoLisp {
          return x;
       }
 
-      final static Any do205(Any ex) { // copy
+      final static Any do206(Any ex) { // copy
          Any w, x, y, z;
          if (!((x = ex.Cdr.Car.eval()) instanceof Cell))
             return x;
@@ -5264,7 +5274,7 @@ public class PicoLisp {
          return w;
       }
 
-      final static Any do206(Any ex) { // mix
+      final static Any do207(Any ex) { // mix
          Any x, y, z;
          if (!((y = (ex = ex.Cdr).Car.eval()) instanceof Cell) && y != Nil)
             return y;
@@ -5276,7 +5286,7 @@ public class PicoLisp {
          return z;
       }
 
-      final static Any do207(Any ex) { // append
+      final static Any do208(Any ex) { // append
          Any x, y, z;
          for (ex = ex.Cdr; (z = ex.Cdr) instanceof Cell; ex = z) {
             if ((x = ex.Car.eval()) instanceof Cell) {
@@ -5295,7 +5305,7 @@ public class PicoLisp {
          return ex.Car.eval();
       }
 
-      final static Any do208(Any ex) { // delete
+      final static Any do209(Any ex) { // delete
          Any w, x, y, z;
          y = (x = ex.Cdr).Car.eval();
          if (!((x = x.Cdr.Car.eval()) instanceof Cell))
@@ -5314,7 +5324,7 @@ public class PicoLisp {
          return w;
       }
 
-      final static Any do209(Any ex) { // delq
+      final static Any do210(Any ex) { // delq
          Any w, x, y, z;
          y = (x = ex.Cdr).Car.eval();
          if (!((x = x.Cdr.Car.eval()) instanceof Cell))
@@ -5333,7 +5343,7 @@ public class PicoLisp {
          return w;
       }
 
-      final static Any do210(Any ex) { // replace
+      final static Any do211(Any ex) { // replace
          int i, j;
          Any w, x, y, z;
          Any[] v;
@@ -5356,13 +5366,13 @@ public class PicoLisp {
          return w;
       }
 
-      final static Any do211(Any ex) { // strip
+      final static Any do212(Any ex) { // strip
          Any x;
          for (x = ex.Cdr.Car.eval();  x instanceof Cell && x.Car == Quote && x != x.Cdr;  x = x.Cdr);
          return x;
       }
 
-      final static Any do212(Any ex) { // split
+      final static Any do213(Any ex) { // split
          int i, j;
          Any x, y, z;
          Any[] v;
@@ -5396,7 +5406,7 @@ public class PicoLisp {
          return res;
       }
 
-      final static Any do213(Any ex) { // reverse
+      final static Any do214(Any ex) { // reverse
          Any x, y;
          x = ex.Cdr.Car.eval();
          for (y = Nil; x instanceof Cell; x = x.Cdr)
@@ -5404,7 +5414,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do214(Any ex) { // flip
+      final static Any do215(Any ex) { // flip
          int i;
          Any x, y, z;
          if (!((y = (ex = ex.Cdr).Car.eval()) instanceof Cell) || !((z = y.Cdr) instanceof Cell))
@@ -5427,17 +5437,17 @@ public class PicoLisp {
          return z;
       }
 
-      final static Any do215(Any ex) { // trim
+      final static Any do216(Any ex) { // trim
          return trim(ex.Cdr.Car.eval());
       }
 
-      final static Any do216(Any ex) { // clip
+      final static Any do217(Any ex) { // clip
          Any x;
          for (x = ex.Cdr.Car.eval(); x instanceof Cell && isBlank(x.Car); x = x.Cdr);
          return trim(x);
       }
 
-      final static Any do217(Any ex) { // head
+      final static Any do218(Any ex) { // head
          int i;
          Any x, y, z;
          if ((z = (x = ex.Cdr).Car.eval()) == Nil)
@@ -5463,7 +5473,7 @@ public class PicoLisp {
          return z;
       }
 
-      final static Any do218(Any ex) { // tail
+      final static Any do219(Any ex) { // tail
          int i;
          Any x, y, z;
          if ((z = (x = ex.Cdr).Car.eval()) == Nil)
@@ -5493,7 +5503,7 @@ public class PicoLisp {
          return x;
       }
 
-      final static Any do219(Any ex) { // stem
+      final static Any do220(Any ex) { // stem
          int i, j;
          Any x, y;
          Any[] v;
@@ -5509,13 +5519,13 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do220(Any ex) { // fin
+      final static Any do221(Any ex) { // fin
          Any x;
          for (x = ex.Cdr.Car.eval(); x instanceof Cell; x = x.Cdr);
          return x;
       }
 
-      final static Any do221(Any ex) { // last
+      final static Any do222(Any ex) { // last
          Any x;
          if (!((x = ex.Cdr.Car.eval()) instanceof Cell))
             return x;
@@ -5524,7 +5534,7 @@ public class PicoLisp {
          return x.Car;
       }
 
-      final static Any do222(Any ex) { // ==
+      final static Any do223(Any ex) { // ==
          Any x, y;
          y = (x = ex.Cdr).Car.eval();
          while ((x = x.Cdr) instanceof Cell)
@@ -5533,7 +5543,7 @@ public class PicoLisp {
          return T;
       }
 
-      final static Any do223(Any ex) { // n==
+      final static Any do224(Any ex) { // n==
          Any x, y;
          y = (x = ex.Cdr).Car.eval();
          while ((x = x.Cdr) instanceof Cell)
@@ -5542,7 +5552,7 @@ public class PicoLisp {
          return Nil;
       }
 
-      final static Any do224(Any ex) { // =
+      final static Any do225(Any ex) { // =
          Any x, y;
          y = (x = ex.Cdr).Car.eval();
          while ((x = x.Cdr) instanceof Cell)
@@ -5551,7 +5561,7 @@ public class PicoLisp {
          return T;
       }
 
-      final static Any do225(Any ex) { // <>
+      final static Any do226(Any ex) { // <>
          Any x, y;
          y = (x = ex.Cdr).Car.eval();
          while ((x = x.Cdr) instanceof Cell)
@@ -5560,24 +5570,24 @@ public class PicoLisp {
          return Nil;
       }
 
-      final static Any do226(Any ex) { // =0
+      final static Any do227(Any ex) { // =0
          Any x;
          return ex.Cdr.Car.eval().equal(Zero)? Zero : Nil;
       }
 
-      final static Any do227(Any ex) { // =T
+      final static Any do228(Any ex) { // =T
          return T == ex.Cdr.Car.eval()? T : Nil;
       }
 
-      final static Any do228(Any ex) { // n0
+      final static Any do229(Any ex) { // n0
          return ex.Cdr.Car.eval().equal(Zero)? Nil : T;
       }
 
-      final static Any do229(Any ex) { // nT
+      final static Any do230(Any ex) { // nT
          return T == ex.Cdr.Car.eval()? Nil : T;
       }
 
-      final static Any do230(Any ex) { // <
+      final static Any do231(Any ex) { // <
          Any x, y, z;
          y = (x = ex.Cdr).Car.eval();
          while ((x = x.Cdr) instanceof Cell) {
@@ -5589,7 +5599,7 @@ public class PicoLisp {
          return T;
       }
 
-      final static Any do231(Any ex) { // <=
+      final static Any do232(Any ex) { // <=
          Any x, y, z;
          y = (x = ex.Cdr).Car.eval();
          while ((x = x.Cdr) instanceof Cell) {
@@ -5601,7 +5611,7 @@ public class PicoLisp {
          return T;
       }
 
-      final static Any do232(Any ex) { // >
+      final static Any do233(Any ex) { // >
          Any x, y;
          x = (ex = ex.Cdr).Car.eval();
          while (ex.Cdr instanceof Cell) {
@@ -5613,7 +5623,7 @@ public class PicoLisp {
          return T;
       }
 
-      final static Any do233(Any ex) { // >=
+      final static Any do234(Any ex) { // >=
          Any x, y, z;
          y = (x = ex.Cdr).Car.eval();
          while ((x = x.Cdr) instanceof Cell) {
@@ -5625,7 +5635,7 @@ public class PicoLisp {
          return T;
       }
 
-      final static Any do234(Any ex) { // max
+      final static Any do235(Any ex) { // max
          Any x, y;
          for (y = (ex = ex.Cdr).Car.eval(); (ex = ex.Cdr) instanceof Cell;)
             if ((x = ex.Car.eval()).compare(y) > 0)
@@ -5633,7 +5643,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do235(Any ex) { // min
+      final static Any do236(Any ex) { // min
          Any x, y;
          for (y = (ex = ex.Cdr).Car.eval(); (ex = ex.Cdr) instanceof Cell;)
             if ((x = ex.Car.eval()).compare(y) < 0)
@@ -5641,48 +5651,48 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do236(Any ex) { // atom
+      final static Any do237(Any ex) { // atom
          return ex.Cdr.Car.eval() instanceof Cell? Nil : T;
       }
 
-      final static Any do237(Any ex) { // pair
+      final static Any do238(Any ex) { // pair
          Any x;
          return (x = ex.Cdr.Car.eval()) instanceof Cell? x : Nil;
       }
 
-      final static Any do238(Any ex) { // lst?
+      final static Any do239(Any ex) { // lst?
          Any x;
          return (x = ex.Cdr.Car.eval()) instanceof Cell || x == Nil? T : Nil;
       }
 
-      final static Any do239(Any ex) { // num?
+      final static Any do240(Any ex) { // num?
          Any x;
          return (x = ex.Cdr.Car.eval()) instanceof Number? x : Nil;
       }
 
-      final static Any do240(Any ex) { // sym?
+      final static Any do241(Any ex) { // sym?
          Any x;
          return (x = ex.Cdr.Car.eval()) instanceof Symbol || x == Nil? T : Nil;
       }
 
-      final static Any do241(Any ex) { // flg?
+      final static Any do242(Any ex) { // flg?
          Any x;
          return (x = ex.Cdr.Car.eval()) == Nil || x == T? T : Nil;
       }
 
-      final static Any do242(Any ex) { // member
+      final static Any do243(Any ex) { // member
          Any x;
          x = (ex = ex.Cdr).Car.eval();
          return (x = member(x, ex.Cdr.Car.eval())) == null? Nil : x;
       }
 
-      final static Any do243(Any ex) { // memq
+      final static Any do244(Any ex) { // memq
          Any x;
          x = (ex = ex.Cdr).Car.eval();
          return (x = memq(x, ex.Cdr.Car.eval())) == null? Nil : x;
       }
 
-      final static Any do244(Any ex) { // mmeq
+      final static Any do245(Any ex) { // mmeq
          Any x, y, z;
          x = (ex = ex.Cdr).Car.eval();
          for (y = (ex = ex.Cdr).Car.eval(); x instanceof Cell; x = x.Cdr)
@@ -5691,7 +5701,7 @@ public class PicoLisp {
          return Nil;
       }
 
-      final static Any do245(Any ex) { // sect
+      final static Any do246(Any ex) { // sect
          Any w, x, y, z;
          y = (x = ex.Cdr).Car.eval();
          z = x.Cdr.Car.eval();
@@ -5707,7 +5717,7 @@ public class PicoLisp {
          return w;
       }
 
-      final static Any do246(Any ex) { // diff
+      final static Any do247(Any ex) { // diff
          Any w, x, y, z;
          y = (x = ex.Cdr).Car.eval();
          z = x.Cdr.Car.eval();
@@ -5723,14 +5733,14 @@ public class PicoLisp {
          return w;
       }
 
-      final static Any do247(Any ex) { // index
+      final static Any do248(Any ex) { // index
          int i;
          Any x, y;
          y = (x = ex.Cdr).Car.eval();
          return (i = indx(y, x.Cdr.Car.eval())) == 0? Nil : new Number(i);
       }
 
-      final static Any do248(Any ex) { // offset
+      final static Any do249(Any ex) { // offset
          int i;
          Any x, y;
          y = (x = ex.Cdr).Car.eval();
@@ -5741,16 +5751,16 @@ public class PicoLisp {
          return Nil;
       }
 
-      final static Any do249(Any ex) { // length
+      final static Any do250(Any ex) { // length
          long n;
          return (n = ex.Cdr.Car.eval().length()) >= 0? new Number(n) : T;
       }
 
-      final static Any do250(Any ex) { // size
+      final static Any do251(Any ex) { // size
          return new Number(ex.Cdr.Car.eval().size());
       }
 
-      final static Any do251(Any ex) { // assoc
+      final static Any do252(Any ex) { // assoc
          Any x, y, z;
          y = (x = ex.Cdr).Car.eval();
          x = x.Cdr.Car.eval();
@@ -5760,7 +5770,7 @@ public class PicoLisp {
          return Nil;
       }
 
-      final static Any do252(Any ex) { // asoq
+      final static Any do253(Any ex) { // asoq
          Any x, y, z;
          y = (x = ex.Cdr).Car.eval();
          x = x.Cdr.Car.eval();
@@ -5770,7 +5780,7 @@ public class PicoLisp {
          return Nil;
       }
 
-      final static Any do253(Any ex) { // rank
+      final static Any do254(Any ex) { // rank
          Any w, x, y, z;
          w = (x = ex.Cdr).Car.eval();
          y = (x = x.Cdr).Car.eval();
@@ -5790,19 +5800,19 @@ public class PicoLisp {
          return z.Car;
       }
 
-      final static Any do254(Any ex) { // match
+      final static Any do255(Any ex) { // match
          Any x, y;
          y = (x = ex.Cdr).Car.eval();
          return match(y, x.Cdr.Car.eval())? T : Nil;
       }
 
-      final static Any do255(Any ex) { // fill
+      final static Any do256(Any ex) { // fill
          Any x, y;
          y = (x = ex.Cdr).Car.eval();
          return (x = fill(y, x.Cdr.Car.eval())) == null? y : x;
       }
 
-      final static Any do256(Any ex) { // prove
+      final static Any do257(Any ex) { // prove
          int i;
          Any x, y;
          if (!((y = (ex = ex.Cdr).Car.eval()) instanceof Cell))
@@ -5898,7 +5908,7 @@ public class PicoLisp {
          return x;
       }
 
-      final static Any do257(Any ex) { // ->
+      final static Any do258(Any ex) { // ->
          int i;
          Any x;
          if (!(ex.Cdr.Cdr.Car instanceof Number))
@@ -5908,18 +5918,18 @@ public class PicoLisp {
          return lookup((Number)x.Car, ex.Cdr.Car);
       }
 
-      final static Any do258(Any ex) { // unify
+      final static Any do259(Any ex) { // unify
          Any x;
          x = ex.Cdr.Car.eval();
          return unify((Number)Pnl.Cdr.Car, x, (Number)Pnl.Car, x)? Penv : Nil;
       }
 
-      final static Any do259(Any ex) { // sort
+      final static Any do260(Any ex) { // sort
          Any x;
          return (x = ex.Cdr.Car.eval()) instanceof Cell && x.Cdr instanceof Cell? sort(ex, x, ex.Cdr.Cdr.Car.eval()) : x;
       }
 
-      final static Any do260(Any ex) { // format
+      final static Any do261(Any ex) { // format
          int i;
          Any x, y;
          x = (ex = ex.Cdr).Car.eval();
@@ -5927,7 +5937,7 @@ public class PicoLisp {
          return format(x, i, ex.Cdr);
       }
 
-      final static Any do261(Any ex) { // +
+      final static Any do262(Any ex) { // +
          Any x;
          Number num;
          if ((x = (ex = ex.Cdr).Car.eval()) == Nil)
@@ -5938,7 +5948,7 @@ public class PicoLisp {
          return num;
       }
 
-      final static Any do262(Any ex) { // -
+      final static Any do263(Any ex) { // -
          Any x;
          Number num;
          if ((x = (ex = ex.Cdr).Car.eval()) == Nil)
@@ -5954,7 +5964,7 @@ public class PicoLisp {
          return num;
       }
 
-      final static Any do263(Any ex) { // inc
+      final static Any do264(Any ex) { // inc
          Any x, y;
          if ((x = (ex = ex.Cdr).Car.eval()) == Nil)
             return Nil;
@@ -5974,7 +5984,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do264(Any ex) { // dec
+      final static Any do265(Any ex) { // dec
          Any x, y;
          if ((x = (ex = ex.Cdr).Car.eval()) == Nil)
             return Nil;
@@ -5994,7 +6004,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do265(Any ex) { // *
+      final static Any do266(Any ex) { // *
          Any x;
          Number num;
          if ((x = (ex = ex.Cdr).Car.eval()) == Nil)
@@ -6005,7 +6015,7 @@ public class PicoLisp {
          return num;
       }
 
-      final static Any do266(Any ex) { // */
+      final static Any do267(Any ex) { // */
          Any x;
          Number num;
          if ((x = (ex = ex.Cdr).Car.eval()) == Nil)
@@ -6018,7 +6028,7 @@ public class PicoLisp {
          }
       }
 
-      final static Any do267(Any ex) { // /
+      final static Any do268(Any ex) { // /
          Any x;
          Number num;
          if ((x = (ex = ex.Cdr).Car.eval()) == Nil)
@@ -6029,7 +6039,7 @@ public class PicoLisp {
          return num;
       }
 
-      final static Any do268(Any ex) { // %
+      final static Any do269(Any ex) { // %
          Any x;
          Number num;
          if ((x = (ex = ex.Cdr).Car.eval()) == Nil)
@@ -6040,7 +6050,7 @@ public class PicoLisp {
          return num;
       }
 
-      final static Any do269(Any ex) { // >>
+      final static Any do270(Any ex) { // >>
          int i;
          Any x;
          i = evInt(ex = ex.Cdr);
@@ -6049,26 +6059,26 @@ public class PicoLisp {
          return ((Number)x).shift(i);
       }
 
-      final static Any do270(Any ex) { // lt0
+      final static Any do271(Any ex) { // lt0
          Any x;
          return (x = ex.Cdr.Car.eval()) instanceof Number && x.compare(Zero) < 0? x : Nil;
       }
 
-      final static Any do271(Any ex) { // ge0
+      final static Any do272(Any ex) { // ge0
          Any x;
          return (x = ex.Cdr.Car.eval()) instanceof Number && x.compare(Zero) >= 0? x : Nil;
       }
 
-      final static Any do272(Any ex) { // gt0
+      final static Any do273(Any ex) { // gt0
          Any x;
          return (x = ex.Cdr.Car.eval()) instanceof Number && x.compare(Zero) > 0? x : Nil;
       }
 
-      final static Any do273(Any ex) { // abs
+      final static Any do274(Any ex) { // abs
          return ((Number)ex.Cdr.Car.eval()).abs();
       }
 
-      final static Any do274(Any ex) { // bit?
+      final static Any do275(Any ex) { // bit?
          Any x;
          Number num;
          num = (Number)(ex = ex.Cdr).Car.eval();
@@ -6078,7 +6088,7 @@ public class PicoLisp {
          return num;
       }
 
-      final static Any do275(Any ex) { // &
+      final static Any do276(Any ex) { // &
          Any x;
          Number num;
          if ((x = (ex = ex.Cdr).Car.eval()) == Nil)
@@ -6089,7 +6099,7 @@ public class PicoLisp {
          return num;
       }
 
-      final static Any do276(Any ex) { // |
+      final static Any do277(Any ex) { // |
          Any x;
          Number num;
          if ((x = (ex = ex.Cdr).Car.eval()) == Nil)
@@ -6100,7 +6110,7 @@ public class PicoLisp {
          return num;
       }
 
-      final static Any do277(Any ex) { // x|
+      final static Any do278(Any ex) { // x|
          Any x;
          Number num;
          if ((x = (ex = ex.Cdr).Car.eval()) == Nil)
@@ -6111,13 +6121,13 @@ public class PicoLisp {
          return num;
       }
 
-      final static Any do278(Any ex) { // seed
+      final static Any do279(Any ex) { // seed
          long n;
          n = initSeed(ex.Cdr.Car.eval()) * 6364136223846793005L + 1;
          return new Number(Seed = n);
       }
 
-      final static Any do279(Any ex) { // rand
+      final static Any do280(Any ex) { // rand
          Any x;
          Seed = Seed * 6364136223846793005L + 1;
          if ((x = (ex = ex.Cdr).Car.eval()) == Nil)
@@ -6127,11 +6137,11 @@ public class PicoLisp {
          return new Number(((Number)x).Cnt + (int)(Seed >>> 33) % (evInt(ex.Cdr) + 1 - ((Number)x).Cnt));
       }
 
-      final static Any do280(Any ex) { // path
+      final static Any do281(Any ex) { // path
          return mkStr(path(evString(ex.Cdr)));
       }
 
-      final static Any do281(Any ex) { // read
+      final static Any do282(Any ex) { // read
          Any x, y;
          if (!((x = ex.Cdr) instanceof Cell))
             x = InFile.read('\0');
@@ -6145,7 +6155,7 @@ public class PicoLisp {
          return x;
       }
 
-      final static Any do282(Any ex) { // wait
+      final static Any do283(Any ex) { // wait
          int i;
          Any x, y;
          i = (y = (x = ex.Cdr).Car.eval()) == Nil? -1 : xInt(y);
@@ -6155,7 +6165,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do283(Any ex) { // poll
+      final static Any do284(Any ex) { // poll
          int i;
          Any x;
          if ((i = xInt(x = ex.Cdr.Car.eval())) < 0 || i >= InFiles.length)
@@ -6175,13 +6185,13 @@ public class PicoLisp {
          return Nil;
       }
 
-      final static Any do284(Any ex) { // peek
+      final static Any do285(Any ex) { // peek
          if (InFile.Chr == 0)
             InFile.get();
          return InFile.Chr<0? Nil : mkChar((char)InFile.Chr);
       }
 
-      final static Any do285(Any ex) { // char
+      final static Any do286(Any ex) { // char
          Any x;
          if (!((ex = ex.Cdr) instanceof Cell)) {
             if (InFile.Chr == 0)
@@ -6195,17 +6205,17 @@ public class PicoLisp {
          return x == T? mkChar((char)0x10000) : new Number(firstChar(x));
       }
 
-      final static Any do286(Any ex) { // skip
+      final static Any do287(Any ex) { // skip
          char c;
          c = firstChar(ex.Cdr.Car.eval());
          return InFile.skip(c) < 0? Nil : mkChar(c);
       }
 
-      final static Any do287(Any ex) { // eol
+      final static Any do288(Any ex) { // eol
          return InFile.Chr=='\n' || InFile.Chr<=0? T : Nil;
       }
 
-      final static Any do288(Any ex) { // eof
+      final static Any do289(Any ex) { // eof
          if (ex.Cdr.Car.eval() != Nil) {
             InFile.Chr = -1;
             return T;
@@ -6215,7 +6225,7 @@ public class PicoLisp {
          return InFile.Chr < 0? T : Nil;
       }
 
-      final static Any do289(Any ex) { // from
+      final static Any do290(Any ex) { // from
          int i, j, k;
          Any x;
          Any[] v;
@@ -6248,7 +6258,7 @@ public class PicoLisp {
          return Nil;
       }
 
-      final static Any do290(Any ex) { // till
+      final static Any do291(Any ex) { // till
          Any x, y;
          String str;
          StringBuilder sb;
@@ -6270,7 +6280,7 @@ public class PicoLisp {
          return mkStr(sb);
       }
 
-      final static Any do291(Any ex) { // line
+      final static Any do292(Any ex) { // line
          int i;
          Any x, y, z;
          StringBuilder sb;
@@ -6294,7 +6304,7 @@ public class PicoLisp {
          }
       }
 
-      final static Any do292(Any ex) { // any
+      final static Any do293(Any ex) { // any
          Any x;
          if ((x = ex.Cdr.Car.eval()) == Nil)
             return Nil;
@@ -6303,14 +6313,14 @@ public class PicoLisp {
          return rd.read0(true);
       }
 
-      final static Any do293(Any ex) { // sym
+      final static Any do294(Any ex) { // sym
          StringWriter sw = new StringWriter();
          PrintWriter wr = new PrintWriter(sw);
          wr.print(ex.Cdr.Car.eval().toString());
          return mkStr(sw.toString());
       }
 
-      final static Any do294(Any ex) { // str
+      final static Any do295(Any ex) { // str
          Any x, y;
          if ((y = (x = ex.Cdr).Car.eval()) == Nil)
             return Nil;
@@ -6329,7 +6339,7 @@ public class PicoLisp {
          return mkStr(sw.toString());
       }
 
-      final static Any do295(Any ex) { // load
+      final static Any do296(Any ex) { // load
          Any x, y;
          x = ex.Cdr;
          do {
@@ -6341,7 +6351,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do296(Any ex) { // in
+      final static Any do297(Any ex) { // in
          Any x;
          Env.pushInFile((x = ex.Cdr).Car.eval().rdOpen(ex));
          x = x.Cdr.prog();
@@ -6349,7 +6359,7 @@ public class PicoLisp {
          return x;
       }
 
-      final static Any do297(Any ex) { // out
+      final static Any do298(Any ex) { // out
          Any x;
          Env.pushOutFile((x = ex.Cdr).Car.eval().wrOpen(ex));
          x = x.Cdr.prog();
@@ -6357,7 +6367,7 @@ public class PicoLisp {
          return x;
       }
 
-      final static Any do298(Any ex) { // open
+      final static Any do299(Any ex) { // open
          String str;
          str = evString(ex.Cdr);
          try {return new Number(new PicoLispReader(new FileReader(str), str, allocFd(), null, 0).Fd);}
@@ -6365,7 +6375,7 @@ public class PicoLisp {
          return Nil;
       }
 
-      final static Any do299(Any ex) { // close
+      final static Any do300(Any ex) { // close
          int i;
          Any x;
          if ((i = xInt(x = ex.Cdr.Car.eval())) >= 0 && i < InFiles.length) {
@@ -6383,7 +6393,7 @@ public class PicoLisp {
          return Nil;
       }
 
-      final static Any do300(Any ex) { // echo
+      final static Any do301(Any ex) { // echo
          int i, j, k;
          long n;
          Any x, y;
@@ -6465,20 +6475,20 @@ public class PicoLisp {
          return T;
       }
 
-      final static Any do301(Any ex) { // prin
+      final static Any do302(Any ex) { // prin
          Any x, y;
          for (y = Nil; (ex = ex.Cdr) instanceof Cell; OutFile.Wr.print((y = ex.Car.eval()).name()));
          return y;
       }
 
-      final static Any do302(Any ex) { // prinl
+      final static Any do303(Any ex) { // prinl
          Any x, y;
          for (y = Nil; (ex = ex.Cdr) instanceof Cell; OutFile.Wr.print((y = ex.Car.eval()).name()));
          OutFile.newline();
          return y;
       }
 
-      final static Any do303(Any ex) { // space
+      final static Any do304(Any ex) { // space
          int i;
          Any x;
          if ((x = ex.Cdr.Car.eval()) == Nil) {
@@ -6490,7 +6500,7 @@ public class PicoLisp {
          return x;
       }
 
-      final static Any do304(Any ex) { // print
+      final static Any do305(Any ex) { // print
          Any x, y;
          OutFile.print(y = (x = ex.Cdr).Car.eval());
          while ((x = x.Cdr) instanceof Cell) {
@@ -6500,7 +6510,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do305(Any ex) { // printsp
+      final static Any do306(Any ex) { // printsp
          Any x, y;
          x = ex.Cdr;
          do {
@@ -6510,7 +6520,7 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do306(Any ex) { // println
+      final static Any do307(Any ex) { // println
          Any x, y;
          OutFile.print(y = (x = ex.Cdr).Car.eval());
          while ((x = x.Cdr) instanceof Cell) {
@@ -6521,11 +6531,11 @@ public class PicoLisp {
          return y;
       }
 
-      final static Any do307(Any ex) { // flush
+      final static Any do308(Any ex) { // flush
          return OutFile.Wr.checkError()? Nil : T;
       }
 
-      final static Any do308(Any ex) { // port
+      final static Any do309(Any ex) { // port
          ex = ex.Cdr;  // ...
          try {
             ServerSocketChannel chan = ServerSocketChannel.open();;
@@ -6536,7 +6546,7 @@ public class PicoLisp {
          return Nil;
       }
 
-      final static Any do309(Any ex) { // accept
+      final static Any do310(Any ex) { // accept
          int i;
          Any x;
          if ((i = xInt(x = ex.Cdr.Car.eval())) < 0 || i >= InFiles.length || InFiles[i] == null || InFiles[i].Chan == null)
@@ -6546,7 +6556,7 @@ public class PicoLisp {
          return Nil;
       }
 
-      final static Any do310(Any ex) { // connect
+      final static Any do311(Any ex) { // connect
          int i;
          try {
             SocketChannel chan = SocketChannel.open();
diff --git a/ersatz/fun.src b/ersatz/fun.src
@@ -1557,7 +1557,14 @@ call (i j x)
       cmd[i] = x.Car.eval().name();
       x = x.Cdr;
    }
-   try {i = Runtime.getRuntime().exec(cmd).waitFor();}
+   try {
+      Process p = Runtime.getRuntime().exec(cmd);
+      BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
+      String line;
+      while ((line = in.readLine()) != null)
+         System.out.println(line);
+      i = p.waitFor();
+   }
    catch (IOException e) {System.err.println(cmd[0] + ": Can't exec");}
    catch (InterruptedException e) {}  //#! sighandler()
    return i == 0? T : Nil;
@@ -1644,6 +1651,10 @@ box? (x)
 str? (x)
    return ((x = ex.Cdr.Car.eval()) instanceof Symbol) && Intern.get(x.name()) == null? x : Nil;
 
+# (ext? 'any) -> sym | NIL
+ext? T
+   return Nil;
+
 # (zap 'sym) -> sym
 zap (s)
    s = (Symbol)ex.Cdr.Car.eval();
diff --git a/ersatz/picolisp.jar b/ersatz/picolisp.jar
Binary files differ.