GOOF----LE-8-2.0]4h6] gguile  gdefine-module*   glanguage gtree-il geffects  gfilenameS flanguage/tree-il/effects.scm gimportsS    g primitives   gice-9 gmatch    gexportsS gmake-effects-analyzer g&mutable-lexical g &toplevel g&fluid g&definite-bailout g&possible-bailout g &zero-values g &allocation g &mutable-data !g &type-check "g &all-effects #geffects-commute? $gexclude-effects %g effect-free? &g constant? 'gdepends-on-effects? (gcauses-effects? ) !"#$%&'( *gset-current-module +* ,* -gmake-syntax-transformer .- /- 0gdefine-effects 1gmacro 2g $sc-dispatch 32 42 5g_ 6gany 7geach-any 867 958 :giota ;glength gtop ?> @gribcage A@ Bgn CB D? Efl-a141b7f3b9a-1d09 FE G@CDF Hgall Igname JHI K?? Lfl-a141b7f3b9a-1d02 Mfl-a141b7f3b9a-1d03 NLM O@JKN Pgx QP Rfl-a141b7f3b9a-1cff SR T@QDS U?AGOAT Vghygiene WV X<=UW Ygappend ZY [Y \gmap ]\ ^\ _g define-syntax `<_UW agidentifier-syntax b<aUW cgash d<cUW e< UW fg* g<fUW h< UW ih jglogior k<jUW lgsyntax-violation ml nl of-source expression failed to match any pattern pg identifier? qp rp sgm-a141b7f3b9a-1d0f ts> ugid vu wgm-a141b7f3b9a-1d10 xw> yx zfl-a141b7f3b9a-1d17 {z |@vy{ }fl-a141b7f3b9a-1d12 ~} @Qy~ gshift t|AAGOAT  <cW < W <fW |A < W < W   57 fl-a141b7f3b9a-1d1a  @Qy tAAGOAT  <cW < W <fW A < W < W   gm-a141b7f3b9a-1d1d >  fl-a141b7f3b9a-1d24  @v fl-a141b7f3b9a-1d1f  @Q tAAGOAT  <cW < W <fW A < W < W   fl-a141b7f3b9a-1d27  @Q tAAGOAT  <cW < W <fW A < W < W   gm-a141b7f3b9a-1d2a >  fl-a141b7f3b9a-1d31  @v fl-a141b7f3b9a-1d2c  @Q tAAGOAT  <cW < W <fW A < W < W   fl-a141b7f3b9a-1d34  @Q tAAGOAT  <cW < W <fW A < W < W   gm-a141b7f3b9a-1d37 >  fl-a141b7f3b9a-1d3e  @v fl-a141b7f3b9a-1d39  @Q tAAGOAT  <cW < W <fW A < W < W   fl-a141b7f3b9a-1d41  @Q tAAGOAT  <cW < W <fW A < W < W   gm-a141b7f3b9a-1d44 >  fl-a141b7f3b9a-1d4b  @v fl-a141b7f3b9a-1d46  @Q tAAGOAT  <cW < W <fW A < W < W   fl-a141b7f3b9a-1d4e  @Q tAAGOAT  <cW < W  <fW  A  <  W  < W        gm-a141b7f3b9a-1d51 >  fl-a141b7f3b9a-1d58  @v fl-a141b7f3b9a-1d53  @Q tAAGOAT  <cW < W <fW A < W < W    !fl-a141b7f3b9a-1d5b "! #@Q" $t#AAGOAT  %<c$W &< $W '<f$W (#A )< (W *< $W +')* ,%&+ -gm-a141b7f3b9a-1d5e .-> /. 0fl-a141b7f3b9a-1d65 10 2@v/1 3fl-a141b7f3b9a-1d60 43 5@Q/4 6t2A5AGOAT  7<c6W 8< 6W 9<f6W :2A5 ;< :W << 6W =9;< >78= ?fl-a141b7f3b9a-1d68 @? A@Q/@ BtAA5AGOAT  C<cBW D< BW E<fBW FAA5 G< FW H< BW IEGH JCDI Kgm-a141b7f3b9a-1d6b LK> ML Nfl-a141b7f3b9a-1d72 ON P@vMO Qfl-a141b7f3b9a-1d6d RQ S@QMR TtPASAGOAT  U<cTW V< TW W<fTW XPAS Y< XW Z< TW [WYZ \UV[ ]fl-a141b7f3b9a-1d75 ^] _@QM^ `t_ASAGOAT  a<c`W b< `W c<f`W d_AS e< dW f< `W gcef habg igm-a141b7f3b9a-1d78 ji> kj lfl-a141b7f3b9a-1d7f ml n@vkm ofl-a141b7f3b9a-1d7a po q@Qkp rtnAqAGOAT  s<crW t< rW u<frW vnAq w< vW x< rW yuwx zsty {fl-a141b7f3b9a-1d82 |{ }@Qk| ~t}AqAGOAT  <c~W < ~W <f~W }Aq < W < ~W   gm-a141b7f3b9a-1d85 >  fl-a141b7f3b9a-1d8c  @v fl-a141b7f3b9a-1d87  @Q tAAGOAT  <jW ?A <W <W <W <W <W <W <W < W <!W   fl-a141b7f3b9a-1d8f  @Q tAAGOAT  <jW ?A <W <W <W <W <W <W <W < W <!W   g &no-effects gm-a141b7f3b9a-1d92 >  fl-a141b7f3b9a-1d99  @v fl-a141b7f3b9a-1d94  @Q ?A < W fl-a141b7f3b9a-1d9c  @Q ?A < W g&all-effects-but-bailout glogand gm-a141b7f3b9a-1d9f >  fl-a141b7f3b9a-1da6  @v fl-a141b7f3b9a-1da1  @Q ?A <W <"W glognot <W <W   fl-a141b7f3b9a-1da9  @Q ?A <W <"W <W <W   g% cause-procedure gcause 56 gsyntax-parameterize gm-a141b7f3b9a-1dad > gt-a141b7f3b9a-1dac   fl-a141b7f3b9a-1db2  @ fl-a141b7f3b9a-1daf  @Q g proc-name gargs  f l-bde397a-8e8 f l-bde397a-8e9  @K gformals gbody I ??? f l-bde397a-8df f l-bde397a-8e0 f l-bde397a-8e1  @ gmake-procedure-name gprefix  ?? f l-bde397a-8d3 f l-bde397a-8d1  @ f l-bde397a-8d0  @QD AAAAA  V < ?A  <W  <a  <W           glambda < geffect <W  <cW < W    fWrong number of arguments ?A <W g% &depends-on-procedure g &depends-on gm-a141b7f3b9a-1dc8 >  gt-a141b7f3b9a-1dc7 !  " #fl-a141b7f3b9a-1dcd $# %@!"$ &fl-a141b7f3b9a-1dca '& (@Q"' )%A(AAAA  *<) +?%A( ,<+W -<a) .<+W /-. 0,/ 10 2<) 3ga 4<3+W 54 6<+W 7<"+W 8647 9258 :*19 ;?A( <<;W =g% &causes-procedure >g&causes ?gm-a141b7f3b9a-1ded @?> Agt-a141b7f3b9a-1dec BA C@ Dfl-a141b7f3b9a-1df2 ED F@BCE Gfl-a141b7f3b9a-1def HG I@QCH J@FAIAAAA  K<J L?FAI M<>LW N<aJ O<=LW PNO QMP RQ S<J T<3LW UT V<LW W<LW X<"LW YWX ZVTY [SUZ \KR[ ]?AI ^<=]W _g% depends-on-effects?-procedure `566 agm-a141b7f3b9a-1e65 ba> cgt-a141b7f3b9a-1e63 dgt-a141b7f3b9a-1e64 ecd fbb gfl-a141b7f3b9a-1e6a hfl-a141b7f3b9a-1e6b igh j@efi kb lfl-a141b7f3b9a-1e67 ml n@Qkm objAnAAAA  p<o q?jAn r<'qW s<ao t<_qW ust vru wv x<o y<PqW z<qW {yz |gnot }<|qW ~gzero? <~qW <qW <qW y z  } x{ pw ?An <_W g% causes-effects?-procedure gm-a141b7f3b9a-1e9f > gt-a141b7f3b9a-1e9d gt-a141b7f3b9a-1e9e   fl-a141b7f3b9a-1ea4 fl-a141b7f3b9a-1ea5  @  fl-a141b7f3b9a-1ea1  @Q AAAAA  < ?A <(W <a <W    < <PW <W  <|W <~W <W <>W  <W       ?A <W g% effects-commute?-procedure gm-a141b7f3b9a-1ef9 > gt-a141b7f3b9a-1ef7 gt-a141b7f3b9a-1ef8   fl-a141b7f3b9a-1efe fl-a141b7f3b9a-1eff  @  fl-a141b7f3b9a-1efb  @Q AAAAA  < ?A <#W <a <W    < <3W gb <W  gand <W <|W <(W <W          ?A <W gmake-hash-table g hashq-ref g hashq-set! g g gerror   fno matching pattern g  g  gor-map g g  g  gmake-application g gbailout-primitive? geffect-free-primitive? gconstructor-primitive? gaccessor-primitive? gmake-prompt-tag gvector glist gcons glist? gsymbol? gvector? gstruct? gstring? gnumber? gchar? gnull? gpair? gequal? geqv? geq? gvalues g  g  g  g   g   g  g g g g  g  g g g g  g gC5h@o]4    )54,>"G4/0149:;47X[^`bdegih ^]CVgtmp-a141b7f3b9a-1d0d  gtmp-a141b7f3b9a-1d0c     C`bkh0)]44L5LL5C!gn  *  * Cnoh8]445545$ O@6gall  7gname  7gtmp   7gtmp   7gfilenameflanguage/tree-il/effects.scm  >   > $  >   >   7 Cnoh(o] 45$@6ggx  "gtmp "gfilenameflanguage/tree-il/effects.scm ;   " C50R4/1rh`]6Xgid  gfilenameflanguage/tree-il/effects.scm  O    Ch*]C"gid     C4h)]C!gx     Cnoh@]4?$@45$@6gx  :gtmp  :gtmp  # :gfilenameflanguage/tree-il/effects.scm O   : g macro-typegidentifier-syntaxC5R4/1rh`]6Xgid  gfilenameflanguage/tree-il/effects.scm  O    Ch*]C"gid     C4h)]C!gx     Cnoh@]4?$@45$@6gx  :gtmp  :gtmp  # :gfilenameflanguage/tree-il/effects.scm O   : g macro-typegidentifier-syntaxC5R4/1rh`]6Xgid  gfilenameflanguage/tree-il/effects.scm  O    Ch*]C"gid     C4h)]C!gx     Cnoh@]4?$@45$@6gx  :gtmp  :gtmp  # :gfilenameflanguage/tree-il/effects.scm O   : g macro-typegidentifier-syntaxC5R4/1rh`]6Xgid  gfilenameflanguage/tree-il/effects.scm  O    Ch*]C"gid     C4h)]C!gx     Cnoh@]4?$@45$@6gx  :gtmp  :gtmp  # :gfilenameflanguage/tree-il/effects.scm O   : g macro-typegidentifier-syntaxC5R4/1rh`]6Xgid  gfilenameflanguage/tree-il/effects.scm  O    Ch*]C"gid     C4h)]C!gx     Cnoh@]4?$@45$@6gx  :gtmp  :gtmp  # :gfilenameflanguage/tree-il/effects.scm O   : g macro-typegidentifier-syntaxC5R4/1rh`]6Xgid  gfilenameflanguage/tree-il/effects.scm  O    C h*]C"gid     C4,h)]C!gx     Cnoh@]4?$@45$@6gx  :gtmp  :gtmp  # :gfilenameflanguage/tree-il/effects.scm O   : g macro-typegidentifier-syntaxC5R4/1rh`]6Xgid  gfilenameflanguage/tree-il/effects.scm  O    C>h*]C"gid     C4Jh)]C!gx     Cnoh@]4?$@45$@6gx  :gtmp  :gtmp  # :gfilenameflanguage/tree-il/effects.scm O   : g macro-typegidentifier-syntaxC5R4/ 1rh`]6Xgid  gfilenameflanguage/tree-il/effects.scm  O    C\h*]C"gid     C4hh)]C!gx     Cnoh@]4?$@45$@6gx  :gtmp  :gtmp  # :gfilenameflanguage/tree-il/effects.scm O   : g macro-typegidentifier-syntaxC5 R4/!1rh`]6Xgid  gfilenameflanguage/tree-il/effects.scm  O    Czh*]C"gid     C4h)]C!gx     Cnoh@]4?$@45$@6gx  :gtmp  :gtmp  # :gfilenameflanguage/tree-il/effects.scm O   : g macro-typegidentifier-syntaxC5!R4/"1rh`]6Xgid  gfilenameflanguage/tree-il/effects.scm  O    Ch*]C"gid     C4h)]C!gx     Cnoh@]4?$@45$@6gx  :gtmp  :gtmp  # :gfilenameflanguage/tree-il/effects.scm O   : g macro-typegidentifier-syntaxC5"R4/1rha]6Ygid  gfilenameflanguage/tree-il/effects.scm  {    Ch*]C"gid     C4h)]C!gx     Cnoh@]4?$@45$@6gx  :gtmp  :gtmp  # :gfilenameflanguage/tree-il/effects.scm {   : g macro-typegidentifier-syntaxC5R4/1rhb]6Zgid  gfilenameflanguage/tree-il/effects.scm     Ch*]C"gid     C4h)]C!gx     Cnoh@]4?$@45$@6gx  :gtmp  :gtmp  # :gfilenameflanguage/tree-il/effects.scm   : g macro-typegidentifier-syntaxC5Rh] Cgeffect  gfilenameflanguage/tree-il/effects.scm     gnameg% cause-procedureCR4/14h:]C2gt-a141b7f3b9a-1dac    Cnh`]L6Xga  gfilenameflanguage/tree-il/effects.scm    C5rhP]L6Hgfilenameflanguage/tree-il/effects.scm     Ch]C   Cno hp]45$@45$ O@45$4O?$@  6  6gx  ngtmp ngtmp  " ngtmp  > ngfilenameflanguage/tree-il/effects.scm   n C5Rh]UUCga  gfilenameflanguage/tree-il/effects.scm     gnameg% &depends-on-procedureCR4/14:h:]C2gt-a141b7f3b9a-1dc7    Cnh`]L6Xga  gfilenameflanguage/tree-il/effects.scm    C5rhP]L6Hgfilenameflanguage/tree-il/effects.scm     C<h]C   Cno hp]45$@45$ O@45$4O?$@  6  6gx  ngtmp ngtmp  " ngtmp  > ngfilenameflanguage/tree-il/effects.scm   n C5Rh]Cga  gfilenameflanguage/tree-il/effects.scm     gnameg% &causes-procedureC=R4/>14\h:]C2gt-a141b7f3b9a-1dec    Cn>h`]L6Xga  gfilenameflanguage/tree-il/effects.scm    C5rhP]L6Hgfilenameflanguage/tree-il/effects.scm     C^h]C   Cno hp]45$@45$ O@45$4O?$@  6  6gx  ngtmp ngtmp  " ngtmp  > ngfilenameflanguage/tree-il/effects.scm   n C5>Rh]4 5Cgeffects  gexclude  gfilenameflanguage/tree-il/effects.scm         gnamegexclude-effectsC$Rh] Cgeffects  gfilenameflanguage/tree-il/effects.scm     gnameg effect-free?C%Rh] C|geffects  gfilenameflanguage/tree-il/effects.scm     gnameg constant?C&Rh]UU Cgx  geffects  gfilenameflanguage/tree-il/effects.scm           gnameg% depends-on-effects?-procedureC_R4/'14`hZ]CRgt-a141b7f3b9a-1e63  gt-a141b7f3b9a-1e64    Cn'h`]L6Xga  gfilenameflanguage/tree-il/effects.scm    C5rhP]L6Hgfilenameflanguage/tree-il/effects.scm     Ch]C   Cno hp]45$@45$ O@45$4O?$@  6  6gx  ngtmp ngtmp  " ngtmp  > ngfilenameflanguage/tree-il/effects.scm   n C5'Rh] Cgx  geffects  gfilenameflanguage/tree-il/effects.scm   "         gnameg% causes-effects?-procedureCR4/(14`hZ]CRgt-a141b7f3b9a-1e9d  gt-a141b7f3b9a-1e9e    Cn(h`]L6Xga  gfilenameflanguage/tree-il/effects.scm    C5rhP]L6Hgfilenameflanguage/tree-il/effects.scm     Ch]C   Cno hp]45$@45$ O@45$4O?$@  6  6gx  ngtmp ngtmp  " ngtmp  > ngfilenameflanguage/tree-il/effects.scm   n C5(RhX] UU $CUU Cga  Tgb  Tgeffects   'geffects  9 Rgfilenameflanguage/tree-il/effects.scm    +  9  9 S   T gnameg% effects-commute?-procedureCR4/#14`hZ]CRgt-a141b7f3b9a-1ef7  gt-a141b7f3b9a-1ef8    Cn#h`]L6Xga  gfilenameflanguage/tree-il/effects.scm    C5rhP]L6Hgfilenameflanguage/tree-il/effects.scm     Ch]C   Cno hp]45$@45$ O@45$4O?$@  6  6gx  ngtmp ngtmp  " ngtmp  > ngfilenameflanguage/tree-il/effects.scm   n C5#Rh`]CXgx  gfilenameflanguage/tree-il/effects.scm 5   Ch8] 4L5$C4L54L>"GCgexp  8gt 8geffects  8gfilenameflanguage/tree-il/effects.scm         8 gnamegcompute-effectsCh0]"(C4L5" "gexps  0gexps  %gout   %gfilenameflanguage/tree-il/effects.scm       )  :  )   %  %   0 gnamegaccumulate-effectsC$;|     9hX ]Y"2"""c""-""""\""0" ""b"""f"6""$" ""j""D"""6""N" "")$&    4L5$"$4L54L>"G4L5$"$4L54L>"G4L5$"$4L54L>"GC&     ?C456456$&  "$(O4L5$"$4L54L>"G4  5C4L5$"$4L54L>"G"N456 "6""$ &         4 4L5 @54 L5$ " 4L5$"$4L54L>"G$B4L5$"$4L54L>"G" C""$ &    C""$' &   ?C""$ &  $&s    4L5$B454L5$C4L54L>"GC?C""""$a &T  $>&1  45$ 4L5 C"n"j"f"b"^$ &  $ &    4L5"" & "4455"~$Y &L4L5$"$4L54L>"G""""|$ &   & & & (      &d4L 5  $ "$4L 5 4L  >"G   4545$ " ""  """"""""t""f""^C"d"`"\"X$ &|  $f&Y  45$? 4L545$ "45$ @" C"""""$ &  $&|  &e $S(H4L5$"$4L54L>"G C""""" " "$\ &O  $9&,  & ( C""""""$v &i  $S&F  " 4L5 C"&""5&"""!"""$ &  $&  & $$(4L5$"$4L54L>"G4L5$"$4L54L>"G C"""""""" "$ &   $&  "t" "&X $F(;4L5$C4L54L>"GC"d"`&X $F(;4L5$C4L54L>"GC""&X $F(;4L5$C4L54L>"GC""&X $F(;4L5$C4L54L>"GC"D"@&X $F(;4L5$C4L54L>"GC""&X $F(;4L5$C4L54L>"GC"" &X $F(;4L5$C4L54L>"GC"$" "!&X $F(;4L5$C4L54L>"GC""""&X $F(;4L5$C4L54L>"GC"\"X"#&X $F(;4L5$C4L54L>"GC"""(""""$ &  $u&h  "  L6"8"$"$&""y%&""&&""'&"""E"A"="9$\ &O  $9&,  '& ( C""""""$!(&    4L5$"$4L54L>"G4L5$"$4L54L>"G4L5$"$4L54L>"G $ C  @6""$& C""$`)&S    4L5$"$4L54L>"GC""$`*&S    4L5$"$4L54L>"GC""$s+&f     4L5$"$4L54L>"GC"$" $,& C""$-& C""$.&   4L5$"$4L54L>"G4L5$"$4L54L>"G C""$d/&W  4L5$"$4L54L>"G C""$0&u    4L54L5 4L5$"$4L54L>"GC""$1&    4L5$"$4L54L>"G4L5$"$4L54L>"G4L5$"$4L54L>"GC")"%$2&   4L5$"$4L54L>"G4L5$"$4L54L>"GC"s"o$3&|     4 L5$ " 4L54L5$"$4L54L>"GC""$4&      4 L5$ " 4L54L5$"$4L54L>"GC"="9$5&|     4 L5$ " 4L54L5$"$4L54L>"GC""$f6&Y     4L5$"$4L54L>"GC"0",$-&    4L5$ C C""$7& C""$8& C""gexp  Rgw pgw  pgw  pgt  geffects  gt  /geffects   ,gt  9 ngeffects  N kgw  gexps   geffects   gw   /gt   #geffects    gw  5 gx  5 gt  D ygeffects  Y vgw  gw   gw   gw   gt   Ngeffects  . Kgt  ^ geffects  s gw  gw  8 gw  ? gt  H gexp  Z gt  e geffects  w gw  gw   gw   gw 1 gw  R  gw  Y  gt   geffects   gw   gw   gw   gw  * gw  8 gw K gw R gt d geffects y gw 3 gw  N gw  ` gw  ]gw   Ugw   Qgw   Igt   Dgeffects  $ Agw ~ gw   gw   gw  Egw  =gw  gw f Pgw  Hgw  Dgw  @gx  @gw  8gt  geffects  gt  2geffects   /gw q rgw  jgw  gw  gt  geffects  gw   Zgw   Rgt  % Rgeffects  7 Rgw  g gw  z gt  geffects  gw  gw  gt  geffects  gw  ' zgw  : rgt  E rgeffects  W rgw  gw  gt  geffects  gw  :gw  2gt   2geffects   2gw  K gw  ^ gt  i geffects  { gw  gw  gt  geffects  gw   fgw  & ^gt  1 ^geffects  C ^gw  gw    gw   gw 6 |gw  Q tgw  ` pgw  gw   gw   gt   geffects   gt   )geffects   &gt  2 ggeffects  G dgtfx  g gcfx  g gafx  g gx  u gw  -gt   +geffects   (gw T gt  a geffects  v gw  gt   geffects   gw { gw   gt   geffects   gt   geffects   gw 0 ~gt  ; pgeffects  P mgw   gw    gw    gt    geffects   gw , gw  3 gw  : gt  E zgeffects  Z wgt   geffects   gt   geffects   gw  gw  ! gt  , ageffects  A ^gt  j geffects   gw  ?gw   ?gw   ?gt   =geffects   :gw l gw  s gw  z gt   geffects   gw  mgw   mgw   mgt  6 kgeffects  K hgw  gt   geffects   gw  gfilenameflanguage/tree-il/effects.scm             0 r 1 9  H  N Q  o r s   w    g  h         $ m  + m 1 - m  . j  2 h < D  S  Y \  | o   o   h  g    ^   ^ $  ^   `   `   a   ^    (  . 1  O ^ U d  V ^  m  s v   ^    X   B O H N Q Q # Z Q  ] e  q  w z   S    G   H   G  I   G   \ 4  f 5  t A  y 5           =   <   5  \ d  s  y |   8 %  8 2  8 "  8   : "  7   5   4   c *  r +  s * t ,  ~ ,   -   .   .   *        $ '  G ! ) H ! M           -             3  6   7  <       %  1  7 :  V  }          = E  Q  W Z  v             6  a i  u  { ~       ) 1  =  C F  b      k  p                  * 2  A  G J  g t . u " u        "                , 1  X  Y a  p  v y                 7 <  Y ^                           3 ;  J  P S  y  z                         = E  T  Z ]  {                    $ ,  ;  A D  b j  y                            > C  }                          &  - . 6  E  K N  l q                   ~  R gnamegvisitChX-.,3#OOOLQQLLQ6gexp Rglookup Rgcompute-effects  3 Rgaccumulate-effects  3 Rgvisit  3 Rgfilenameflanguage/tree-il/effects.scm  R z  R gnamegcompute-effectsCh >]45OQC6gassigned-lexical?  gcache  gcompute-effects   gfilenameflanguage/tree-il/effects.scm       gnamegmake-effects-analyzerg documentationfVReturns a procedure of type EXP -> EFFECTS that analyzes the effects of an expression.CRCgm  ,gfilenameflanguage/tree-il/effects.scm     " & 'C ' ( , 0 o9   o; C6