From 8964bbdab54d8cead2d4c80dd7c38beb33458b80 Mon Sep 17 00:00:00 2001 From: dermagen Date: Fri, 14 Jun 2024 01:08:36 -0400 Subject: [PATCH] new core form: const --- src/t.scm | 29 ++--- t.c | 325 +++++++++++++++++++++++++++--------------------------- 2 files changed, 179 insertions(+), 175 deletions(-) diff --git a/src/t.scm b/src/t.scm index fec3cd7..06d64c2 100644 --- a/src/t.scm +++ b/src/t.scm @@ -167,6 +167,7 @@ ;--------------------------------------------------------------------------------------------- ; -> (quote ) +; -> (const ) ; immutable variant of ref ; -> (ref ) ; -> (set! ) ; -> (set& ) @@ -349,21 +350,23 @@ (define (xform-set! tail env) (if (and (list2? tail) (id? (car tail))) (let ([den (xenv-lookup env (car tail) 'set!)] [xexp (xform #f (cadr tail) env)]) - (cond [(location-special? den) (location-set-val! den xexp) '(begin)] - [else (let ([val (location-val den)]) - (if (eq? (car val) 'ref) - (list 'set! (cadr val) xexp) - (x-error "set! to non-identifier form")))])) + (if (location-special? den) ;; was (location-set-val! den xexp) '(begin) + (x-error "set! to macro or integrable identifier" (cons 'set! tail)) + (let ([val (location-val den)]) + (if (eq? (car val) 'ref) + (list 'set! (cadr val) xexp) + (x-error "set! is not allowed" (cons 'set! tail)))))) (x-error "improper set! form" (cons 'set! tail)))) (define (xform-set& tail env) (if (list1? tail) (let ([den (xenv-lookup env (car tail) 'set!)]) - (cond [(location-special? den) (x-error "set& of a non-variable")] - [else (let ([val (location-val den)]) - (if (eq? (car val) 'ref) - (list 'set& (cadr val)) - (x-error "set& of a non-variable")))])) + (if (location-special? den) + (x-error "set& of macro or integrable identifier" (cons 'set& tail)) + (let ([val (location-val den)]) + (if (eq? (car val) 'ref) + (list 'set& (cadr val)) + (x-error "set& is not allowed" (cons 'set! tail)))))) (x-error "improper set& form" (cons 'set& tail)))) (define (xform-if tail env) @@ -815,7 +818,7 @@ (record-case x [quote (obj) '()] - [ref (id) + [(ref const) (id) (if (set-member? id b) '() (list id))] [set! (id exp) (set-union @@ -857,7 +860,7 @@ (record-case x [quote (obj) '()] - [ref (id) + [(ref const) (id) '()] [set! (id x) (set-union @@ -903,7 +906,7 @@ [(()) (write-char #\n port)] [else (write-char #\' port) (write-serialized-arg obj port)]) (when k (write-char #\] port) (write-serialized-arg k port))] - [ref (id) + [(ref const) (id) (cond [(posq id l) => ; local (lambda (n) (write-char #\. port) diff --git a/t.c b/t.c index f9ac7b4..15c70d9 100644 --- a/t.c +++ b/t.c @@ -191,16 +191,17 @@ char *t_code[] = { "P", "xform-set!", "%2${.2,@(y6:list2?)[01}?{${.2a,@(y3:id?)[01}}{f}?{${.3,.3da,f,@(y5:xfo" "rm)[03},${'(y4:set!),.4a,.6,@(y11:xenv-lookup)[03},${.2,@(y17:location" - "-special?)[01}?{.1,.1sz'(l1:y5:begin;)]4}.0z,'(y3:ref),.1aq?{.2,.1da,'" - "(y4:set!),l3]5}'(s27:set! to non-identifier form),@(y7:x-error)[51}.0," - "'(y4:set!)c,'(s18:improper set! form),@(y7:x-error)[22", + "-special?)[01}?{.2,'(y4:set!)c,'(s38:set! to macro or integrable ident" + "ifier),@(y7:x-error)[42}.0z,'(y3:ref),.1aq?{.2,.1da,'(y4:set!),l3]5}.3" + ",'(y4:set!)c,'(s19:set! is not allowed),@(y7:x-error)[52}.0,'(y4:set!)" + "c,'(s18:improper set! form),@(y7:x-error)[22", "P", "xform-set&", "%2${.2,@(y6:list1?)[01}?{${'(y4:set!),.3a,.5,@(y11:xenv-lookup)[03},${" - ".2,@(y17:location-special?)[01}?{'(s22:set& of a non-variable),@(y7:x-" - "error)[31}.0z,'(y3:ref),.1aq?{.0da,'(y4:set&),l2]4}'(s22:set& of a non" - "-variable),@(y7:x-error)[41}.0,'(y4:set&)c,'(s18:improper set& form),@" - "(y7:x-error)[22", + ".2,@(y17:location-special?)[01}?{.1,'(y4:set&)c,'(s38:set& of macro or" + " integrable identifier),@(y7:x-error)[32}.0z,'(y3:ref),.1aq?{.0da,'(y4" + ":set&),l2]4}.2,'(y4:set!)c,'(s19:set& is not allowed),@(y7:x-error)[42" + "}.0,'(y4:set&)c,'(s18:improper set& form),@(y7:x-error)[22", "P", "xform-if", "%2.0L0?{${.2,.4,&1{%1:0,.1,f,@(y5:xform)[13},@(y5:%25map1)[02},.0g,'2," @@ -426,172 +427,172 @@ char *t_code[] = { ",@(y9:set-union)[22", "P", "find-free", - "%2'(y5:quote),.1aq?{.0d,&0{%1n]1},@(y13:apply-to-list)[22}'(y3:ref),.1" - "aq?{.0d,.2,&1{%1${:0,.3,@(y11:set-member?)[02}?{n]1}.0,l1]1},@(y13:app" - "ly-to-list)[22}'(y4:set!),.1aq?{.0d,.2,&1{%2${:0,.4,@(y9:find-free)[02" - "},${:0,.4,@(y11:set-member?)[02}?{n}{.1,l1},@(y9:set-union)[22},@(y13:" - "apply-to-list)[22}'(y4:set&),.1aq?{.0d,.2,&1{%1${:0,.3,@(y11:set-membe" - "r?)[02}?{n]1}.0,l1]1},@(y13:apply-to-list)[22}'(y6:lambda),.1aq?{.0d,." - "2,&1{%2${:0,${.5,@(y15:flatten-idslist)[01},@(y9:set-union)[02},.2,@(y" - "9:find-free)[22},@(y13:apply-to-list)[22}'(y7:lambda*),.1aq?{.0d,.2,&1" - "{%!0:0,${.3,@(y4:cadr),@(y5:%25map1)[02},@(y10:find-free*)[12},@(y13:a" - "pply-to-list)[22}'(y5:letcc),.1aq?{.0d,.2,&1{%2${:0,.3,l1,@(y9:set-uni" - "on)[02},.2,@(y9:find-free)[22},@(y13:apply-to-list)[22}'(y6:withcc),.1" - "aq?{.0d,.2,&1{%2${:0,.4,@(y9:find-free)[02},${:0,.4,@(y9:find-free)[02" - "},@(y9:set-union)[22},@(y13:apply-to-list)[22}'(y2:if),.1aq?{.0d,.2,&1" - "{%3${${:0,.7,@(y9:find-free)[02},${:0,.7,@(y9:find-free)[02},@(y9:set-" - "union)[02},${:0,.4,@(y9:find-free)[02},@(y9:set-union)[32},@(y13:apply" - "-to-list)[22}'(y5:begin),.1aq?{.0d,.2,&1{%!0:0,.1,@(y10:find-free*)[12" - "},@(y13:apply-to-list)[22}'(y10:integrable),.1aq?{.0d,.2,&1{%!1:0,.1,@" - "(y10:find-free*)[22},@(y13:apply-to-list)[22}'(y4:call),.1aq?{.0d,.2,&" - "1{%!1${:0,.3,@(y10:find-free*)[02},${:0,.5,@(y9:find-free)[02},@(y9:se" - "t-union)[22},@(y13:apply-to-list)[22}'(y6:define),.1aq?{.0d,.1,&1{%!0:" - "0,'(s21:misplaced define form),@(y7:c-error)[12},@(y13:apply-to-list)[" - "22}'(y16:record-case-miss)]2", + "%2'(y5:quote),.1aq?{.0d,&0{%1n]1},@(y13:apply-to-list)[22}'(l2:y3:ref;" + "y5:const;),.1aA0?{.0d,.2,&1{%1${:0,.3,@(y11:set-member?)[02}?{n]1}.0,l" + "1]1},@(y13:apply-to-list)[22}'(y4:set!),.1aq?{.0d,.2,&1{%2${:0,.4,@(y9" + ":find-free)[02},${:0,.4,@(y11:set-member?)[02}?{n}{.1,l1},@(y9:set-uni" + "on)[22},@(y13:apply-to-list)[22}'(y4:set&),.1aq?{.0d,.2,&1{%1${:0,.3,@" + "(y11:set-member?)[02}?{n]1}.0,l1]1},@(y13:apply-to-list)[22}'(y6:lambd" + "a),.1aq?{.0d,.2,&1{%2${:0,${.5,@(y15:flatten-idslist)[01},@(y9:set-uni" + "on)[02},.2,@(y9:find-free)[22},@(y13:apply-to-list)[22}'(y7:lambda*),." + "1aq?{.0d,.2,&1{%!0:0,${.3,@(y4:cadr),@(y5:%25map1)[02},@(y10:find-free" + "*)[12},@(y13:apply-to-list)[22}'(y5:letcc),.1aq?{.0d,.2,&1{%2${:0,.3,l" + "1,@(y9:set-union)[02},.2,@(y9:find-free)[22},@(y13:apply-to-list)[22}'" + "(y6:withcc),.1aq?{.0d,.2,&1{%2${:0,.4,@(y9:find-free)[02},${:0,.4,@(y9" + ":find-free)[02},@(y9:set-union)[22},@(y13:apply-to-list)[22}'(y2:if),." + "1aq?{.0d,.2,&1{%3${${:0,.7,@(y9:find-free)[02},${:0,.7,@(y9:find-free)" + "[02},@(y9:set-union)[02},${:0,.4,@(y9:find-free)[02},@(y9:set-union)[3" + "2},@(y13:apply-to-list)[22}'(y5:begin),.1aq?{.0d,.2,&1{%!0:0,.1,@(y10:" + "find-free*)[12},@(y13:apply-to-list)[22}'(y10:integrable),.1aq?{.0d,.2" + ",&1{%!1:0,.1,@(y10:find-free*)[22},@(y13:apply-to-list)[22}'(y4:call)," + ".1aq?{.0d,.2,&1{%!1${:0,.3,@(y10:find-free*)[02},${:0,.5,@(y9:find-fre" + "e)[02},@(y9:set-union)[22},@(y13:apply-to-list)[22}'(y6:define),.1aq?{" + ".0d,.1,&1{%!0:0,'(s21:misplaced define form),@(y7:c-error)[12},@(y13:a" + "pply-to-list)[22}'(y16:record-case-miss)]2", "P", "find-sets*", "%2.0u?{n]2}${.3,.3d,@(y10:find-sets*)[02},${.4,.4a,@(y9:find-sets)[02}" ",@(y9:set-union)[22", "P", "find-sets", - "%2'(y5:quote),.1aq?{.0d,&0{%1n]1},@(y13:apply-to-list)[22}'(y3:ref),.1" - "aq?{.0d,&0{%1n]1},@(y13:apply-to-list)[22}'(y4:set!),.1aq?{.0d,.2,&1{%" - "2${:0,.4,@(y9:find-sets)[02},${:0,.4,@(y11:set-member?)[02}?{.1,l1}{n}" - ",@(y9:set-union)[22},@(y13:apply-to-list)[22}'(y4:set&),.1aq?{.0d,.2,&" - "1{%1${:0,.3,@(y11:set-member?)[02}?{.0,l1]1}n]1},@(y13:apply-to-list)[" - "22}'(y6:lambda),.1aq?{.0d,.2,&1{%2${${.4,@(y15:flatten-idslist)[01},:0" - ",@(y9:set-minus)[02},.2,@(y9:find-sets)[22},@(y13:apply-to-list)[22}'(" - "y7:lambda*),.1aq?{.0d,.2,&1{%!0:0,${.3,@(y4:cadr),@(y5:%25map1)[02},@(" - "y10:find-sets*)[12},@(y13:apply-to-list)[22}'(y5:letcc),.1aq?{.0d,.2,&" - "1{%2${.2,l1,:0,@(y9:set-minus)[02},.2,@(y9:find-sets)[22},@(y13:apply-" - "to-list)[22}'(y6:withcc),.1aq?{.0d,.2,&1{%2${:0,.4,@(y9:find-sets)[02}" - ",${:0,.4,@(y9:find-sets)[02},@(y9:set-union)[22},@(y13:apply-to-list)[" - "22}'(y5:begin),.1aq?{.0d,.2,&1{%!0:0,.1,@(y10:find-sets*)[12},@(y13:ap" - "ply-to-list)[22}'(y2:if),.1aq?{.0d,.2,&1{%3${${:0,.7,@(y9:find-sets)[0" - "2},${:0,.7,@(y9:find-sets)[02},@(y9:set-union)[02},${:0,.4,@(y9:find-s" - "ets)[02},@(y9:set-union)[32},@(y13:apply-to-list)[22}'(y10:integrable)" - ",.1aq?{.0d,.2,&1{%!1:0,.1,@(y10:find-sets*)[22},@(y13:apply-to-list)[2" - "2}'(y4:call),.1aq?{.0d,.2,&1{%!1${:0,.3,@(y10:find-sets*)[02},${:0,.5," - "@(y9:find-sets)[02},@(y9:set-union)[22},@(y13:apply-to-list)[22}'(y6:d" - "efine),.1aq?{.0d,.1,&1{%!0:0,'(s21:misplaced define form),@(y7:c-error" - ")[12},@(y13:apply-to-list)[22}'(y16:record-case-miss)]2", + "%2'(y5:quote),.1aq?{.0d,&0{%1n]1},@(y13:apply-to-list)[22}'(l2:y3:ref;" + "y5:const;),.1aA0?{.0d,&0{%1n]1},@(y13:apply-to-list)[22}'(y4:set!),.1a" + "q?{.0d,.2,&1{%2${:0,.4,@(y9:find-sets)[02},${:0,.4,@(y11:set-member?)[" + "02}?{.1,l1}{n},@(y9:set-union)[22},@(y13:apply-to-list)[22}'(y4:set&)," + ".1aq?{.0d,.2,&1{%1${:0,.3,@(y11:set-member?)[02}?{.0,l1]1}n]1},@(y13:a" + "pply-to-list)[22}'(y6:lambda),.1aq?{.0d,.2,&1{%2${${.4,@(y15:flatten-i" + "dslist)[01},:0,@(y9:set-minus)[02},.2,@(y9:find-sets)[22},@(y13:apply-" + "to-list)[22}'(y7:lambda*),.1aq?{.0d,.2,&1{%!0:0,${.3,@(y4:cadr),@(y5:%" + "25map1)[02},@(y10:find-sets*)[12},@(y13:apply-to-list)[22}'(y5:letcc)," + ".1aq?{.0d,.2,&1{%2${.2,l1,:0,@(y9:set-minus)[02},.2,@(y9:find-sets)[22" + "},@(y13:apply-to-list)[22}'(y6:withcc),.1aq?{.0d,.2,&1{%2${:0,.4,@(y9:" + "find-sets)[02},${:0,.4,@(y9:find-sets)[02},@(y9:set-union)[22},@(y13:a" + "pply-to-list)[22}'(y5:begin),.1aq?{.0d,.2,&1{%!0:0,.1,@(y10:find-sets*" + ")[12},@(y13:apply-to-list)[22}'(y2:if),.1aq?{.0d,.2,&1{%3${${:0,.7,@(y" + "9:find-sets)[02},${:0,.7,@(y9:find-sets)[02},@(y9:set-union)[02},${:0," + ".4,@(y9:find-sets)[02},@(y9:set-union)[32},@(y13:apply-to-list)[22}'(y" + "10:integrable),.1aq?{.0d,.2,&1{%!1:0,.1,@(y10:find-sets*)[22},@(y13:ap" + "ply-to-list)[22}'(y4:call),.1aq?{.0d,.2,&1{%!1${:0,.3,@(y10:find-sets*" + ")[02},${:0,.5,@(y9:find-sets)[02},@(y9:set-union)[22},@(y13:apply-to-l" + "ist)[22}'(y6:define),.1aq?{.0d,.1,&1{%!0:0,'(s21:misplaced define form" + "),@(y7:c-error)[12},@(y13:apply-to-list)[22}'(y16:record-case-miss)]2", "P", "codegen", "%7'(y5:quote),.1aq?{.0d,.6,.8,&2{%1.0,t,.1v?{:0,'(ct)W0}{f,.1v?{:0,'(c" "f)W0}{n,.1v?{:0,'(cn)W0}{:0,'(c')W0${:0,.4,@(y20:write-serialized-arg)" "[02}}}}_1:1?{:0,'(c])W0:0,:1,@(y20:write-serialized-arg)[12}]1},@(y13:" - "apply-to-list)[72}'(y3:ref),.1aq?{.0d,.6,.8,.5,.7,.6,&5{%1${:0,.3,@(y4" - ":posq)[02},.0?{.0,:3,'(c.)W0${:3,.3,@(y20:write-serialized-arg)[02}${:" - "1,.5,@(y11:set-member?)[02}?{:3,'(c^)W0}_1}{${:2,.4,@(y4:posq)[02},.0?" - "{.0,:3,'(c:)W0${:3,.3,@(y20:write-serialized-arg)[02}${:1,.6,@(y11:set" - "-member?)[02}?{:3,'(c^)W0}_1}{:3,'(c@)W0${:3,.5,@(y20:write-serialized" - "-arg)[02}}_1}_1:4?{:3,'(c])W0:3,:4,@(y20:write-serialized-arg)[12}]1}," - "@(y13:apply-to-list)[72}'(y4:set!),.1aq?{.0d,.6,.8,.5,.5,.8,.(i10),&6{" - "%2${:4,f,:0,:1,:3,:2,.9,@(y7:codegen)[07}${:2,.3,@(y4:posq)[02},.0?{.0" - ",:4,'(c.)W0:4,'(c!)W0${:4,.3,@(y20:write-serialized-arg)[02}_1}{${:3,." - "4,@(y4:posq)[02},.0?{.0,:4,'(c:)W0:4,'(c!)W0${:4,.3,@(y20:write-serial" - "ized-arg)[02}_1}{:4,'(c@)W0:4,'(c!)W0${:4,.5,@(y20:write-serialized-ar" - "g)[02}}_1}_1:5?{:4,'(c])W0:4,:5,@(y20:write-serialized-arg)[22}]2},@(y" - "13:apply-to-list)[72}'(y4:set&),.1aq?{.0d,.6,.8,.5,.5,&4{%1${:0,.3,@(y" - "4:posq)[02},.0?{.0,:2,'(c.)W0${:2,.3,@(y20:write-serialized-arg)[02}_1" - "}{${:1,.4,@(y4:posq)[02},.0?{.0,:2,'(c:)W0${:2,.3,@(y20:write-serializ" - "ed-arg)[02}_1}{:2,'(c`)W0${:2,.5,@(y20:write-serialized-arg)[02}}_1}_1" - ":3?{:2,'(c])W0:2,:3,@(y20:write-serialized-arg)[12}]1},@(y13:apply-to-" - "list)[72}'(y5:begin),.1aq?{.0d,.6,.8,.4,.6,.8,.(i10),&6{%!0${.2,,#0.0," - ":3,:2,:1,:0,:4,:5,&7{%1.0p?{.0dp?{f}{:0},${:1,.3,:2,:3,:4,:5,.9a,@(y7:" - "codegen)[07}.1d,:6^[21}]1}.!0.0^_1[01}:5?{.0u}{f}?{:4,'(c])W0:4,:5,@(y" - "20:write-serialized-arg)[12}]1},@(y13:apply-to-list)[72}'(y2:if),.1aq?" - "{.0d,.6,.6,.6,.6,.6,.(i12),&6{%3${:0,f,:4,:3,:2,:1,.8,@(y7:codegen)[07" - "}:0,'(c?)W0:0,'(c{)W0${:0,:5,:4,:3,:2,:1,.9,@(y7:codegen)[07}:0,'(c})W" - "0:5?{:0,:5,:4,:3,:2,:1,.8,@(y7:codegen)[37}'(l1:y5:begin;),.3e,.0?{.0]" - "4}.3?{:0,'(c{)W0${:0,:5,:4,:3,:2,:1,.(i11),@(y7:codegen)[07}:0,'(c})W0" - "]4}f]4},@(y13:apply-to-list)[72}'(y6:lambda),.1aq?{.0d,.6,.8,.7,.7,.7," - ".7,&6{%2${.2,@(y15:flatten-idslist)[01},${:3,${.5,.8,@(y9:find-free)[0" - "2},@(y9:set-minus)[02},${.3,.6,@(y9:find-sets)[02},${:0,.4A8,,#0.0,:4," - ":1,:3,&4{%2.0u?{]2}${:2,f,:0,n,:1,.8,.8a,'(y3:ref),l2,@(y7:codegen)[07" - "}:2,'(c,)W0.1,fc,.1d,:3^[22}.!0.0^_1[02}:4,'(c&)W0${:4,.4g,@(y20:write" - "-serialized-arg)[02}:4,'(c{)W0.3L0?{:4,'(c%25)W0${:4,.6g,@(y20:write-s" - "erialized-arg)[02}}{:4,'(c%25)W0:4,'(c!)W0${:4,${.8,@(y17:idslist-req-" - "count)[01},@(y20:write-serialized-arg)[02}}${'0,.5,,#0.0,.6,:4,&3{%2.0" - "u?{]2}${:1,.3a,@(y11:set-member?)[02}?{:0,'(c#)W0${:0,.4,@(y20:write-s" - "erialized-arg)[02}}'1,.2I+,.1d,:2^[22}.!0.0^_1[02}${:4,.5g,:3,${${.(i1" - "0),:2,@(y13:set-intersect)[02},.8,@(y9:set-union)[02},.7,.9,.(i12),@(y" - "7:codegen)[07}:4,'(c})W0_1_1_1:5?{:4,'(c])W0:4,:5,@(y20:write-serializ" - "ed-arg)[22}]2},@(y13:apply-to-list)[72}'(y7:lambda*),.1aq?{.0d,.6,.8,." - "5,.7,.9,.7,&6{%!0${:0,.3A8,,#0.0,:4,:3,:2,:1,&5{%2.0u?{]2}${:3,f,:0,:1" - ",:2,.8,.8ada,@(y7:codegen)[07}:3,'(c%25)W0:3,'(cx)W0:3,'(c,)W0.1,fc,.1" - "d,:4^[22}.!0.0^_1[02}:4,'(c&)W0${:4,.3g,@(y20:write-serialized-arg)[02" - "}:4,'(c{)W0${'0,.3,,#0.0,:4,&2{%2.0u?{]2}.0aa,.0a,.1da,:0,'(c|)W0.0?{:" - "0,'(c!)W0}${:0,.4,@(y20:write-serialized-arg)[02}${:0,.7,@(y20:write-s" - "erialized-arg)[02}_1_1_1'1,.2I+,.1d,:1^[22}.!0.0^_1[02}:4,'(c%25)W0:4," - "'(c%25)W0:4,'(c})W0:5?{:4,'(c])W0:4,:5,@(y20:write-serialized-arg)[12}" - "]1},@(y13:apply-to-list)[72}'(y5:letcc),.1aq?{.0d,.4,.7,.7,.6,.6,.(i12" - "),&6{%2.0,l1,${.2,.5,@(y9:find-sets)[02},${.2,${.6,:5,@(y9:set-minus)[" - "02},@(y9:set-union)[02},:4?{:0,'(ck)W0${:0,:4,@(y20:write-serialized-a" - "rg)[02}:0,'(c,)W0${.3,.6,@(y11:set-member?)[02}?{:0,'(c#)W0:0,'(c0)W0}" - ":0,'1,:4I+,:3,.3,:2,:1,.9c,.(i10),@(y7:codegen)[57}:0,'(c$)W0:0,'(c{)W" - "0:0,'(ck)W0:0,'(c0)W0:0,'(c,)W0${.3,.6,@(y11:set-member?)[02}?{:0,'(c#" - ")W0:0,'(c0)W0}${:0,f,:3,.5,:2,:1,fc,fc,.(i11)c,.(i12),@(y7:codegen)[07" - "}:0,'(c_)W0${:0,'3,@(y20:write-serialized-arg)[02}:0,'(c})W0]5},@(y13:" - "apply-to-list)[72}'(y6:withcc),.1aq?{.0d,.7,.3,.5,.7,.9,&5{%2'(l3:y5:q" - "uote;y3:ref;y6:lambda;),.2aA0?{${:4,f,:0,:1,:2,:3,.9,@(y7:codegen)[07}" - ":4,'(c,)W0${:4,f,:0,:1,:2,:3,fc,.8,@(y7:codegen)[07}:4,'(cw)W0:4,'(c!)" - "W0]2}${:4,f,:0,:1,:2,:3,.9,n,'(y6:lambda),l3,@(y7:codegen)[07}:4,'(c,)" - "W0${:4,f,:0,:1,:2,:3,fc,.8,@(y7:codegen)[07}:4,'(cw)W0]2},@(y13:apply-" - "to-list)[72}'(y10:integrable),.1aq?{.0d,.6,.8,.5,.7,.9,.7,&6{%!1'0,.2U" - "8,.2U6,.0,'(l4:c0;c1;c2;c3;),.1A1?{${:0,.6A8,,#0.0,:4,:3,:2,:1,&5{%2.0" - "u?{]2}${:3,f,:0,:1,:2,.8,.8a,@(y7:codegen)[07}.0du~?{:3,'(c,)W0}.1,fc," - ".1d,:4^[22}.!0.0^_1[02}${:4,.5,@(y12:write-string)[02}}{'(cp),.1v?{.3u" - "?{'1,.5U8,${:4,.3,@(y12:write-string)[02}_1}{'1,.4gI-,${:0,.7A8,,#0.0," - ":4,:3,:2,:1,&5{%2.0u?{]2}${:3,f,:0,:1,:2,.8,.8a,@(y7:codegen)[07}.0du~" - "?{:3,'(c,)W0}.1,fc,.1d,:4^[22}.!0.0^_1[02}${'0,,#0.0,.8,:4,.7,&4{%1:0," - ".1I