diff --git a/contrib/10.attribute/attr.scm b/contrib/10.attribute/attr.scm
index 7252d8e2..e2d288b4 100644
--- a/contrib/10.attribute/attr.scm
+++ b/contrib/10.attribute/attr.scm
@@ -1,13 +1,10 @@
 (define-library (picrin base)
+  (export attribute)
 
   (define attribute-table (make-ephemeron-table))
 
   (define (attribute obj)
-    (let ((r (attribute-table obj)))
-      (if r
-          (cdr r)
-          (let ((dict (make-dictionary)))
-            (attribute-table obj dict)
-            dict))))
-
-  (export attribute))
+    (or (attribute-table obj)
+        (let ((dict (make-dictionary)))
+          (attribute-table obj dict)
+          dict))))
diff --git a/contrib/10.macro/macro.scm b/contrib/10.macro/macro.scm
index ec3caf44..36b55433 100644
--- a/contrib/10.macro/macro.scm
+++ b/contrib/10.macro/macro.scm
@@ -42,12 +42,10 @@
     (letrec
         ((wrap (let ((ephemeron (make-ephemeron-table)))
                  (lambda (var)
-                   (let ((id (ephemeron var)))
-                     (if id
-                         (cdr id)
-                         (let ((id (make-identifier var env)))
-                           (ephemeron var id)
-                           id))))))
+                   (or (ephemeron var)
+                       (let ((id (make-identifier var env)))
+                         (ephemeron var id)
+                         id)))))
          (walk (lambda (f form)
                  (cond
                   ((identifier? form)
@@ -104,12 +102,10 @@
       (letrec
           ((rename (let ((ephemeron (make-ephemeron-table)))
                      (lambda (var)
-                       (let ((id (ephemeron var)))
-                         (if id
-                             (cdr id)
-                             (let ((id (make-identifier var mac-env)))
-                               (ephemeron var id)
-                               id))))))
+                       (or (ephemeron var)
+                           (let ((id (make-identifier var mac-env)))
+                             (ephemeron var id)
+                             id)))))
            (compare (lambda (x y)
                       (identifier=?
                        (make-identifier x use-env)
@@ -122,34 +118,26 @@
             (ephemeron2 (make-ephemeron-table)))
         (letrec
             ((inject (lambda (var1)
-                       (let ((var2 (ephemeron1 var1)))
-                         (if var2
-                             (cdr var2)
-                             (let ((var2 (make-identifier var1 use-env)))
-                               (ephemeron1 var1 var2)
-                               (ephemeron2 var2 var1)
-                               var2)))))
+                       (or (ephemeron1 var1)
+                           (let ((var2 (make-identifier var1 use-env)))
+                             (ephemeron1 var1 var2)
+                             (ephemeron2 var2 var1)
+                             var2))))
              (rename (let ((ephemeron (make-ephemeron-table)))
                        (lambda (var)
-                         (let ((id (ephemeron var)))
-                           (if id
-                               (cdr id)
-                               (let ((id (make-identifier var mac-env)))
-                                 (ephemeron var id)
-                                 id))))))
+                         (or (ephemeron var)
+                             (let ((id (make-identifier var mac-env)))
+                               (ephemeron var id)
+                               id)))))
              (flip (lambda (var2) ; unwrap if injected, wrap if not injected
-                     (let ((var1 (ephemeron2 var2)))
-                       (if var1
-                           (cdr var1)
-                           (rename var2)))))
+                     (or (ephemeron2 var2)
+                         (rename var2))))
              (walk (lambda (f form)
                      (cond
                       ((identifier? form)
                        (f form))
                       ((pair? form)
                        (cons (walk f (car form)) (walk f (cdr form))))
-                      ((vector? form)
-                       (list->vector (walk f (vector->list form))))
                       (else
                        form))))
              (compare (lambda (x y)
diff --git a/contrib/20.r7rs/scheme/base.scm b/contrib/20.r7rs/scheme/base.scm
index 38688659..0a7a75e5 100644
--- a/contrib/20.r7rs/scheme/base.scm
+++ b/contrib/20.r7rs/scheme/base.scm
@@ -360,12 +360,10 @@
            (letrec
                ((#,'rename (let ((wm (make-ephemeron-table)))
                              (lambda (x)
-                               (let ((y (wm x)))
-                                 (if y
-                                     (cdr y)
-                                     (let ((id (make-identifier x env)))
-                                       (wm x id)
-                                       id)))))))
+                               (or (wm x)
+                                   (let ((id (make-identifier x env)))
+                                     (wm x id)
+                                     id))))))
              (lambda #,'it
                #,(compile-rules rules))))))
 
diff --git a/lib/ext/boot.c b/lib/ext/boot.c
index 804d5fde..42d745b8 100644
--- a/lib/ext/boot.c
+++ b/lib/ext/boot.c
@@ -5,450 +5,450 @@ static const char boot_rom[][80] = {
 "(core#begin (core#define transformer (core#lambda (.f.2252) (core#lambda (.form.",
 "2253 .env.2254) ((core#lambda (.ephemeron1.2255 .ephemeron2.2256) ((core#lambda ",
 "(.wrap.2257 .unwrap.2258 .walk.2259) (core#begin (core#set! .wrap.2257 (core#lam",
-"bda (.var1.2260) ((core#lambda (.var2.2261) (core#if .var2.2261 (cdr .var2.2261)",
-" ((core#lambda (.var2.2262) (core#begin (.ephemeron1.2255 .var1.2260 .var2.2262)",
-" (core#begin (.ephemeron2.2256 .var2.2262 .var1.2260) .var2.2262))) (make-identi",
-"fier .var1.2260 .env.2254)))) (.ephemeron1.2255 .var1.2260)))) (core#begin (core",
-"#set! .unwrap.2258 (core#lambda (.var2.2263) ((core#lambda (.var1.2264) (core#if",
-" .var1.2264 (cdr .var1.2264) .var2.2263)) (.ephemeron2.2256 .var2.2263)))) (core",
-"#begin (core#set! .walk.2259 (core#lambda (.f.2265 .form.2266) (core#if (identif",
-"ier? .form.2266) (.f.2265 .form.2266) (core#if (pair? .form.2266) (cons (.walk.2",
-"259 .f.2265 (car .form.2266)) (.walk.2259 .f.2265 (cdr .form.2266))) (core#if (v",
-"ector? .form.2266) (list->vector (.walk.2259 .f.2265 (vector->list .form.2266)))",
-" .form.2266))))) ((core#lambda (.form.2267) (.walk.2259 .unwrap.2258 (apply .f.2",
-"252 (.walk.2259 .wrap.2257 .form.2267)))) (cdr .form.2253)))))) #undefined #unde",
-"fined #undefined)) (make-ephemeron-table) (make-ephemeron-table))))) ((core#lamb",
-"da () (core#begin (core#define .define-transformer.2268 (core#lambda (.name.2288",
-" .transformer.2289) (add-macro! .name.2288 .transformer.2289))) (core#begin (cor",
-"e#define .the.2269 (core#lambda (.var.2290) (make-identifier .var.2290 default-e",
-"nvironment))) (core#begin (core#define .the-core-define.2270 (.the.2269 (core#qu",
-"ote core#define))) (core#begin (core#define .the-core-lambda.2271 (.the.2269 (co",
-"re#quote core#lambda))) (core#begin (core#define .the-core-begin.2272 (.the.2269",
-" (core#quote core#begin))) (core#begin (core#define .the-core-quote.2273 (.the.2",
-"269 (core#quote core#quote))) (core#begin (core#define .the-core-set!.2274 (.the",
-".2269 (core#quote core#set!))) (core#begin (core#define .the-core-if.2275 (.the.",
-"2269 (core#quote core#if))) (core#begin (core#define .the-core-define-macro.2276",
-" (.the.2269 (core#quote core#define-macro))) (core#begin (core#define .the-defin",
-"e.2277 (.the.2269 (core#quote define))) (core#begin (core#define .the-lambda.227",
-"8 (.the.2269 (core#quote lambda))) (core#begin (core#define .the-begin.2279 (.th",
-"e.2269 (core#quote begin))) (core#begin (core#define .the-quote.2280 (.the.2269 ",
-"(core#quote quote))) (core#begin (core#define .the-set!.2281 (.the.2269 (core#qu",
-"ote set!))) (core#begin (core#define .the-if.2282 (.the.2269 (core#quote if))) (",
-"core#begin (core#define .the-define-macro.2283 (.the.2269 (core#quote define-mac",
-"ro))) (core#begin (.define-transformer.2268 (core#quote quote) (core#lambda (.fo",
-"rm.2291 .env.2292) (core#if (= (length .form.2291) 2) (cons .the-core-quote.2273",
-" (cons (cadr .form.2291) (core#quote ()))) (error \"malformed quote\" .form.2291))",
-")) (core#begin (.define-transformer.2268 (core#quote if) (core#lambda (.form.229",
-"3 .env.2294) ((core#lambda (.len.2295) (core#if (= .len.2295 3) (append .form.22",
-"93 (cons (core#quote #undefined) (core#quote ()))) (core#if (= .len.2295 4) (con",
-"s .the-core-if.2275 (cdr .form.2293)) (error \"malformed if\" .form.2293)))) (leng",
-"th .form.2293)))) (core#begin (.define-transformer.2268 (core#quote begin) (core",
-"#lambda (.form.2296 .env.2297) ((core#lambda (.len.2298) (core#if (= .len.2298 1",
-") #undefined (core#if (= .len.2298 2) (cadr .form.2296) (core#if (= .len.2298 3)",
-" (cons .the-core-begin.2272 (cdr .form.2296)) (cons .the-core-begin.2272 (cons (",
-"cadr .form.2296) (cons (cons .the-begin.2279 (cddr .form.2296)) (core#quote ()))",
-")))))) (length .form.2296)))) (core#begin (.define-transformer.2268 (core#quote ",
-"set!) (core#lambda (.form.2299 .env.2300) (core#if (core#if (= (length .form.229",
-"9) 3) (identifier? (cadr .form.2299)) #f) (cons .the-core-set!.2274 (cdr .form.2",
-"299)) (error \"malformed set!\" .form.2299)))) (core#begin (core#define .check-for",
-"mal.2284 (core#lambda (.formal.2301) ((core#lambda (.it.2302) (core#if .it.2302 ",
-".it.2302 ((core#lambda (.it.2303) (core#if .it.2303 .it.2303 ((core#lambda (.it.",
-"2304) (core#if .it.2304 .it.2304 #f)) (core#if (pair? .formal.2301) (core#if (id",
-"entifier? (car .formal.2301)) (.check-formal.2284 (cdr .formal.2301)) #f) #f))))",
-" (identifier? .formal.2301)))) (null? .formal.2301)))) (core#begin (.define-tran",
-"sformer.2268 (core#quote lambda) (core#lambda (.form.2305 .env.2306) (core#if (=",
-" (length .form.2305) 1) (error \"malformed lambda\" .form.2305) (core#if (.check-f",
-"ormal.2284 (cadr .form.2305)) (cons .the-core-lambda.2271 (cons (cadr .form.2305",
-") (cons (cons .the-begin.2279 (cddr .form.2305)) (core#quote ())))) (error \"malf",
-"ormed lambda\" .form.2305))))) (core#begin (.define-transformer.2268 (core#quote ",
-"define) (core#lambda (.form.2307 .env.2308) ((core#lambda (.len.2309) (core#if (",
-"= .len.2309 1) (error \"malformed define\" .form.2307) ((core#lambda (.formal.2310",
-") (core#if (identifier? .formal.2310) (core#if (= .len.2309 3) (cons .the-core-d",
-"efine.2270 (cdr .form.2307)) (error \"malformed define\" .form.2307)) (core#if (pa",
-"ir? .formal.2310) (cons .the-define.2277 (cons (car .formal.2310) (cons (cons .t",
-"he-lambda.2278 (cons (cdr .formal.2310) (cddr .form.2307))) (core#quote ())))) (",
-"error \"define: binding to non-varaible object\" .form.2307)))) (cadr .form.2307))",
-")) (length .form.2307)))) (core#begin (.define-transformer.2268 (core#quote defi",
-"ne-macro) (core#lambda (.form.2311 .env.2312) (core#if (= (length .form.2311) 3)",
-" (core#if (identifier? (cadr .form.2311)) (cons .the-core-define-macro.2276 (cdr",
-" .form.2311)) (error \"define-macro: binding to non-variable object\" .form.2311))",
-" (error \"malformed define-macro\" .form.2311)))) (core#begin (.define-transformer",
-".2268 (core#quote syntax-error) (core#lambda (.form.2313 ._.2314) (apply error (",
-"cdr .form.2313)))) (core#begin #undefined (core#begin (.define-transformer.2268 ",
-"(core#quote else) (core#lambda ._.2315 (error \"invalid use of auxiliary syntax\" ",
-"(core#quote else)))) (core#begin (.define-transformer.2268 (core#quote =>) (core",
-"#lambda ._.2316 (error \"invalid use of auxiliary syntax\" (core#quote =>)))) (cor",
-"e#begin (.define-transformer.2268 (core#quote unquote) (core#lambda ._.2317 (err",
-"or \"invalid use of auxiliary syntax\" (core#quote unquote)))) (core#begin (.defin",
-"e-transformer.2268 (core#quote unquote-splicing) (core#lambda ._.2318 (error \"in",
-"valid use of auxiliary syntax\" (core#quote unquote-splicing)))) (core#begin (.de",
-"fine-transformer.2268 (core#quote syntax-unquote) (core#lambda ._.2319 (error \"i",
-"nvalid use of auxiliary syntax\" (core#quote syntax-unquote)))) (core#begin (.def",
-"ine-transformer.2268 (core#quote syntax-unquote-splicing) (core#lambda ._.2320 (",
-"error \"invalid use of auxiliary syntax\" (core#quote syntax-unquote-splicing)))) ",
-"(core#begin (.define-transformer.2268 (core#quote let) (core#lambda (.form.2321 ",
-".env.2322) (core#if (identifier? (cadr .form.2321)) ((core#lambda (.name.2323 .f",
-"ormal.2324 .body.2325) (cons (cons .the-lambda.2278 (cons (core#quote ()) (cons ",
-"(cons .the-define.2277 (cons (cons .name.2323 (map car .formal.2324)) .body.2325",
-")) (cons (cons .name.2323 (map cadr .formal.2324)) (core#quote ()))))) (core#quo",
-"te ()))) (car (cdr .form.2321)) (car (cdr (cdr .form.2321))) (cdr (cdr (cdr .for",
-"m.2321)))) ((core#lambda (.formal.2326 .body.2327) (cons (cons .the-lambda.2278 ",
-"(cons (map car .formal.2326) .body.2327)) (map cadr .formal.2326))) (car (cdr .f",
-"orm.2321)) (cdr (cdr .form.2321)))))) (core#begin (.define-transformer.2268 (cor",
-"e#quote and) (core#lambda (.form.2328 .env.2329) (core#if (null? (cdr .form.2328",
-")) #t (core#if (null? (cddr .form.2328)) (cadr .form.2328) (cons .the-if.2282 (c",
-"ons (cadr .form.2328) (cons (cons (.the.2269 (core#quote and)) (cddr .form.2328)",
-") (cons (core#quote #f) (core#quote ()))))))))) (core#begin (.define-transformer",
-".2268 (core#quote or) (core#lambda (.form.2330 .env.2331) (core#if (null? (cdr .",
-"form.2330)) #f ((core#lambda (.tmp.2332) (cons (.the.2269 (core#quote let)) (con",
-"s (cons (cons .tmp.2332 (cons (cadr .form.2330) (core#quote ()))) (core#quote ()",
-")) (cons (cons .the-if.2282 (cons .tmp.2332 (cons .tmp.2332 (cons (cons (.the.22",
-"69 (core#quote or)) (cddr .form.2330)) (core#quote ()))))) (core#quote ()))))) (",
-"make-identifier (core#quote it) .env.2331))))) (core#begin (.define-transformer.",
-"2268 (core#quote cond) (core#lambda (.form.2333 .env.2334) ((core#lambda (.claus",
-"es.2335) (core#if (null? .clauses.2335) #undefined ((core#lambda (.clause.2336) ",
-"(core#if (core#if (identifier? (car .clause.2336)) (identifier=? (.the.2269 (cor",
-"e#quote else)) (make-identifier (car .clause.2336) .env.2334)) #f) (cons .the-be",
-"gin.2279 (cdr .clause.2336)) (core#if (null? (cdr .clause.2336)) (cons (.the.226",
-"9 (core#quote or)) (cons (car .clause.2336) (cons (cons (.the.2269 (core#quote c",
-"ond)) (cdr .clauses.2335)) (core#quote ())))) (core#if (core#if (identifier? (ca",
-"dr .clause.2336)) (identifier=? (.the.2269 (core#quote =>)) (make-identifier (ca",
-"dr .clause.2336) .env.2334)) #f) ((core#lambda (.tmp.2337) (cons (.the.2269 (cor",
-"e#quote let)) (cons (cons (cons .tmp.2337 (cons (car .clause.2336) (core#quote (",
-")))) (core#quote ())) (cons (cons .the-if.2282 (cons .tmp.2337 (cons (cons (cadr",
-" (cdr .clause.2336)) (cons .tmp.2337 (core#quote ()))) (cons (cons (.the.2269 (c",
-"ore#quote cond)) (cddr .form.2333)) (core#quote ()))))) (core#quote ()))))) (mak",
-"e-identifier (core#quote tmp) .env.2334)) (cons .the-if.2282 (cons (car .clause.",
-"2336) (cons (cons .the-begin.2279 (cdr .clause.2336)) (cons (cons (.the.2269 (co",
-"re#quote cond)) (cdr .clauses.2335)) (core#quote ()))))))))) (car .clauses.2335)",
-"))) (cdr .form.2333)))) (core#begin (.define-transformer.2268 (core#quote quasiq",
-"uote) (core#lambda (.form.2338 .env.2339) (core#begin (core#define .quasiquote?.",
-"2340 (core#lambda (.form.2344) (core#if (pair? .form.2344) (core#if (identifier?",
-" (car .form.2344)) (identifier=? (.the.2269 (core#quote quasiquote)) (make-ident",
-"ifier (car .form.2344) .env.2339)) #f) #f))) (core#begin (core#define .unquote?.",
-"2341 (core#lambda (.form.2345) (core#if (pair? .form.2345) (core#if (identifier?",
-" (car .form.2345)) (identifier=? (.the.2269 (core#quote unquote)) (make-identifi",
-"er (car .form.2345) .env.2339)) #f) #f))) (core#begin (core#define .unquote-spli",
-"cing?.2342 (core#lambda (.form.2346) (core#if (pair? .form.2346) (core#if (pair?",
-" (car .form.2346)) (core#if (identifier? (caar .form.2346)) (identifier=? (.the.",
-"2269 (core#quote unquote-splicing)) (make-identifier (caar .form.2346) .env.2339",
-")) #f) #f) #f))) (core#begin (core#define .qq.2343 (core#lambda (.depth.2347 .ex",
-"pr.2348) (core#if (.unquote?.2341 .expr.2348) (core#if (= .depth.2347 1) (cadr .",
-"expr.2348) (list (.the.2269 (core#quote list)) (list (.the.2269 (core#quote quot",
-"e)) (.the.2269 (core#quote unquote))) (.qq.2343 (- .depth.2347 1) (car (cdr .exp",
-"r.2348))))) (core#if (.unquote-splicing?.2342 .expr.2348) (core#if (= .depth.234",
-"7 1) (list (.the.2269 (core#quote append)) (car (cdr (car .expr.2348))) (.qq.234",
-"3 .depth.2347 (cdr .expr.2348))) (list (.the.2269 (core#quote cons)) (list (.the",
-".2269 (core#quote list)) (list (.the.2269 (core#quote quote)) (.the.2269 (core#q",
-"uote unquote-splicing))) (.qq.2343 (- .depth.2347 1) (car (cdr (car .expr.2348))",
-"))) (.qq.2343 .depth.2347 (cdr .expr.2348)))) (core#if (.quasiquote?.2340 .expr.",
-"2348) (list (.the.2269 (core#quote list)) (list (.the.2269 (core#quote quote)) (",
-".the.2269 (core#quote quasiquote))) (.qq.2343 (+ .depth.2347 1) (car (cdr .expr.",
-"2348)))) (core#if (pair? .expr.2348) (list (.the.2269 (core#quote cons)) (.qq.23",
-"43 .depth.2347 (car .expr.2348)) (.qq.2343 .depth.2347 (cdr .expr.2348))) (core#",
-"if (vector? .expr.2348) (list (.the.2269 (core#quote list->vector)) (.qq.2343 .d",
-"epth.2347 (vector->list .expr.2348))) (list (.the.2269 (core#quote quote)) .expr",
-".2348)))))))) ((core#lambda (.x.2349) (.qq.2343 1 .x.2349)) (cadr .form.2338))))",
-")))) (core#begin (.define-transformer.2268 (core#quote let*) (core#lambda (.form",
-".2350 .env.2351) ((core#lambda (.bindings.2352 .body.2353) (core#if (null? .bind",
-"ings.2352) (cons (.the.2269 (core#quote let)) (cons (core#quote ()) .body.2353))",
-" (cons (.the.2269 (core#quote let)) (cons (cons (cons (car (car .bindings.2352))",
-" (cdr (car .bindings.2352))) (core#quote ())) (cons (cons (.the.2269 (core#quote",
-" let*)) (cons (cdr .bindings.2352) .body.2353)) (core#quote ())))))) (car (cdr .",
-"form.2350)) (cdr (cdr .form.2350))))) (core#begin (.define-transformer.2268 (cor",
-"e#quote letrec) (core#lambda (.form.2354 .env.2355) (cons (.the.2269 (core#quote",
-" letrec*)) (cdr .form.2354)))) (core#begin (.define-transformer.2268 (core#quote",
-" letrec*) (core#lambda (.form.2356 .env.2357) ((core#lambda (.bindings.2358 .bod",
-"y.2359) ((core#lambda (.variables.2360 .initials.2361) (cons (.the.2269 (core#qu",
-"ote let)) (cons .variables.2360 (append .initials.2361 (append .body.2359 (core#",
-"quote ())))))) (map (core#lambda (.v.2362) (cons .v.2362 (cons (core#quote #unde",
-"fined) (core#quote ())))) (map car .bindings.2358)) (map (core#lambda (.v.2363) ",
-"(cons (.the.2269 (core#quote set!)) (append .v.2363 (core#quote ())))) .bindings",
-".2358))) (car (cdr .form.2356)) (cdr (cdr .form.2356))))) (core#begin (.define-t",
-"ransformer.2268 (core#quote let-values) (core#lambda (.form.2364 .env.2365) (con",
-"s (.the.2269 (core#quote let*-values)) (append (cdr .form.2364) (core#quote ()))",
-"))) (core#begin (.define-transformer.2268 (core#quote let*-values) (core#lambda ",
-"(.form.2366 .env.2367) ((core#lambda (.formal.2368 .body.2369) (core#if (null? .",
-"formal.2368) (cons (.the.2269 (core#quote let)) (cons (core#quote ()) (append .b",
-"ody.2369 (core#quote ())))) (cons (.the.2269 (core#quote call-with-values)) (con",
-"s (cons .the-lambda.2278 (cons (core#quote ()) (append (cdr (car .formal.2368)) ",
-"(core#quote ())))) (cons (cons (.the.2269 (core#quote lambda)) (cons (append (ca",
-"r (car .formal.2368)) (core#quote ())) (cons (cons (.the.2269 (core#quote let*-v",
-"alues)) (cons (append (cdr .formal.2368) (core#quote ())) (append .body.2369 (co",
-"re#quote ())))) (core#quote ())))) (core#quote ())))))) (car (cdr .form.2366)) (",
-"cdr (cdr .form.2366))))) (core#begin (.define-transformer.2268 (core#quote defin",
-"e-values) (core#lambda (.form.2370 .env.2371) ((core#lambda (.formal.2372 .body.",
-"2373) ((core#lambda (.arguments.2374) (cons .the-begin.2279 (append ((core#lambd",
-"a () (core#begin (core#define .loop.2375 (core#lambda (.formal.2376) (core#if (p",
-"air? .formal.2376) (cons (cons .the-define.2277 (cons (car .formal.2376) (cons (",
-"core#quote #undefined) (core#quote ())))) (append (.loop.2375 (cdr .formal.2376)",
-") (core#quote ()))) (core#if (identifier? .formal.2376) (cons (cons .the-define.",
-"2277 (cons .formal.2376 (cons (core#quote #undefined) (core#quote ())))) (core#q",
-"uote ())) (core#quote ()))))) (.loop.2375 .formal.2372)))) (cons (cons (.the.226",
-"9 (core#quote call-with-values)) (cons (cons .the-lambda.2278 (cons (core#quote ",
-"()) (append .body.2373 (core#quote ())))) (cons (cons .the-lambda.2278 (cons .ar",
-"guments.2374 (append ((core#lambda () (core#begin (core#define .loop.2377 (core#",
-"lambda (.formal.2378 .args.2379) (core#if (pair? .formal.2378) (cons (cons .the-",
-"set!.2281 (cons (car .formal.2378) (cons (cons (.the.2269 (core#quote car)) (con",
-"s .args.2379 (core#quote ()))) (core#quote ())))) (append (.loop.2377 (cdr .form",
-"al.2378) (cons (.the.2269 (core#quote cdr)) (cons .args.2379 (core#quote ())))) ",
-"(core#quote ()))) (core#if (identifier? .formal.2378) (cons (cons .the-set!.2281",
-" (cons .formal.2378 (cons .args.2379 (core#quote ())))) (core#quote ())) (core#q",
-"uote ()))))) (.loop.2377 .formal.2372 .arguments.2374)))) (core#quote ())))) (co",
-"re#quote ())))) (core#quote ()))))) (make-identifier (core#quote arguments) .env",
-".2371))) (car (cdr .form.2370)) (cdr (cdr .form.2370))))) (core#begin (.define-t",
-"ransformer.2268 (core#quote do) (core#lambda (.form.2380 .env.2381) ((core#lambd",
-"a (.bindings.2382 .test.2383 .cleanup.2384 .body.2385) ((core#lambda (.loop.2386",
-") (cons (.the.2269 (core#quote let)) (cons .loop.2386 (cons (map (core#lambda (.",
-"x.2387) (cons (car .x.2387) (cons (cadr .x.2387) (core#quote ())))) .bindings.23",
-"82) (cons (cons .the-if.2282 (cons .test.2383 (cons (cons .the-begin.2279 .clean",
-"up.2384) (cons (cons .the-begin.2279 (append .body.2385 (cons (cons .loop.2386 (",
-"map (core#lambda (.x.2388) (core#if (null? (cdr (cdr .x.2388))) (car .x.2388) (c",
-"ar (cdr (cdr .x.2388))))) .bindings.2382)) (core#quote ())))) (core#quote ()))))",
-") (core#quote ())))))) (make-identifier (core#quote loop) .env.2381))) (car (cdr",
-" .form.2380)) (car (car (cdr (cdr .form.2380)))) (cdr (car (cdr (cdr .form.2380)",
-"))) (cdr (cdr (cdr .form.2380)))))) (core#begin (.define-transformer.2268 (core#",
-"quote when) (core#lambda (.form.2389 .env.2390) ((core#lambda (.test.2391 .body.",
-"2392) (cons .the-if.2282 (cons .test.2391 (cons (cons .the-begin.2279 (append .b",
-"ody.2392 (core#quote ()))) (cons (core#quote #undefined) (core#quote ())))))) (c",
-"ar (cdr .form.2389)) (cdr (cdr .form.2389))))) (core#begin (.define-transformer.",
-"2268 (core#quote unless) (core#lambda (.form.2393 .env.2394) ((core#lambda (.tes",
-"t.2395 .body.2396) (cons .the-if.2282 (cons .test.2395 (cons (core#quote #undefi",
-"ned) (cons (cons .the-begin.2279 (append .body.2396 (core#quote ()))) (core#quot",
-"e ())))))) (car (cdr .form.2393)) (cdr (cdr .form.2393))))) (core#begin (.define",
-"-transformer.2268 (core#quote case) (core#lambda (.form.2397 .env.2398) ((core#l",
-"ambda (.key.2399 .clauses.2400) ((core#lambda (.the-key.2401) (cons (.the.2269 (",
-"core#quote let)) (cons (cons (cons .the-key.2401 (cons .key.2399 (core#quote ())",
-")) (core#quote ())) (cons ((core#lambda () (core#begin (core#define .loop.2402 (",
-"core#lambda (.clauses.2403) (core#if (null? .clauses.2403) #undefined ((core#lam",
-"bda (.clause.2404) (cons .the-if.2282 (cons (core#if (core#if (identifier? (car ",
-".clause.2404)) (identifier=? (.the.2269 (core#quote else)) (make-identifier (car",
-" .clause.2404) .env.2398)) #f) #t (cons (.the.2269 (core#quote or)) (append (map",
-" (core#lambda (.x.2405) (cons (.the.2269 (core#quote eqv?)) (cons .the-key.2401 ",
-"(cons (cons .the-quote.2280 (cons .x.2405 (core#quote ()))) (core#quote ()))))) ",
-"(car .clause.2404)) (core#quote ())))) (cons (core#if (core#if (identifier? (cad",
-"r .clause.2404)) (identifier=? (.the.2269 (core#quote =>)) (make-identifier (cad",
-"r .clause.2404) .env.2398)) #f) (cons (car (cdr (cdr .clause.2404))) (cons .the-",
-"key.2401 (core#quote ()))) (cons .the-begin.2279 (append (cdr .clause.2404) (cor",
-"e#quote ())))) (cons (.loop.2402 (cdr .clauses.2403)) (core#quote ())))))) (car ",
-".clauses.2403))))) (.loop.2402 .clauses.2400)))) (core#quote ()))))) (make-ident",
-"ifier (core#quote key) .env.2398))) (car (cdr .form.2397)) (cdr (cdr .form.2397)",
-")))) (core#begin (.define-transformer.2268 (core#quote parameterize) (core#lambd",
-"a (.form.2406 .env.2407) ((core#lambda (.formal.2408 .body.2409) (cons (.the.226",
-"9 (core#quote with-dynamic-environment)) (cons (cons (.the.2269 (core#quote list",
-")) (append (map (core#lambda (.x.2410) (cons (.the.2269 (core#quote cons)) (cons",
-" (car .x.2410) (cons (cadr .x.2410) (core#quote ()))))) .formal.2408) (core#quot",
-"e ()))) (cons (cons .the-lambda.2278 (cons (core#quote ()) (append .body.2409 (c",
-"ore#quote ())))) (core#quote ()))))) (car (cdr .form.2406)) (cdr (cdr .form.2406",
-"))))) (core#begin (.define-transformer.2268 (core#quote syntax-quote) (core#lamb",
-"da (.form.2411 .env.2412) ((core#lambda (.renames.2413) ((core#lambda (.rename.2",
-"414 .walk.2415) (core#begin (core#set! .rename.2414 (core#lambda (.var.2416) ((c",
-"ore#lambda (.x.2417) (core#if .x.2417 (cadr .x.2417) (core#begin (core#set! .ren",
-"ames.2413 (cons (cons .var.2416 (cons (make-identifier .var.2416 .env.2412) (con",
-"s (cons (.the.2269 (core#quote make-identifier)) (cons (cons (core#quote quote) ",
-"(cons .var.2416 (core#quote ()))) (cons (cons (core#quote quote) (cons .env.2412",
-" (core#quote ()))) (core#quote ())))) (core#quote ())))) .renames.2413)) (.renam",
-"e.2414 .var.2416)))) (assq .var.2416 .renames.2413)))) (core#begin (core#set! .w",
-"alk.2415 (core#lambda (.f.2418 .form.2419) (core#if (identifier? .form.2419) (.f",
-".2418 .form.2419) (core#if (pair? .form.2419) (cons (.the.2269 (core#quote cons)",
-") (cons (cons (core#quote walk) (cons (core#quote f) (cons (cons (core#quote car",
-") (cons (core#quote form) (core#quote ()))) (core#quote ())))) (cons (cons (core",
-"#quote walk) (cons (core#quote f) (cons (cons (core#quote cdr) (cons (core#quote",
-" form) (core#quote ()))) (core#quote ())))) (core#quote ())))) (core#if (vector?",
-" .form.2419) (cons (.the.2269 (core#quote list->vector)) (cons (cons (core#quote",
-" walk) (cons (core#quote f) (cons (cons (core#quote vector->list) (cons (core#qu",
-"ote form) (core#quote ()))) (core#quote ())))) (core#quote ()))) (cons (.the.226",
-"9 (core#quote quote)) (cons .form.2419 (core#quote ())))))))) ((core#lambda (.fo",
-"rm.2420) (cons (.the.2269 (core#quote let)) (cons (map cdr .renames.2413) (cons ",
-".form.2420 (core#quote ()))))) (.walk.2415 .rename.2414 (cadr .form.2411)))))) #",
-"undefined #undefined)) (core#quote ())))) (core#begin (.define-transformer.2268 ",
-"(core#quote syntax-quasiquote) (core#lambda (.form.2421 .env.2422) ((core#lambda",
-" (.renames.2423) ((core#lambda (.rename.2424) (core#begin (core#set! .rename.242",
-"4 (core#lambda (.var.2429) ((core#lambda (.x.2430) (core#if .x.2430 (cadr .x.243",
-"0) (core#begin (core#set! .renames.2423 (cons (cons .var.2429 (cons (make-identi",
-"fier .var.2429 .env.2422) (cons (cons (.the.2269 (core#quote make-identifier)) (",
-"cons (cons (core#quote quote) (cons .var.2429 (core#quote ()))) (cons (cons (cor",
-"e#quote quote) (cons .env.2422 (core#quote ()))) (core#quote ())))) (core#quote ",
-"())))) .renames.2423)) (.rename.2424 .var.2429)))) (assq .var.2429 .renames.2423",
-")))) (core#begin (core#define .syntax-quasiquote?.2425 (core#lambda (.form.2431)",
-" (core#if (pair? .form.2431) (core#if (identifier? (car .form.2431)) (identifier",
-"=? (.the.2269 (core#quote syntax-quasiquote)) (make-identifier (car .form.2431) ",
-".env.2422)) #f) #f))) (core#begin (core#define .syntax-unquote?.2426 (core#lambd",
-"a (.form.2432) (core#if (pair? .form.2432) (core#if (identifier? (car .form.2432",
-")) (identifier=? (.the.2269 (core#quote syntax-unquote)) (make-identifier (car .",
-"form.2432) .env.2422)) #f) #f))) (core#begin (core#define .syntax-unquote-splici",
-"ng?.2427 (core#lambda (.form.2433) (core#if (pair? .form.2433) (core#if (pair? (",
-"car .form.2433)) (core#if (identifier? (caar .form.2433)) (identifier=? (.the.22",
-"69 (core#quote syntax-unquote-splicing)) (make-identifier (caar .form.2433) .env",
-".2422)) #f) #f) #f))) (core#begin (core#define .qq.2428 (core#lambda (.depth.243",
-"4 .expr.2435) (core#if (.syntax-unquote?.2426 .expr.2435) (core#if (= .depth.243",
-"4 1) (car (cdr .expr.2435)) (list (.the.2269 (core#quote list)) (list (.the.2269",
-" (core#quote quote)) (.the.2269 (core#quote syntax-unquote))) (.qq.2428 (- .dept",
-"h.2434 1) (car (cdr .expr.2435))))) (core#if (.syntax-unquote-splicing?.2427 .ex",
-"pr.2435) (core#if (= .depth.2434 1) (list (.the.2269 (core#quote append)) (car (",
-"cdr (car .expr.2435))) (.qq.2428 .depth.2434 (cdr .expr.2435))) (list (.the.2269",
-" (core#quote cons)) (list (.the.2269 (core#quote list)) (list (.the.2269 (core#q",
-"uote quote)) (.the.2269 (core#quote syntax-unquote-splicing))) (.qq.2428 (- .dep",
-"th.2434 1) (car (cdr (car .expr.2435))))) (.qq.2428 .depth.2434 (cdr .expr.2435)",
-"))) (core#if (.syntax-quasiquote?.2425 .expr.2435) (list (.the.2269 (core#quote ",
-"list)) (list (.the.2269 (core#quote quote)) (.the.2269 (core#quote quasiquote)))",
-" (.qq.2428 (+ .depth.2434 1) (car (cdr .expr.2435)))) (core#if (pair? .expr.2435",
-") (list (.the.2269 (core#quote cons)) (.qq.2428 .depth.2434 (car .expr.2435)) (.",
-"qq.2428 .depth.2434 (cdr .expr.2435))) (core#if (vector? .expr.2435) (list (.the",
-".2269 (core#quote list->vector)) (.qq.2428 .depth.2434 (vector->list .expr.2435)",
-")) (core#if (identifier? .expr.2435) (.rename.2424 .expr.2435) (list (.the.2269 ",
-"(core#quote quote)) .expr.2435))))))))) ((core#lambda (.body.2436) (cons (.the.2",
-"269 (core#quote let)) (cons (map cdr .renames.2423) (cons .body.2436 (core#quote",
-" ()))))) (.qq.2428 1 (cadr .form.2421))))))))) #undefined)) (core#quote ())))) (",
-"core#begin (.define-transformer.2268 (core#quote define-syntax) (core#lambda (.f",
-"orm.2437 .env.2438) ((core#lambda (.formal.2439 .body.2440) (core#if (pair? .for",
-"mal.2439) (cons (.the.2269 (core#quote define-syntax)) (cons (car .formal.2439) ",
-"(cons (cons .the-lambda.2278 (cons (cdr .formal.2439) (append .body.2440 (core#q",
-"uote ())))) (core#quote ())))) (cons .the-define-macro.2283 (cons .formal.2439 (",
-"cons (cons (.the.2269 (core#quote transformer)) (cons (cons .the-begin.2279 (app",
-"end .body.2440 (core#quote ()))) (core#quote ()))) (core#quote ())))))) (car (cd",
-"r .form.2437)) (cdr (cdr .form.2437))))) (core#begin (.define-transformer.2268 (",
-"core#quote letrec-syntax) (core#lambda (.form.2441 .env.2442) ((core#lambda (.fo",
-"rmal.2443 .body.2444) (cons (core#quote let) (cons (core#quote ()) (append (map ",
-"(core#lambda (.x.2445) (cons (.the.2269 (core#quote define-syntax)) (cons (car .",
-"x.2445) (cons (cadr .x.2445) (core#quote ()))))) .formal.2443) (append .body.244",
-"4 (core#quote ())))))) (car (cdr .form.2441)) (cdr (cdr .form.2441))))) (.define",
-"-transformer.2268 (core#quote let-syntax) (core#lambda (.form.2446 .env.2447) (c",
-"ons (.the.2269 (core#quote letrec-syntax)) (append (cdr .form.2446) (core#quote ",
-"()))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",
+"bda (.var1.2260) ((core#lambda (.it.2261) (core#if .it.2261 .it.2261 ((core#lamb",
+"da (.it.2262) (core#if .it.2262 .it.2262 #f)) ((core#lambda (.var2.2263) (core#b",
+"egin (.ephemeron1.2255 .var1.2260 .var2.2263) (core#begin (.ephemeron2.2256 .var",
+"2.2263 .var1.2260) .var2.2263))) (make-identifier .var1.2260 .env.2254))))) (.ep",
+"hemeron1.2255 .var1.2260)))) (core#begin (core#set! .unwrap.2258 (core#lambda (.",
+"var2.2264) ((core#lambda (.it.2265) (core#if .it.2265 .it.2265 ((core#lambda (.i",
+"t.2266) (core#if .it.2266 .it.2266 #f)) .var2.2264))) (.ephemeron2.2256 .var2.22",
+"64)))) (core#begin (core#set! .walk.2259 (core#lambda (.f.2267 .form.2268) (core",
+"#if (identifier? .form.2268) (.f.2267 .form.2268) (core#if (pair? .form.2268) (c",
+"ons (.walk.2259 .f.2267 (car .form.2268)) (.walk.2259 .f.2267 (cdr .form.2268)))",
+" .form.2268)))) ((core#lambda (.form.2269) (.walk.2259 .unwrap.2258 (apply .f.22",
+"52 (.walk.2259 .wrap.2257 .form.2269)))) (cdr .form.2253)))))) #undefined #undef",
+"ined #undefined)) (make-ephemeron-table) (make-ephemeron-table))))) ((core#lambd",
+"a () (core#begin (core#define .define-transformer.2270 (core#lambda (.name.2290 ",
+".transformer.2291) (add-macro! .name.2290 .transformer.2291))) (core#begin (core",
+"#define .the.2271 (core#lambda (.var.2292) (make-identifier .var.2292 default-en",
+"vironment))) (core#begin (core#define .the-core-define.2272 (.the.2271 (core#quo",
+"te core#define))) (core#begin (core#define .the-core-lambda.2273 (.the.2271 (cor",
+"e#quote core#lambda))) (core#begin (core#define .the-core-begin.2274 (.the.2271 ",
+"(core#quote core#begin))) (core#begin (core#define .the-core-quote.2275 (.the.22",
+"71 (core#quote core#quote))) (core#begin (core#define .the-core-set!.2276 (.the.",
+"2271 (core#quote core#set!))) (core#begin (core#define .the-core-if.2277 (.the.2",
+"271 (core#quote core#if))) (core#begin (core#define .the-core-define-macro.2278 ",
+"(.the.2271 (core#quote core#define-macro))) (core#begin (core#define .the-define",
+".2279 (.the.2271 (core#quote define))) (core#begin (core#define .the-lambda.2280",
+" (.the.2271 (core#quote lambda))) (core#begin (core#define .the-begin.2281 (.the",
+".2271 (core#quote begin))) (core#begin (core#define .the-quote.2282 (.the.2271 (",
+"core#quote quote))) (core#begin (core#define .the-set!.2283 (.the.2271 (core#quo",
+"te set!))) (core#begin (core#define .the-if.2284 (.the.2271 (core#quote if))) (c",
+"ore#begin (core#define .the-define-macro.2285 (.the.2271 (core#quote define-macr",
+"o))) (core#begin (.define-transformer.2270 (core#quote quote) (core#lambda (.for",
+"m.2293 .env.2294) (core#if (= (length .form.2293) 2) (cons .the-core-quote.2275 ",
+"(cons (cadr .form.2293) (core#quote ()))) (error \"malformed quote\" .form.2293)))",
+") (core#begin (.define-transformer.2270 (core#quote if) (core#lambda (.form.2295",
+" .env.2296) ((core#lambda (.len.2297) (core#if (= .len.2297 3) (append .form.229",
+"5 (cons (core#quote #undefined) (core#quote ()))) (core#if (= .len.2297 4) (cons",
+" .the-core-if.2277 (cdr .form.2295)) (error \"malformed if\" .form.2295)))) (lengt",
+"h .form.2295)))) (core#begin (.define-transformer.2270 (core#quote begin) (core#",
+"lambda (.form.2298 .env.2299) ((core#lambda (.len.2300) (core#if (= .len.2300 1)",
+" #undefined (core#if (= .len.2300 2) (cadr .form.2298) (core#if (= .len.2300 3) ",
+"(cons .the-core-begin.2274 (cdr .form.2298)) (cons .the-core-begin.2274 (cons (c",
+"adr .form.2298) (cons (cons .the-begin.2281 (cddr .form.2298)) (core#quote ())))",
+"))))) (length .form.2298)))) (core#begin (.define-transformer.2270 (core#quote s",
+"et!) (core#lambda (.form.2301 .env.2302) (core#if (core#if (= (length .form.2301",
+") 3) (identifier? (cadr .form.2301)) #f) (cons .the-core-set!.2276 (cdr .form.23",
+"01)) (error \"malformed set!\" .form.2301)))) (core#begin (core#define .check-form",
+"al.2286 (core#lambda (.formal.2303) ((core#lambda (.it.2304) (core#if .it.2304 .",
+"it.2304 ((core#lambda (.it.2305) (core#if .it.2305 .it.2305 ((core#lambda (.it.2",
+"306) (core#if .it.2306 .it.2306 #f)) (core#if (pair? .formal.2303) (core#if (ide",
+"ntifier? (car .formal.2303)) (.check-formal.2286 (cdr .formal.2303)) #f) #f)))) ",
+"(identifier? .formal.2303)))) (null? .formal.2303)))) (core#begin (.define-trans",
+"former.2270 (core#quote lambda) (core#lambda (.form.2307 .env.2308) (core#if (= ",
+"(length .form.2307) 1) (error \"malformed lambda\" .form.2307) (core#if (.check-fo",
+"rmal.2286 (cadr .form.2307)) (cons .the-core-lambda.2273 (cons (cadr .form.2307)",
+" (cons (cons .the-begin.2281 (cddr .form.2307)) (core#quote ())))) (error \"malfo",
+"rmed lambda\" .form.2307))))) (core#begin (.define-transformer.2270 (core#quote d",
+"efine) (core#lambda (.form.2309 .env.2310) ((core#lambda (.len.2311) (core#if (=",
+" .len.2311 1) (error \"malformed define\" .form.2309) ((core#lambda (.formal.2312)",
+" (core#if (identifier? .formal.2312) (core#if (= .len.2311 3) (cons .the-core-de",
+"fine.2272 (cdr .form.2309)) (error \"malformed define\" .form.2309)) (core#if (pai",
+"r? .formal.2312) (cons .the-define.2279 (cons (car .formal.2312) (cons (cons .th",
+"e-lambda.2280 (cons (cdr .formal.2312) (cddr .form.2309))) (core#quote ())))) (e",
+"rror \"define: binding to non-varaible object\" .form.2309)))) (cadr .form.2309)))",
+") (length .form.2309)))) (core#begin (.define-transformer.2270 (core#quote defin",
+"e-macro) (core#lambda (.form.2313 .env.2314) (core#if (= (length .form.2313) 3) ",
+"(core#if (identifier? (cadr .form.2313)) (cons .the-core-define-macro.2278 (cdr ",
+".form.2313)) (error \"define-macro: binding to non-variable object\" .form.2313)) ",
+"(error \"malformed define-macro\" .form.2313)))) (core#begin (.define-transformer.",
+"2270 (core#quote syntax-error) (core#lambda (.form.2315 ._.2316) (apply error (c",
+"dr .form.2315)))) (core#begin #undefined (core#begin (.define-transformer.2270 (",
+"core#quote else) (core#lambda ._.2317 (error \"invalid use of auxiliary syntax\" (",
+"core#quote else)))) (core#begin (.define-transformer.2270 (core#quote =>) (core#",
+"lambda ._.2318 (error \"invalid use of auxiliary syntax\" (core#quote =>)))) (core",
+"#begin (.define-transformer.2270 (core#quote unquote) (core#lambda ._.2319 (erro",
+"r \"invalid use of auxiliary syntax\" (core#quote unquote)))) (core#begin (.define",
+"-transformer.2270 (core#quote unquote-splicing) (core#lambda ._.2320 (error \"inv",
+"alid use of auxiliary syntax\" (core#quote unquote-splicing)))) (core#begin (.def",
+"ine-transformer.2270 (core#quote syntax-unquote) (core#lambda ._.2321 (error \"in",
+"valid use of auxiliary syntax\" (core#quote syntax-unquote)))) (core#begin (.defi",
+"ne-transformer.2270 (core#quote syntax-unquote-splicing) (core#lambda ._.2322 (e",
+"rror \"invalid use of auxiliary syntax\" (core#quote syntax-unquote-splicing)))) (",
+"core#begin (.define-transformer.2270 (core#quote let) (core#lambda (.form.2323 .",
+"env.2324) (core#if (identifier? (cadr .form.2323)) ((core#lambda (.name.2325 .fo",
+"rmal.2326 .body.2327) (cons (cons .the-lambda.2280 (cons (core#quote ()) (cons (",
+"cons .the-define.2279 (cons (cons .name.2325 (map car .formal.2326)) .body.2327)",
+") (cons (cons .name.2325 (map cadr .formal.2326)) (core#quote ()))))) (core#quot",
+"e ()))) (car (cdr .form.2323)) (car (cdr (cdr .form.2323))) (cdr (cdr (cdr .form",
+".2323)))) ((core#lambda (.formal.2328 .body.2329) (cons (cons .the-lambda.2280 (",
+"cons (map car .formal.2328) .body.2329)) (map cadr .formal.2328))) (car (cdr .fo",
+"rm.2323)) (cdr (cdr .form.2323)))))) (core#begin (.define-transformer.2270 (core",
+"#quote and) (core#lambda (.form.2330 .env.2331) (core#if (null? (cdr .form.2330)",
+") #t (core#if (null? (cddr .form.2330)) (cadr .form.2330) (cons .the-if.2284 (co",
+"ns (cadr .form.2330) (cons (cons (.the.2271 (core#quote and)) (cddr .form.2330))",
+" (cons (core#quote #f) (core#quote ()))))))))) (core#begin (.define-transformer.",
+"2270 (core#quote or) (core#lambda (.form.2332 .env.2333) (core#if (null? (cdr .f",
+"orm.2332)) #f ((core#lambda (.tmp.2334) (cons (.the.2271 (core#quote let)) (cons",
+" (cons (cons .tmp.2334 (cons (cadr .form.2332) (core#quote ()))) (core#quote ())",
+") (cons (cons .the-if.2284 (cons .tmp.2334 (cons .tmp.2334 (cons (cons (.the.227",
+"1 (core#quote or)) (cddr .form.2332)) (core#quote ()))))) (core#quote ()))))) (m",
+"ake-identifier (core#quote it) .env.2333))))) (core#begin (.define-transformer.2",
+"270 (core#quote cond) (core#lambda (.form.2335 .env.2336) ((core#lambda (.clause",
+"s.2337) (core#if (null? .clauses.2337) #undefined ((core#lambda (.clause.2338) (",
+"core#if (core#if (identifier? (car .clause.2338)) (identifier=? (.the.2271 (core",
+"#quote else)) (make-identifier (car .clause.2338) .env.2336)) #f) (cons .the-beg",
+"in.2281 (cdr .clause.2338)) (core#if (null? (cdr .clause.2338)) (cons (.the.2271",
+" (core#quote or)) (cons (car .clause.2338) (cons (cons (.the.2271 (core#quote co",
+"nd)) (cdr .clauses.2337)) (core#quote ())))) (core#if (core#if (identifier? (cad",
+"r .clause.2338)) (identifier=? (.the.2271 (core#quote =>)) (make-identifier (cad",
+"r .clause.2338) .env.2336)) #f) ((core#lambda (.tmp.2339) (cons (.the.2271 (core",
+"#quote let)) (cons (cons (cons .tmp.2339 (cons (car .clause.2338) (core#quote ()",
+"))) (core#quote ())) (cons (cons .the-if.2284 (cons .tmp.2339 (cons (cons (cadr ",
+"(cdr .clause.2338)) (cons .tmp.2339 (core#quote ()))) (cons (cons (.the.2271 (co",
+"re#quote cond)) (cddr .form.2335)) (core#quote ()))))) (core#quote ()))))) (make",
+"-identifier (core#quote tmp) .env.2336)) (cons .the-if.2284 (cons (car .clause.2",
+"338) (cons (cons .the-begin.2281 (cdr .clause.2338)) (cons (cons (.the.2271 (cor",
+"e#quote cond)) (cdr .clauses.2337)) (core#quote ()))))))))) (car .clauses.2337))",
+")) (cdr .form.2335)))) (core#begin (.define-transformer.2270 (core#quote quasiqu",
+"ote) (core#lambda (.form.2340 .env.2341) (core#begin (core#define .quasiquote?.2",
+"342 (core#lambda (.form.2346) (core#if (pair? .form.2346) (core#if (identifier? ",
+"(car .form.2346)) (identifier=? (.the.2271 (core#quote quasiquote)) (make-identi",
+"fier (car .form.2346) .env.2341)) #f) #f))) (core#begin (core#define .unquote?.2",
+"343 (core#lambda (.form.2347) (core#if (pair? .form.2347) (core#if (identifier? ",
+"(car .form.2347)) (identifier=? (.the.2271 (core#quote unquote)) (make-identifie",
+"r (car .form.2347) .env.2341)) #f) #f))) (core#begin (core#define .unquote-splic",
+"ing?.2344 (core#lambda (.form.2348) (core#if (pair? .form.2348) (core#if (pair? ",
+"(car .form.2348)) (core#if (identifier? (caar .form.2348)) (identifier=? (.the.2",
+"271 (core#quote unquote-splicing)) (make-identifier (caar .form.2348) .env.2341)",
+") #f) #f) #f))) (core#begin (core#define .qq.2345 (core#lambda (.depth.2349 .exp",
+"r.2350) (core#if (.unquote?.2343 .expr.2350) (core#if (= .depth.2349 1) (cadr .e",
+"xpr.2350) (list (.the.2271 (core#quote list)) (list (.the.2271 (core#quote quote",
+")) (.the.2271 (core#quote unquote))) (.qq.2345 (- .depth.2349 1) (car (cdr .expr",
+".2350))))) (core#if (.unquote-splicing?.2344 .expr.2350) (core#if (= .depth.2349",
+" 1) (list (.the.2271 (core#quote append)) (car (cdr (car .expr.2350))) (.qq.2345",
+" .depth.2349 (cdr .expr.2350))) (list (.the.2271 (core#quote cons)) (list (.the.",
+"2271 (core#quote list)) (list (.the.2271 (core#quote quote)) (.the.2271 (core#qu",
+"ote unquote-splicing))) (.qq.2345 (- .depth.2349 1) (car (cdr (car .expr.2350)))",
+")) (.qq.2345 .depth.2349 (cdr .expr.2350)))) (core#if (.quasiquote?.2342 .expr.2",
+"350) (list (.the.2271 (core#quote list)) (list (.the.2271 (core#quote quote)) (.",
+"the.2271 (core#quote quasiquote))) (.qq.2345 (+ .depth.2349 1) (car (cdr .expr.2",
+"350)))) (core#if (pair? .expr.2350) (list (.the.2271 (core#quote cons)) (.qq.234",
+"5 .depth.2349 (car .expr.2350)) (.qq.2345 .depth.2349 (cdr .expr.2350))) (core#i",
+"f (vector? .expr.2350) (list (.the.2271 (core#quote list->vector)) (.qq.2345 .de",
+"pth.2349 (vector->list .expr.2350))) (list (.the.2271 (core#quote quote)) .expr.",
+"2350)))))))) ((core#lambda (.x.2351) (.qq.2345 1 .x.2351)) (cadr .form.2340)))))",
+"))) (core#begin (.define-transformer.2270 (core#quote let*) (core#lambda (.form.",
+"2352 .env.2353) ((core#lambda (.bindings.2354 .body.2355) (core#if (null? .bindi",
+"ngs.2354) (cons (.the.2271 (core#quote let)) (cons (core#quote ()) .body.2355)) ",
+"(cons (.the.2271 (core#quote let)) (cons (cons (cons (car (car .bindings.2354)) ",
+"(cdr (car .bindings.2354))) (core#quote ())) (cons (cons (.the.2271 (core#quote ",
+"let*)) (cons (cdr .bindings.2354) .body.2355)) (core#quote ())))))) (car (cdr .f",
+"orm.2352)) (cdr (cdr .form.2352))))) (core#begin (.define-transformer.2270 (core",
+"#quote letrec) (core#lambda (.form.2356 .env.2357) (cons (.the.2271 (core#quote ",
+"letrec*)) (cdr .form.2356)))) (core#begin (.define-transformer.2270 (core#quote ",
+"letrec*) (core#lambda (.form.2358 .env.2359) ((core#lambda (.bindings.2360 .body",
+".2361) ((core#lambda (.variables.2362 .initials.2363) (cons (.the.2271 (core#quo",
+"te let)) (cons .variables.2362 (append .initials.2363 (append .body.2361 (core#q",
+"uote ())))))) (map (core#lambda (.v.2364) (cons .v.2364 (cons (core#quote #undef",
+"ined) (core#quote ())))) (map car .bindings.2360)) (map (core#lambda (.v.2365) (",
+"cons (.the.2271 (core#quote set!)) (append .v.2365 (core#quote ())))) .bindings.",
+"2360))) (car (cdr .form.2358)) (cdr (cdr .form.2358))))) (core#begin (.define-tr",
+"ansformer.2270 (core#quote let-values) (core#lambda (.form.2366 .env.2367) (cons",
+" (.the.2271 (core#quote let*-values)) (append (cdr .form.2366) (core#quote ())))",
+")) (core#begin (.define-transformer.2270 (core#quote let*-values) (core#lambda (",
+".form.2368 .env.2369) ((core#lambda (.formal.2370 .body.2371) (core#if (null? .f",
+"ormal.2370) (cons (.the.2271 (core#quote let)) (cons (core#quote ()) (append .bo",
+"dy.2371 (core#quote ())))) (cons (.the.2271 (core#quote call-with-values)) (cons",
+" (cons .the-lambda.2280 (cons (core#quote ()) (append (cdr (car .formal.2370)) (",
+"core#quote ())))) (cons (cons (.the.2271 (core#quote lambda)) (cons (append (car",
+" (car .formal.2370)) (core#quote ())) (cons (cons (.the.2271 (core#quote let*-va",
+"lues)) (cons (append (cdr .formal.2370) (core#quote ())) (append .body.2371 (cor",
+"e#quote ())))) (core#quote ())))) (core#quote ())))))) (car (cdr .form.2368)) (c",
+"dr (cdr .form.2368))))) (core#begin (.define-transformer.2270 (core#quote define",
+"-values) (core#lambda (.form.2372 .env.2373) ((core#lambda (.formal.2374 .body.2",
+"375) ((core#lambda (.arguments.2376) (cons .the-begin.2281 (append ((core#lambda",
+" () (core#begin (core#define .loop.2377 (core#lambda (.formal.2378) (core#if (pa",
+"ir? .formal.2378) (cons (cons .the-define.2279 (cons (car .formal.2378) (cons (c",
+"ore#quote #undefined) (core#quote ())))) (append (.loop.2377 (cdr .formal.2378))",
+" (core#quote ()))) (core#if (identifier? .formal.2378) (cons (cons .the-define.2",
+"279 (cons .formal.2378 (cons (core#quote #undefined) (core#quote ())))) (core#qu",
+"ote ())) (core#quote ()))))) (.loop.2377 .formal.2374)))) (cons (cons (.the.2271",
+" (core#quote call-with-values)) (cons (cons .the-lambda.2280 (cons (core#quote (",
+")) (append .body.2375 (core#quote ())))) (cons (cons .the-lambda.2280 (cons .arg",
+"uments.2376 (append ((core#lambda () (core#begin (core#define .loop.2379 (core#l",
+"ambda (.formal.2380 .args.2381) (core#if (pair? .formal.2380) (cons (cons .the-s",
+"et!.2283 (cons (car .formal.2380) (cons (cons (.the.2271 (core#quote car)) (cons",
+" .args.2381 (core#quote ()))) (core#quote ())))) (append (.loop.2379 (cdr .forma",
+"l.2380) (cons (.the.2271 (core#quote cdr)) (cons .args.2381 (core#quote ())))) (",
+"core#quote ()))) (core#if (identifier? .formal.2380) (cons (cons .the-set!.2283 ",
+"(cons .formal.2380 (cons .args.2381 (core#quote ())))) (core#quote ())) (core#qu",
+"ote ()))))) (.loop.2379 .formal.2374 .arguments.2376)))) (core#quote ())))) (cor",
+"e#quote ())))) (core#quote ()))))) (make-identifier (core#quote arguments) .env.",
+"2373))) (car (cdr .form.2372)) (cdr (cdr .form.2372))))) (core#begin (.define-tr",
+"ansformer.2270 (core#quote do) (core#lambda (.form.2382 .env.2383) ((core#lambda",
+" (.bindings.2384 .test.2385 .cleanup.2386 .body.2387) ((core#lambda (.loop.2388)",
+" (cons (.the.2271 (core#quote let)) (cons .loop.2388 (cons (map (core#lambda (.x",
+".2389) (cons (car .x.2389) (cons (cadr .x.2389) (core#quote ())))) .bindings.238",
+"4) (cons (cons .the-if.2284 (cons .test.2385 (cons (cons .the-begin.2281 .cleanu",
+"p.2386) (cons (cons .the-begin.2281 (append .body.2387 (cons (cons .loop.2388 (m",
+"ap (core#lambda (.x.2390) (core#if (null? (cdr (cdr .x.2390))) (car .x.2390) (ca",
+"r (cdr (cdr .x.2390))))) .bindings.2384)) (core#quote ())))) (core#quote ())))))",
+" (core#quote ())))))) (make-identifier (core#quote loop) .env.2383))) (car (cdr ",
+".form.2382)) (car (car (cdr (cdr .form.2382)))) (cdr (car (cdr (cdr .form.2382))",
+")) (cdr (cdr (cdr .form.2382)))))) (core#begin (.define-transformer.2270 (core#q",
+"uote when) (core#lambda (.form.2391 .env.2392) ((core#lambda (.test.2393 .body.2",
+"394) (cons .the-if.2284 (cons .test.2393 (cons (cons .the-begin.2281 (append .bo",
+"dy.2394 (core#quote ()))) (cons (core#quote #undefined) (core#quote ())))))) (ca",
+"r (cdr .form.2391)) (cdr (cdr .form.2391))))) (core#begin (.define-transformer.2",
+"270 (core#quote unless) (core#lambda (.form.2395 .env.2396) ((core#lambda (.test",
+".2397 .body.2398) (cons .the-if.2284 (cons .test.2397 (cons (core#quote #undefin",
+"ed) (cons (cons .the-begin.2281 (append .body.2398 (core#quote ()))) (core#quote",
+" ())))))) (car (cdr .form.2395)) (cdr (cdr .form.2395))))) (core#begin (.define-",
+"transformer.2270 (core#quote case) (core#lambda (.form.2399 .env.2400) ((core#la",
+"mbda (.key.2401 .clauses.2402) ((core#lambda (.the-key.2403) (cons (.the.2271 (c",
+"ore#quote let)) (cons (cons (cons .the-key.2403 (cons .key.2401 (core#quote ()))",
+") (core#quote ())) (cons ((core#lambda () (core#begin (core#define .loop.2404 (c",
+"ore#lambda (.clauses.2405) (core#if (null? .clauses.2405) #undefined ((core#lamb",
+"da (.clause.2406) (cons .the-if.2284 (cons (core#if (core#if (identifier? (car .",
+"clause.2406)) (identifier=? (.the.2271 (core#quote else)) (make-identifier (car ",
+".clause.2406) .env.2400)) #f) #t (cons (.the.2271 (core#quote or)) (append (map ",
+"(core#lambda (.x.2407) (cons (.the.2271 (core#quote eqv?)) (cons .the-key.2403 (",
+"cons (cons .the-quote.2282 (cons .x.2407 (core#quote ()))) (core#quote ()))))) (",
+"car .clause.2406)) (core#quote ())))) (cons (core#if (core#if (identifier? (cadr",
+" .clause.2406)) (identifier=? (.the.2271 (core#quote =>)) (make-identifier (cadr",
+" .clause.2406) .env.2400)) #f) (cons (car (cdr (cdr .clause.2406))) (cons .the-k",
+"ey.2403 (core#quote ()))) (cons .the-begin.2281 (append (cdr .clause.2406) (core",
+"#quote ())))) (cons (.loop.2404 (cdr .clauses.2405)) (core#quote ())))))) (car .",
+"clauses.2405))))) (.loop.2404 .clauses.2402)))) (core#quote ()))))) (make-identi",
+"fier (core#quote key) .env.2400))) (car (cdr .form.2399)) (cdr (cdr .form.2399))",
+"))) (core#begin (.define-transformer.2270 (core#quote parameterize) (core#lambda",
+" (.form.2408 .env.2409) ((core#lambda (.formal.2410 .body.2411) (cons (.the.2271",
+" (core#quote with-dynamic-environment)) (cons (cons (.the.2271 (core#quote list)",
+") (append (map (core#lambda (.x.2412) (cons (.the.2271 (core#quote cons)) (cons ",
+"(car .x.2412) (cons (cadr .x.2412) (core#quote ()))))) .formal.2410) (core#quote",
+" ()))) (cons (cons .the-lambda.2280 (cons (core#quote ()) (append .body.2411 (co",
+"re#quote ())))) (core#quote ()))))) (car (cdr .form.2408)) (cdr (cdr .form.2408)",
+")))) (core#begin (.define-transformer.2270 (core#quote syntax-quote) (core#lambd",
+"a (.form.2413 .env.2414) ((core#lambda (.renames.2415) ((core#lambda (.rename.24",
+"16 .walk.2417) (core#begin (core#set! .rename.2416 (core#lambda (.var.2418) ((co",
+"re#lambda (.x.2419) (core#if .x.2419 (cadr .x.2419) (core#begin (core#set! .rena",
+"mes.2415 (cons (cons .var.2418 (cons (make-identifier .var.2418 .env.2414) (cons",
+" (cons (.the.2271 (core#quote make-identifier)) (cons (cons (core#quote quote) (",
+"cons .var.2418 (core#quote ()))) (cons (cons (core#quote quote) (cons .env.2414 ",
+"(core#quote ()))) (core#quote ())))) (core#quote ())))) .renames.2415)) (.rename",
+".2416 .var.2418)))) (assq .var.2418 .renames.2415)))) (core#begin (core#set! .wa",
+"lk.2417 (core#lambda (.f.2420 .form.2421) (core#if (identifier? .form.2421) (.f.",
+"2420 .form.2421) (core#if (pair? .form.2421) (cons (.the.2271 (core#quote cons))",
+" (cons (cons (core#quote walk) (cons (core#quote f) (cons (cons (core#quote car)",
+" (cons (core#quote form) (core#quote ()))) (core#quote ())))) (cons (cons (core#",
+"quote walk) (cons (core#quote f) (cons (cons (core#quote cdr) (cons (core#quote ",
+"form) (core#quote ()))) (core#quote ())))) (core#quote ())))) (core#if (vector? ",
+".form.2421) (cons (.the.2271 (core#quote list->vector)) (cons (cons (core#quote ",
+"walk) (cons (core#quote f) (cons (cons (core#quote vector->list) (cons (core#quo",
+"te form) (core#quote ()))) (core#quote ())))) (core#quote ()))) (cons (.the.2271",
+" (core#quote quote)) (cons .form.2421 (core#quote ())))))))) ((core#lambda (.for",
+"m.2422) (cons (.the.2271 (core#quote let)) (cons (map cdr .renames.2415) (cons .",
+"form.2422 (core#quote ()))))) (.walk.2417 .rename.2416 (cadr .form.2413)))))) #u",
+"ndefined #undefined)) (core#quote ())))) (core#begin (.define-transformer.2270 (",
+"core#quote syntax-quasiquote) (core#lambda (.form.2423 .env.2424) ((core#lambda ",
+"(.renames.2425) ((core#lambda (.rename.2426) (core#begin (core#set! .rename.2426",
+" (core#lambda (.var.2431) ((core#lambda (.x.2432) (core#if .x.2432 (cadr .x.2432",
+") (core#begin (core#set! .renames.2425 (cons (cons .var.2431 (cons (make-identif",
+"ier .var.2431 .env.2424) (cons (cons (.the.2271 (core#quote make-identifier)) (c",
+"ons (cons (core#quote quote) (cons .var.2431 (core#quote ()))) (cons (cons (core",
+"#quote quote) (cons .env.2424 (core#quote ()))) (core#quote ())))) (core#quote (",
+"))))) .renames.2425)) (.rename.2426 .var.2431)))) (assq .var.2431 .renames.2425)",
+"))) (core#begin (core#define .syntax-quasiquote?.2427 (core#lambda (.form.2433) ",
+"(core#if (pair? .form.2433) (core#if (identifier? (car .form.2433)) (identifier=",
+"? (.the.2271 (core#quote syntax-quasiquote)) (make-identifier (car .form.2433) .",
+"env.2424)) #f) #f))) (core#begin (core#define .syntax-unquote?.2428 (core#lambda",
+" (.form.2434) (core#if (pair? .form.2434) (core#if (identifier? (car .form.2434)",
+") (identifier=? (.the.2271 (core#quote syntax-unquote)) (make-identifier (car .f",
+"orm.2434) .env.2424)) #f) #f))) (core#begin (core#define .syntax-unquote-splicin",
+"g?.2429 (core#lambda (.form.2435) (core#if (pair? .form.2435) (core#if (pair? (c",
+"ar .form.2435)) (core#if (identifier? (caar .form.2435)) (identifier=? (.the.227",
+"1 (core#quote syntax-unquote-splicing)) (make-identifier (caar .form.2435) .env.",
+"2424)) #f) #f) #f))) (core#begin (core#define .qq.2430 (core#lambda (.depth.2436",
+" .expr.2437) (core#if (.syntax-unquote?.2428 .expr.2437) (core#if (= .depth.2436",
+" 1) (car (cdr .expr.2437)) (list (.the.2271 (core#quote list)) (list (.the.2271 ",
+"(core#quote quote)) (.the.2271 (core#quote syntax-unquote))) (.qq.2430 (- .depth",
+".2436 1) (car (cdr .expr.2437))))) (core#if (.syntax-unquote-splicing?.2429 .exp",
+"r.2437) (core#if (= .depth.2436 1) (list (.the.2271 (core#quote append)) (car (c",
+"dr (car .expr.2437))) (.qq.2430 .depth.2436 (cdr .expr.2437))) (list (.the.2271 ",
+"(core#quote cons)) (list (.the.2271 (core#quote list)) (list (.the.2271 (core#qu",
+"ote quote)) (.the.2271 (core#quote syntax-unquote-splicing))) (.qq.2430 (- .dept",
+"h.2436 1) (car (cdr (car .expr.2437))))) (.qq.2430 .depth.2436 (cdr .expr.2437))",
+")) (core#if (.syntax-quasiquote?.2427 .expr.2437) (list (.the.2271 (core#quote l",
+"ist)) (list (.the.2271 (core#quote quote)) (.the.2271 (core#quote quasiquote))) ",
+"(.qq.2430 (+ .depth.2436 1) (car (cdr .expr.2437)))) (core#if (pair? .expr.2437)",
+" (list (.the.2271 (core#quote cons)) (.qq.2430 .depth.2436 (car .expr.2437)) (.q",
+"q.2430 .depth.2436 (cdr .expr.2437))) (core#if (vector? .expr.2437) (list (.the.",
+"2271 (core#quote list->vector)) (.qq.2430 .depth.2436 (vector->list .expr.2437))",
+") (core#if (identifier? .expr.2437) (.rename.2426 .expr.2437) (list (.the.2271 (",
+"core#quote quote)) .expr.2437))))))))) ((core#lambda (.body.2438) (cons (.the.22",
+"71 (core#quote let)) (cons (map cdr .renames.2425) (cons .body.2438 (core#quote ",
+"()))))) (.qq.2430 1 (cadr .form.2423))))))))) #undefined)) (core#quote ())))) (c",
+"ore#begin (.define-transformer.2270 (core#quote define-syntax) (core#lambda (.fo",
+"rm.2439 .env.2440) ((core#lambda (.formal.2441 .body.2442) (core#if (pair? .form",
+"al.2441) (cons (.the.2271 (core#quote define-syntax)) (cons (car .formal.2441) (",
+"cons (cons .the-lambda.2280 (cons (cdr .formal.2441) (append .body.2442 (core#qu",
+"ote ())))) (core#quote ())))) (cons .the-define-macro.2285 (cons .formal.2441 (c",
+"ons (cons (.the.2271 (core#quote transformer)) (cons (cons .the-begin.2281 (appe",
+"nd .body.2442 (core#quote ()))) (core#quote ()))) (core#quote ())))))) (car (cdr",
+" .form.2439)) (cdr (cdr .form.2439))))) (core#begin (.define-transformer.2270 (c",
+"ore#quote letrec-syntax) (core#lambda (.form.2443 .env.2444) ((core#lambda (.for",
+"mal.2445 .body.2446) (cons (core#quote let) (cons (core#quote ()) (append (map (",
+"core#lambda (.x.2447) (cons (.the.2271 (core#quote define-syntax)) (cons (car .x",
+".2447) (cons (cadr .x.2447) (core#quote ()))))) .formal.2445) (append .body.2446",
+" (core#quote ())))))) (car (cdr .form.2443)) (cdr (cdr .form.2443))))) (.define-",
+"transformer.2270 (core#quote let-syntax) (core#lambda (.form.2448 .env.2449) (co",
+"ns (.the.2271 (core#quote letrec-syntax)) (append (cdr .form.2448) (core#quote (",
+")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))",
 
 };
 
 #if PIC_USE_LIBRARY
 static const char boot_library_rom[][80] = {
-"(core#begin (core#define mangle (core#lambda (.name.2448) (core#begin (core#if (",
-"null? .name.2448) (error \"library name should be a list of at least one symbols\"",
-" .name.2448) #undefined) (core#begin (core#define .->string.2449 (core#lambda (.",
-"n.2451) (core#if (symbol? .n.2451) ((core#lambda (.str.2452) (core#begin (string",
-"-for-each (core#lambda (.c.2453) (core#if ((core#lambda (.it.2454) (core#if .it.",
-"2454 .it.2454 ((core#lambda (.it.2455) (core#if .it.2455 .it.2455 #f)) (char=? .",
-"c.2453 #\\:)))) (char=? .c.2453 #\\.)) (error \"elements of library name may not co",
-"ntain '.' or ':'\" .n.2451) #undefined)) .str.2452) .str.2452)) (symbol->string .",
-"n.2451)) (core#if (core#if (number? .n.2451) (core#if (exact? .n.2451) (<= 0 .n.",
-"2451) #f) #f) (number->string .n.2451) (error \"symbol or non-negative integer is",
-" required\" .n.2451))))) (core#begin (core#define .join.2450 (core#lambda (.strs.",
-"2456 .delim.2457) ((core#lambda () (core#begin (core#define .loop.2458 (core#lam",
-"bda (.res.2459 .strs.2460) (core#if (null? .strs.2460) .res.2459 (.loop.2458 (st",
-"ring-append .res.2459 .delim.2457 (car .strs.2460)) (cdr .strs.2460))))) (.loop.",
-"2458 (car .strs.2456) (cdr .strs.2456))))))) (core#if (symbol? .name.2448) .name",
-".2448 (string->symbol (.join.2450 (map .->string.2449 .name.2448) \".\")))))))) (c",
+"(core#begin (core#define mangle (core#lambda (.name.2450) (core#begin (core#if (",
+"null? .name.2450) (error \"library name should be a list of at least one symbols\"",
+" .name.2450) #undefined) (core#begin (core#define .->string.2451 (core#lambda (.",
+"n.2453) (core#if (symbol? .n.2453) ((core#lambda (.str.2454) (core#begin (string",
+"-for-each (core#lambda (.c.2455) (core#if ((core#lambda (.it.2456) (core#if .it.",
+"2456 .it.2456 ((core#lambda (.it.2457) (core#if .it.2457 .it.2457 #f)) (char=? .",
+"c.2455 #\\:)))) (char=? .c.2455 #\\.)) (error \"elements of library name may not co",
+"ntain '.' or ':'\" .n.2453) #undefined)) .str.2454) .str.2454)) (symbol->string .",
+"n.2453)) (core#if (core#if (number? .n.2453) (core#if (exact? .n.2453) (<= 0 .n.",
+"2453) #f) #f) (number->string .n.2453) (error \"symbol or non-negative integer is",
+" required\" .n.2453))))) (core#begin (core#define .join.2452 (core#lambda (.strs.",
+"2458 .delim.2459) ((core#lambda () (core#begin (core#define .loop.2460 (core#lam",
+"bda (.res.2461 .strs.2462) (core#if (null? .strs.2462) .res.2461 (.loop.2460 (st",
+"ring-append .res.2461 .delim.2459 (car .strs.2462)) (cdr .strs.2462))))) (.loop.",
+"2460 (car .strs.2458) (cdr .strs.2458))))))) (core#if (symbol? .name.2450) .name",
+".2450 (string->symbol (.join.2452 (map .->string.2451 .name.2450) \".\")))))))) (c",
 "ore#begin (core#define current-library (make-parameter (core#quote (picrin user)",
 ") mangle)) (core#begin (core#define *libraries* (make-dictionary)) (core#begin (",
-"core#define find-library (core#lambda (.name.2461) (dictionary-has? *libraries* ",
-"(mangle .name.2461)))) (core#begin (core#define make-library (core#lambda (.name",
-".2462) ((core#lambda (.name.2463) ((core#lambda (.env.2464 .exports.2465) (core#",
+"core#define find-library (core#lambda (.name.2463) (dictionary-has? *libraries* ",
+"(mangle .name.2463)))) (core#begin (core#define make-library (core#lambda (.name",
+".2464) ((core#lambda (.name.2465) ((core#lambda (.env.2466 .exports.2467) (core#",
 "begin (set-identifier! (core#quote define-library) (core#quote define-library) .",
-"env.2464) (core#begin (set-identifier! (core#quote import) (core#quote import) .",
-"env.2464) (core#begin (set-identifier! (core#quote export) (core#quote export) .",
-"env.2464) (core#begin (set-identifier! (core#quote cond-expand) (core#quote cond",
-"-expand) .env.2464) (dictionary-set! *libraries* .name.2463 (cons .env.2464 .exp",
-"orts.2465))))))) (make-environment (string->symbol (string-append (symbol->strin",
-"g .name.2463) \":\"))) (make-dictionary))) (mangle .name.2462)))) (core#begin (cor",
-"e#define library-environment (core#lambda (.name.2466) (car (dictionary-ref *lib",
-"raries* (mangle .name.2466))))) (core#begin (core#define library-exports (core#l",
-"ambda (.name.2467) (cdr (dictionary-ref *libraries* (mangle .name.2467))))) (cor",
-"e#begin (core#define library-import (core#lambda (.name.2468 .sym.2469 .alias.24",
-"70) ((core#lambda (.uid.2471) ((core#lambda (.env.2472) (set-identifier! .alias.",
-"2470 .uid.2471 .env.2472)) (library-environment (current-library)))) (dictionary",
-"-ref (library-exports .name.2468) .sym.2469)))) (core#begin (core#define library",
-"-export (core#lambda (.sym.2473 .alias.2474) ((core#lambda (.env.2475 .exports.2",
-"476) (dictionary-set! .exports.2476 .alias.2474 (find-identifier .sym.2473 .env.",
-"2475))) (library-environment (current-library)) (library-exports (current-librar",
-"y))))) (core#begin ((core#lambda (.define-transformer.2477) (core#begin (.define",
-"-transformer.2477 (core#quote define-library) (core#lambda (.form.2478 ._.2479) ",
-"((core#lambda (.name.2480 .body.2481) (core#begin ((core#lambda (.it.2482) (core",
-"#if .it.2482 .it.2482 ((core#lambda (.it.2483) (core#if .it.2483 .it.2483 #f)) (",
-"make-library .name.2480)))) (find-library .name.2480)) (with-dynamic-environment",
-" (list (cons current-library .name.2480)) (core#lambda () (for-each (core#lambda",
-" (.expr.2484) (eval .expr.2484 .name.2480)) .body.2481))))) (cadr .form.2478) (c",
-"ddr .form.2478)))) (core#begin (.define-transformer.2477 (core#quote cond-expand",
-") (core#lambda (.form.2485 ._.2486) ((core#lambda (.test.2487) (core#begin (core",
-"#set! .test.2487 (core#lambda (.form.2488) ((core#lambda (.it.2489) (core#if .it",
-".2489 .it.2489 ((core#lambda (.it.2490) (core#if .it.2490 .it.2490 ((core#lambda",
-" (.it.2491) (core#if .it.2491 .it.2491 #f)) (core#if (pair? .form.2488) ((core#l",
-"ambda (.key.2492) (core#if ((core#lambda (.it.2493) (core#if .it.2493 .it.2493 #",
-"f)) (eqv? .key.2492 (core#quote library))) (find-library (cadr .form.2488)) (cor",
-"e#if ((core#lambda (.it.2494) (core#if .it.2494 .it.2494 #f)) (eqv? .key.2492 (c",
-"ore#quote not))) (not (.test.2487 (cadr .form.2488))) (core#if ((core#lambda (.i",
-"t.2495) (core#if .it.2495 .it.2495 #f)) (eqv? .key.2492 (core#quote and))) ((cor",
-"e#lambda () (core#begin (core#define .loop.2496 (core#lambda (.form.2497) ((core",
-"#lambda (.it.2498) (core#if .it.2498 .it.2498 ((core#lambda (.it.2499) (core#if ",
-".it.2499 .it.2499 #f)) (core#if (.test.2487 (car .form.2497)) (.loop.2496 (cdr .",
-"form.2497)) #f)))) (null? .form.2497)))) (.loop.2496 (cdr .form.2488))))) (core#",
-"if ((core#lambda (.it.2500) (core#if .it.2500 .it.2500 #f)) (eqv? .key.2492 (cor",
-"e#quote or))) ((core#lambda () (core#begin (core#define .loop.2501 (core#lambda ",
-"(.form.2502) (core#if (pair? .form.2502) ((core#lambda (.it.2503) (core#if .it.2",
-"503 .it.2503 ((core#lambda (.it.2504) (core#if .it.2504 .it.2504 #f)) (.loop.250",
-"1 (cdr .form.2502))))) (.test.2487 (car .form.2502))) #f))) (.loop.2501 (cdr .fo",
-"rm.2488))))) (core#if #t #f #undefined)))))) (car .form.2488)) #f)))) (core#if (",
-"symbol? .form.2488) (memq .form.2488 (features)) #f)))) (eq? .form.2488 (core#qu",
-"ote else))))) ((core#lambda () (core#begin (core#define .loop.2505 (core#lambda ",
-"(.clauses.2506) (core#if (null? .clauses.2506) #undefined (core#if (.test.2487 (",
-"caar .clauses.2506)) (cons (make-identifier (core#quote begin) default-environme",
-"nt) (append (cdar .clauses.2506) (core#quote ()))) (.loop.2505 (cdr .clauses.250",
-"6)))))) (.loop.2505 (cdr .form.2485))))))) #undefined))) (core#begin (.define-tr",
-"ansformer.2477 (core#quote import) (core#lambda (.form.2507 ._.2508) ((core#lamb",
-"da (.caddr.2509 .prefix.2510 .getlib.2511) ((core#lambda (.extract.2512 .collect",
-".2513) (core#begin (core#set! .extract.2512 (core#lambda (.spec.2514) ((core#lam",
-"bda (.key.2515) (core#if ((core#lambda (.it.2516) (core#if .it.2516 .it.2516 ((c",
-"ore#lambda (.it.2517) (core#if .it.2517 .it.2517 ((core#lambda (.it.2518) (core#",
-"if .it.2518 .it.2518 ((core#lambda (.it.2519) (core#if .it.2519 .it.2519 #f)) (e",
-"qv? .key.2515 (core#quote except))))) (eqv? .key.2515 (core#quote prefix))))) (e",
-"qv? .key.2515 (core#quote rename))))) (eqv? .key.2515 (core#quote only))) (.extr",
-"act.2512 (cadr .spec.2514)) (core#if #t (.getlib.2511 .spec.2514) #undefined))) ",
-"(car .spec.2514)))) (core#begin (core#set! .collect.2513 (core#lambda (.spec.252",
-"0) ((core#lambda (.key.2521) (core#if ((core#lambda (.it.2522) (core#if .it.2522",
-" .it.2522 #f)) (eqv? .key.2521 (core#quote only))) ((core#lambda (.alist.2523) (",
-"map (core#lambda (.var.2524) (assq .var.2524 .alist.2523)) (cddr .spec.2520))) (",
-".collect.2513 (cadr .spec.2520))) (core#if ((core#lambda (.it.2525) (core#if .it",
-".2525 .it.2525 #f)) (eqv? .key.2521 (core#quote rename))) ((core#lambda (.alist.",
-"2526 .renames.2527) (map (core#lambda (.s.2528) ((core#lambda (.it.2529) (core#i",
-"f .it.2529 .it.2529 ((core#lambda (.it.2530) (core#if .it.2530 .it.2530 #f)) .s.",
-"2528))) (assq (car .s.2528) .renames.2527))) .alist.2526)) (.collect.2513 (cadr ",
-".spec.2520)) (map (core#lambda (.x.2531) (cons (car .x.2531) (cadr .x.2531))) (c",
-"ddr .spec.2520))) (core#if ((core#lambda (.it.2532) (core#if .it.2532 .it.2532 #",
-"f)) (eqv? .key.2521 (core#quote prefix))) ((core#lambda (.alist.2533) (map (core",
-"#lambda (.s.2534) (cons (.prefix.2510 (.caddr.2509 .spec.2520) (car .s.2534)) (c",
-"dr .s.2534))) .alist.2533)) (.collect.2513 (cadr .spec.2520))) (core#if ((core#l",
-"ambda (.it.2535) (core#if .it.2535 .it.2535 #f)) (eqv? .key.2521 (core#quote exc",
-"ept))) ((core#lambda (.alist.2536) ((core#lambda () (core#begin (core#define .lo",
-"op.2537 (core#lambda (.alist.2538) (core#if (null? .alist.2538) (core#quote ()) ",
-"(core#if (memq (caar .alist.2538) (cddr .spec.2520)) (.loop.2537 (cdr .alist.253",
-"8)) (cons (car .alist.2538) (.loop.2537 (cdr .alist.2538))))))) (.loop.2537 .ali",
-"st.2536))))) (.collect.2513 (cadr .spec.2520))) (core#if #t (dictionary-map (cor",
-"e#lambda (.x.2539) (cons .x.2539 .x.2539)) (library-exports (.getlib.2511 .spec.",
-"2520))) #undefined)))))) (car .spec.2520)))) ((core#lambda (.import.2540) (core#",
-"begin (core#set! .import.2540 (core#lambda (.spec.2541) ((core#lambda (.lib.2542",
-" .alist.2543) (for-each (core#lambda (.slot.2544) (library-import .lib.2542 (cdr",
-" .slot.2544) (car .slot.2544))) .alist.2543)) (.extract.2512 .spec.2541) (.colle",
-"ct.2513 .spec.2541)))) (for-each .import.2540 (cdr .form.2507)))) #undefined))))",
-" #undefined #undefined)) (core#lambda (.x.2545) (car (cdr (cdr .x.2545)))) (core",
-"#lambda (.prefix.2546 .symbol.2547) (string->symbol (string-append (symbol->stri",
-"ng .prefix.2546) (symbol->string .symbol.2547)))) (core#lambda (.name.2548) (cor",
-"e#if (find-library .name.2548) .name.2548 (error \"library not found\" .name.2548)",
-"))))) (.define-transformer.2477 (core#quote export) (core#lambda (.form.2549 ._.",
-"2550) ((core#lambda (.collect.2551 .export.2552) (core#begin (core#set! .collect",
-".2551 (core#lambda (.spec.2553) (core#if (symbol? .spec.2553) (cons .spec.2553 .",
-"spec.2553) (core#if (core#if (list? .spec.2553) (core#if (= (length .spec.2553) ",
-"3) (eq? (car .spec.2553) (core#quote rename)) #f) #f) (cons (list-ref .spec.2553",
-" 1) (list-ref .spec.2553 2)) (error \"malformed export\"))))) (core#begin (core#se",
-"t! .export.2552 (core#lambda (.spec.2554) ((core#lambda (.slot.2555) (library-ex",
-"port (car .slot.2555) (cdr .slot.2555))) (.collect.2551 .spec.2554)))) (for-each",
-" .export.2552 (cdr .form.2549))))) #undefined #undefined))))))) (core#lambda (.n",
-"ame.2556 .macro.2557) (add-macro! .name.2556 .macro.2557))) ((core#lambda () (co",
+"env.2466) (core#begin (set-identifier! (core#quote import) (core#quote import) .",
+"env.2466) (core#begin (set-identifier! (core#quote export) (core#quote export) .",
+"env.2466) (core#begin (set-identifier! (core#quote cond-expand) (core#quote cond",
+"-expand) .env.2466) (dictionary-set! *libraries* .name.2465 (cons .env.2466 .exp",
+"orts.2467))))))) (make-environment (string->symbol (string-append (symbol->strin",
+"g .name.2465) \":\"))) (make-dictionary))) (mangle .name.2464)))) (core#begin (cor",
+"e#define library-environment (core#lambda (.name.2468) (car (dictionary-ref *lib",
+"raries* (mangle .name.2468))))) (core#begin (core#define library-exports (core#l",
+"ambda (.name.2469) (cdr (dictionary-ref *libraries* (mangle .name.2469))))) (cor",
+"e#begin (core#define library-import (core#lambda (.name.2470 .sym.2471 .alias.24",
+"72) ((core#lambda (.uid.2473) ((core#lambda (.env.2474) (set-identifier! .alias.",
+"2472 .uid.2473 .env.2474)) (library-environment (current-library)))) (dictionary",
+"-ref (library-exports .name.2470) .sym.2471)))) (core#begin (core#define library",
+"-export (core#lambda (.sym.2475 .alias.2476) ((core#lambda (.env.2477 .exports.2",
+"478) (dictionary-set! .exports.2478 .alias.2476 (find-identifier .sym.2475 .env.",
+"2477))) (library-environment (current-library)) (library-exports (current-librar",
+"y))))) (core#begin ((core#lambda (.define-transformer.2479) (core#begin (.define",
+"-transformer.2479 (core#quote define-library) (core#lambda (.form.2480 ._.2481) ",
+"((core#lambda (.name.2482 .body.2483) (core#begin ((core#lambda (.it.2484) (core",
+"#if .it.2484 .it.2484 ((core#lambda (.it.2485) (core#if .it.2485 .it.2485 #f)) (",
+"make-library .name.2482)))) (find-library .name.2482)) (with-dynamic-environment",
+" (list (cons current-library .name.2482)) (core#lambda () (for-each (core#lambda",
+" (.expr.2486) (eval .expr.2486 .name.2482)) .body.2483))))) (cadr .form.2480) (c",
+"ddr .form.2480)))) (core#begin (.define-transformer.2479 (core#quote cond-expand",
+") (core#lambda (.form.2487 ._.2488) ((core#lambda (.test.2489) (core#begin (core",
+"#set! .test.2489 (core#lambda (.form.2490) ((core#lambda (.it.2491) (core#if .it",
+".2491 .it.2491 ((core#lambda (.it.2492) (core#if .it.2492 .it.2492 ((core#lambda",
+" (.it.2493) (core#if .it.2493 .it.2493 #f)) (core#if (pair? .form.2490) ((core#l",
+"ambda (.key.2494) (core#if ((core#lambda (.it.2495) (core#if .it.2495 .it.2495 #",
+"f)) (eqv? .key.2494 (core#quote library))) (find-library (cadr .form.2490)) (cor",
+"e#if ((core#lambda (.it.2496) (core#if .it.2496 .it.2496 #f)) (eqv? .key.2494 (c",
+"ore#quote not))) (not (.test.2489 (cadr .form.2490))) (core#if ((core#lambda (.i",
+"t.2497) (core#if .it.2497 .it.2497 #f)) (eqv? .key.2494 (core#quote and))) ((cor",
+"e#lambda () (core#begin (core#define .loop.2498 (core#lambda (.form.2499) ((core",
+"#lambda (.it.2500) (core#if .it.2500 .it.2500 ((core#lambda (.it.2501) (core#if ",
+".it.2501 .it.2501 #f)) (core#if (.test.2489 (car .form.2499)) (.loop.2498 (cdr .",
+"form.2499)) #f)))) (null? .form.2499)))) (.loop.2498 (cdr .form.2490))))) (core#",
+"if ((core#lambda (.it.2502) (core#if .it.2502 .it.2502 #f)) (eqv? .key.2494 (cor",
+"e#quote or))) ((core#lambda () (core#begin (core#define .loop.2503 (core#lambda ",
+"(.form.2504) (core#if (pair? .form.2504) ((core#lambda (.it.2505) (core#if .it.2",
+"505 .it.2505 ((core#lambda (.it.2506) (core#if .it.2506 .it.2506 #f)) (.loop.250",
+"3 (cdr .form.2504))))) (.test.2489 (car .form.2504))) #f))) (.loop.2503 (cdr .fo",
+"rm.2490))))) (core#if #t #f #undefined)))))) (car .form.2490)) #f)))) (core#if (",
+"symbol? .form.2490) (memq .form.2490 (features)) #f)))) (eq? .form.2490 (core#qu",
+"ote else))))) ((core#lambda () (core#begin (core#define .loop.2507 (core#lambda ",
+"(.clauses.2508) (core#if (null? .clauses.2508) #undefined (core#if (.test.2489 (",
+"caar .clauses.2508)) (cons (make-identifier (core#quote begin) default-environme",
+"nt) (append (cdar .clauses.2508) (core#quote ()))) (.loop.2507 (cdr .clauses.250",
+"8)))))) (.loop.2507 (cdr .form.2487))))))) #undefined))) (core#begin (.define-tr",
+"ansformer.2479 (core#quote import) (core#lambda (.form.2509 ._.2510) ((core#lamb",
+"da (.caddr.2511 .prefix.2512 .getlib.2513) ((core#lambda (.extract.2514 .collect",
+".2515) (core#begin (core#set! .extract.2514 (core#lambda (.spec.2516) ((core#lam",
+"bda (.key.2517) (core#if ((core#lambda (.it.2518) (core#if .it.2518 .it.2518 ((c",
+"ore#lambda (.it.2519) (core#if .it.2519 .it.2519 ((core#lambda (.it.2520) (core#",
+"if .it.2520 .it.2520 ((core#lambda (.it.2521) (core#if .it.2521 .it.2521 #f)) (e",
+"qv? .key.2517 (core#quote except))))) (eqv? .key.2517 (core#quote prefix))))) (e",
+"qv? .key.2517 (core#quote rename))))) (eqv? .key.2517 (core#quote only))) (.extr",
+"act.2514 (cadr .spec.2516)) (core#if #t (.getlib.2513 .spec.2516) #undefined))) ",
+"(car .spec.2516)))) (core#begin (core#set! .collect.2515 (core#lambda (.spec.252",
+"2) ((core#lambda (.key.2523) (core#if ((core#lambda (.it.2524) (core#if .it.2524",
+" .it.2524 #f)) (eqv? .key.2523 (core#quote only))) ((core#lambda (.alist.2525) (",
+"map (core#lambda (.var.2526) (assq .var.2526 .alist.2525)) (cddr .spec.2522))) (",
+".collect.2515 (cadr .spec.2522))) (core#if ((core#lambda (.it.2527) (core#if .it",
+".2527 .it.2527 #f)) (eqv? .key.2523 (core#quote rename))) ((core#lambda (.alist.",
+"2528 .renames.2529) (map (core#lambda (.s.2530) ((core#lambda (.it.2531) (core#i",
+"f .it.2531 .it.2531 ((core#lambda (.it.2532) (core#if .it.2532 .it.2532 #f)) .s.",
+"2530))) (assq (car .s.2530) .renames.2529))) .alist.2528)) (.collect.2515 (cadr ",
+".spec.2522)) (map (core#lambda (.x.2533) (cons (car .x.2533) (cadr .x.2533))) (c",
+"ddr .spec.2522))) (core#if ((core#lambda (.it.2534) (core#if .it.2534 .it.2534 #",
+"f)) (eqv? .key.2523 (core#quote prefix))) ((core#lambda (.alist.2535) (map (core",
+"#lambda (.s.2536) (cons (.prefix.2512 (.caddr.2511 .spec.2522) (car .s.2536)) (c",
+"dr .s.2536))) .alist.2535)) (.collect.2515 (cadr .spec.2522))) (core#if ((core#l",
+"ambda (.it.2537) (core#if .it.2537 .it.2537 #f)) (eqv? .key.2523 (core#quote exc",
+"ept))) ((core#lambda (.alist.2538) ((core#lambda () (core#begin (core#define .lo",
+"op.2539 (core#lambda (.alist.2540) (core#if (null? .alist.2540) (core#quote ()) ",
+"(core#if (memq (caar .alist.2540) (cddr .spec.2522)) (.loop.2539 (cdr .alist.254",
+"0)) (cons (car .alist.2540) (.loop.2539 (cdr .alist.2540))))))) (.loop.2539 .ali",
+"st.2538))))) (.collect.2515 (cadr .spec.2522))) (core#if #t (dictionary-map (cor",
+"e#lambda (.x.2541) (cons .x.2541 .x.2541)) (library-exports (.getlib.2513 .spec.",
+"2522))) #undefined)))))) (car .spec.2522)))) ((core#lambda (.import.2542) (core#",
+"begin (core#set! .import.2542 (core#lambda (.spec.2543) ((core#lambda (.lib.2544",
+" .alist.2545) (for-each (core#lambda (.slot.2546) (library-import .lib.2544 (cdr",
+" .slot.2546) (car .slot.2546))) .alist.2545)) (.extract.2514 .spec.2543) (.colle",
+"ct.2515 .spec.2543)))) (for-each .import.2542 (cdr .form.2509)))) #undefined))))",
+" #undefined #undefined)) (core#lambda (.x.2547) (car (cdr (cdr .x.2547)))) (core",
+"#lambda (.prefix.2548 .symbol.2549) (string->symbol (string-append (symbol->stri",
+"ng .prefix.2548) (symbol->string .symbol.2549)))) (core#lambda (.name.2550) (cor",
+"e#if (find-library .name.2550) .name.2550 (error \"library not found\" .name.2550)",
+"))))) (.define-transformer.2479 (core#quote export) (core#lambda (.form.2551 ._.",
+"2552) ((core#lambda (.collect.2553 .export.2554) (core#begin (core#set! .collect",
+".2553 (core#lambda (.spec.2555) (core#if (symbol? .spec.2555) (cons .spec.2555 .",
+"spec.2555) (core#if (core#if (list? .spec.2555) (core#if (= (length .spec.2555) ",
+"3) (eq? (car .spec.2555) (core#quote rename)) #f) #f) (cons (list-ref .spec.2555",
+" 1) (list-ref .spec.2555 2)) (error \"malformed export\"))))) (core#begin (core#se",
+"t! .export.2554 (core#lambda (.spec.2556) ((core#lambda (.slot.2557) (library-ex",
+"port (car .slot.2557) (cdr .slot.2557))) (.collect.2553 .spec.2556)))) (for-each",
+" .export.2554 (cdr .form.2551))))) #undefined #undefined))))))) (core#lambda (.n",
+"ame.2558 .macro.2559) (add-macro! .name.2558 .macro.2559))) ((core#lambda () (co",
 "re#begin (make-library (core#quote (picrin base))) (core#begin (set-car! (dictio",
 "nary-ref *libraries* (mangle (core#quote (picrin base)))) default-environment) (",
-"core#begin ((core#lambda (.export-keywords.2558) (core#begin (.export-keywords.2",
-"558 (core#quote (define lambda quote set! if begin define-macro let let* letrec ",
+"core#begin ((core#lambda (.export-keywords.2560) (core#begin (.export-keywords.2",
+"560 (core#quote (define lambda quote set! if begin define-macro let let* letrec ",
 "letrec* let-values let*-values define-values quasiquote unquote unquote-splicing",
 " and or cond case else => do when unless parameterize define-syntax syntax-quote",
 " syntax-unquote syntax-quasiquote syntax-unquote-splicing let-syntax letrec-synt",
-"ax syntax-error))) (core#begin (.export-keywords.2558 (core#quote (features eq? ",
+"ax syntax-error))) (core#begin (.export-keywords.2560 (core#quote (features eq? ",
 "eqv? equal? not boolean? boolean=? pair? cons car cdr null? set-car! set-cdr! ca",
 "ar cadr cdar cddr list? make-list list length append reverse list-tail list-ref ",
 "list-set! list-copy map for-each memq memv member assq assv assoc current-input-",
@@ -475,14 +475,14 @@ static const char boot_library_rom[][80] = {
 "list->dictionary dictionary->plist plist->dictionary make-record record? record-",
 "type record-datum default-environment make-environment find-identifier set-ident",
 "ifier! eval compile add-macro! make-ephemeron-table write write-simple write-sha",
-"red display))) (.export-keywords.2558 (core#quote (find-library make-library cur",
-"rent-library)))))) (core#lambda (.keywords.2559) ((core#lambda (.env.2560 .expor",
-"ts.2561) (for-each (core#lambda (.keyword.2562) (dictionary-set! .exports.2561 .",
-"keyword.2562 .keyword.2562)) .keywords.2559)) (library-environment (core#quote (",
+"red display))) (.export-keywords.2560 (core#quote (find-library make-library cur",
+"rent-library)))))) (core#lambda (.keywords.2561) ((core#lambda (.env.2562 .expor",
+"ts.2563) (for-each (core#lambda (.keyword.2564) (dictionary-set! .exports.2563 .",
+"keyword.2564 .keyword.2564)) .keywords.2561)) (library-environment (core#quote (",
 "picrin base))) (library-exports (core#quote (picrin base)))))) (core#begin (core",
-"#set! eval ((core#lambda (.e.2563) (core#lambda (.expr.2564 . .lib.2565) ((core#",
-"lambda (.lib.2566) (.e.2563 .expr.2564 (library-environment .lib.2566))) (core#i",
-"f (null? .lib.2565) (current-library) (car .lib.2565))))) eval)) (core#begin (ma",
+"#set! eval ((core#lambda (.e.2565) (core#lambda (.expr.2566 . .lib.2567) ((core#",
+"lambda (.lib.2568) (.e.2565 .expr.2566 (library-environment .lib.2568))) (core#i",
+"f (null? .lib.2567) (current-library) (car .lib.2567))))) eval)) (core#begin (ma",
 "ke-library (core#quote (picrin user))) (current-library (core#quote (picrin user",
 "))))))))))))))))))))",
 
diff --git a/lib/weak.c b/lib/weak.c
index e5082305..b130f6f2 100644
--- a/lib/weak.c
+++ b/lib/weak.c
@@ -83,7 +83,7 @@ weak_call(pic_state *pic)
     if (! pic_weak_has(pic, weak, key)) {
       return pic_false_value(pic);
     }
-    return pic_cons(pic, key, pic_weak_ref(pic, weak, key));
+    return pic_weak_ref(pic, weak, key);
   } else {
     if (pic_false_p(pic, val)) {
       if (pic_weak_has(pic, weak, key)) {
diff --git a/piclib/boot.scm b/piclib/boot.scm
index d4e91a40..a4cfda19 100644
--- a/piclib/boot.scm
+++ b/piclib/boot.scm
@@ -6,26 +6,20 @@
             (ephemeron2 (make-ephemeron-table)))
         (letrec
             ((wrap (lambda (var1)
-                     (let ((var2 (ephemeron1 var1)))
-                       (if var2
-                           (cdr var2)
-                           (let ((var2 (make-identifier var1 env)))
-                             (ephemeron1 var1 var2)
-                             (ephemeron2 var2 var1)
-                             var2)))))
+                     (or (ephemeron1 var1)
+                         (let ((var2 (make-identifier var1 env)))
+                           (ephemeron1 var1 var2)
+                           (ephemeron2 var2 var1)
+                           var2))))
              (unwrap (lambda (var2)
-                       (let ((var1 (ephemeron2 var2)))
-                         (if var1
-                             (cdr var1)
-                             var2))))
+                       (or (ephemeron2 var2)
+                           var2)))
              (walk (lambda (f form)
                      (cond
                       ((identifier? form)
                        (f form))
                       ((pair? form)
                        (cons (walk f (car form)) (walk f (cdr form))))
-                      ((vector? form)
-                       (list->vector (walk f (vector->list form))))
                       (else
                        form)))))
           (let ((form (cdr form)))