Caml1999T037%_1Z=C3Extract_projections-ocaml.warning )middle_end/flambda/extract_projections.mlQQ@5+a-4-9-30-40-41-42-66 QQ@@QQ@@@@@@QQ@@3@@@@@@#intA;@@#intA@@@@@&_none_@@A@A@$charB;@@$charA@@@@@ @A@&stringQ;@@&stringA@@@@@@@@%bytesC;@@%bytesA@@@@@@@@%floatD;@@%floatA@@@@@@@@$boolE;@@%falsec@@%@$trued@@+@@@A@@@@@,@A@$unitF;@@"()e@@6@@@A@@@@@7@A@ #exnG;@@@A@@@@@;@@@#effH;@@O@A@A@@@@@@D@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@T@@@%arrayJ;@@R@A%arrayA@@@@@@_@@@ $listK;@@S@A"[]f@@l@"::g@@@T@@y@ @@A@Y@@@@@|@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@@@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A頰=ocaml.warn_on_literal_pattern@@0Division_by_zero]#@@@A󠰠  @+End_of_file\#$@@@A@'FailureY#,@'@@A@0Invalid_argumentX#5@0@@A $#@-Match_failureV#>@@=@9@;@@a@@A5!4!@)Not_foundZ#O@@@A&=)<)@-Out_of_memoryW#W@@@A.E1D1@.Stack_overflow^#_@@@A6M9L9@.Sys_blocked_io_#g@@@A>UATA@)Sys_error[#o@j@@AG^J]J@:Undefined_recursive_modulea#x@@w@s@u@@h@@AXo[n[@:Continuation_already_takenb#@@@A`wcvc@&Stdlib@@Р?Int_replace_polymorphic_compare?Int_replace_polymorphic_compareRR@@ 3@@@@@@3@@@R@@ @!AATT@@AAР3Simple_value_approx3Simple_value_approxTT@@ 3@@@@@T@@!E!BUU@AAAР7Inline_and_simplify_aux#Env7Inline_and_simplify_auxUU@ UU@@@3@G>A6@*9@@@@U @ @@ఠ7known_valid_projections"bb@ BA@@#envB!t@@@7C@l@@m+projections*Projection#Set!t@@@C@r@@s/which_variables(Variable#Map!t'Flambda.specialised_to@@@*C@+@@@%C@x@@y+@@@C@z@@{C@t@@uC@n@@oC@k3HGGHHHHH@_~Av@^y@@@࣠LL$APmbnb@zCA@@R3ZYYZZZZZ@cubvJ@@@@@xb @PP%ATbb@DA@@V3nmmnnnnn@ i@@@@@@b@MM&AQbb @EA@@S3~~@j@@@@@@b@@డ*Projection#Set&filter*Projectionc#%c#/@ c#0c#3@@c#4c#:@ @@@#elt@@@ G@@ F$boolE@@@ E@@ D@@ C@@@@ B@@ A@@@ @@@ ?@@ >@ !middle_end/flambda/projection.mliJ  J  @@+Stdlib__Set^@1'@@@@$@@@ @@ "@@@ @@ @@ @@@@ @@ @@@ @@ @@ 3@cn@f@g@@@@࣠@*projection\A c#@ c#J@FA@@I@@@3@@@@@ @@@ఠ$from]dNXdN\@*GA@@(Variable!t@@@I@3@4+j@@@@%@&@@@డ/projecting_from*Projection>dN_?dNi@ BdNjCdNy@@@!t@@@ B@@ A,@@@ @@@ ?@yM  zM  @@W@@@@@@@@@;@@@@@6@@ఐe*projectionkdNzldN@@@@@@@F@@4@@OG@A@sdNT@@@ఠ)outer_var|~ee@HA@@(Variable!t@@@,(I@3uttuuuuu@bun@o@p@@@డ(Variable#Map$find(Variableff@ ff@@ff@ @@p#key@@@@@@y!a@@@@@@@@@@@6utils/identifiable.mlimm@@+Stdlib__MapU@)@@@@@@/@@.@@@@-@@,@@*@@)3@P@@@@ఐʠ$fromff@[@@7@@@K@@@ఐi/which_variablesff@@@ @@Y@@!@Ġ)Not_foundgg@;)Not_found#exnG@@@ @@@&Stdlib A@A&_none_@@A@@I@@@@@@@@%@g@@@@@ ภ%false(g)g@;@@@M@@@@B@@A@@@ @@@@@*@5g @@@ఠ)outer_var@hAh@MIA@@@@@*k@г'FlambdaRhSh$@Vh%Wh3@@@@@@* @@^h_h4@@@@@@డ*Freshening.apply_variable*Fresheningoi8Bpi8L@ si8Mti8[@@@*Freshening!t@@@+@@+@!t@@@+@@+ @@@+@@+@@+@ !middle_end/flambda/freshening.mliP  P  @@L@'"@@@@@@,@@,@@@@,@@, @@@,@@,@@,3@mf@g@h@@@@డ*freshening!Ei8]i8^@ i8_i8i@@@@@@.@@.*Freshening!t@@@.@@.@ .middle_end/flambda/inline_and_simplify_aux.mliuuwuu@@7Inline_and_simplify_aux\@@@@@@@/U@@/T@@@/S@@/R;@@ఐ#envi8ji8m@g@@H@@i8\i8n@@{@@@,,@2M@/\R@@ఐŠ)outer_vari8oi8x@^@@'Flambda.specialised_to@@@2@2k@#vari8yi8|@3#var@@@(S(Variable!t@@@(P@@@3*projection&optionL*Projection!t@@@(R@@@(Q@@A@A>middle_end/flambda/flambda.mliM  M  .@@-]@@AK  K  @@1\@<*@@@@@,*L@2L@2@@2@@@@@AJf4@@@A@Le6@@@ఠ&approxWkXk@dJA@@3Simple_value_approx!t@@@7I@23NMMNNNNN@@@@@@డ(find_exn!Eukvk@ ykzk@@@`@@@.@@.@(Variable!t@@@.@@.3@@@.@@.@@-@C  C  J@@I@#@@@{@@@2@@2@@@@2@@2I@@@2@@2@@2D@@ఐH#envkk@.@@Q@@ఐB)outer_varkk@[@@?@@@7J@7J@7e@@V @@nf@A@k @@ఐР*projectionll@@@@@@73@x@@@@@Ġ+Project_varmm@;+Project_var@@@ @+project_var@@@ @A@@D@AE  E  @@@R@ఠ+project_varߠmm@KA@@@@@73@-@@@@@"@@G@@@7@@J@@@7@@@డT8check_approx_for_closure!A n !n @ $n %n "@@@k!t@@@<@@<:checked_approx_for_closure@@@<@@<@ *middle_end/flambda/simple_value_approx.mliAAAA@@3Simple_value_approx@@@@@@@= @@= @@@= @@= 310011111@mLE@F@G@@@@ఐ&approxUn #Vn )@y@@.@@@=L@=@@>@@,@@@=@Ġ"Okko / 9lo / ;@;"Ok=@@@<@G-value_closure@@@<&optionL(Variable!t@@@<@@@<&Symbol!t@@@<@@@<k5value_set_of_closures@@@<@D@AA@Af@@g@0@c@@@e@ఠ._value_closureBo / =o / K@OA@@9@@@=+g@ఠ+_approx_varCo / Mo / X@PA@@A>@@@=-@@@=,y@ఠ+_approx_symDo / Zo / e@QA@@CB@@@=/@@@=.@ఠ5value_set_of_closuresEp g up g @RA@@G@@@=0@@@wp g @@@@@=1@@@@@=2@@@డ2Var_within_closure#Map#mem2Var_within_closureq  q  @ q  q  @@q  q  @ @@2Var_within_closure#Map#key@@@A*@@A)@!t!a@>@@@A(@@A'$boolE@@@A&@@A%@@A$@6utils/identifiable.mlimm@@+Stdlib__Mape@6,@@@)@@@B@@B@"@@@HL@B@@@B@@B!@@@B@@B@@B321122222@@@@@@@{t@u@v@@@@ఐ\+project_var^q  _q  @@@r@@@Ba@B_@#varjq  kq  @3#var}@@@2Var_within_closure!t@@@@@B3'closureY!t@@@@@@ @Aihjih@@OH@3*closure_id*Closure_id!t@@@@@A@Ajj@@]I@(@Akk@@aJ@;.@@@@@BbM@B`U@@ఐР5value_set_of_closuresr  r  @[@@@@@H@Hi@*bound_varsr  r  @3*bound_vars#@@@:2Var_within_closure#Map!t@@@:@@@:@@A'3.function_decls5function_declarations@@@:@@@@@@@{@3)free_vars[#Map!t'Flambda.specialised_to@@@:@@@:@@B@@4@@}@30invariant_params6&Stdlib$Lazy!t|#Map!t#Set!t@@@:@@@:@@@:@@CA@@575o@@~@3)recursiveX"$Lazy!t#Set!t@@@:@@@:@@DW@@prp@@@3$sizen8$Lazy!t#Map!t#intA@@@:@@@:@@@:@@@:@@Ey@@ @@ @@30specialised_args#Map!tq.specialised_to@@@:@@@:@@F@@""$#"]@@!A@3*freshening*Freshening+Project_var!t@@@:@@G@@23@@1B@36direct_call_surrogates*Closure_id#Map!t !t@@@:@@@:@@H@@IJ@@HC@@@MN@@L|@@@̠J@@@HD@@@@@@@==H@Ġ%Wrongs  s  @;%Wrong0@@@@AA@Ai??j?@@@@h@@@  @@s@@@=6`@@v@@@=7c@@@ภs  s  @@@@%k@@@Ant  @@@@@73@q@@@Ġ/Project_closureu  u  -@;/Project_closure@/project_closure@@@ @AA@D@AF  F  !@@@S@ఠ/project_closureu  .u  =@LA@@@@@73@@@@@@@@@@@7@@"@@@7@@@డ, 'strict_check_approx_for_set_of_closures!Av A Uv A V@ v A Wv A ~@@@@@@<@@< )strict_checked_approx_for_set_of_closures@@@<@@<@===E=s@@@@@@@@@H@@H@@@H@@H3        @@G@@A@B@@@@ఐѠ&approx (v A  )v A @L@@@@@HL@H@@9@@*@@@H@Ġ"Ok >w   ?w  @;"Ok;@@@<@͠!t@@@<@@@<@@@<@B@AA@A<< <=@@@@ఠ$_var aw   bw  @ nSA@@@@@H@@@HQ@ఠ5value_set_of_closures sw   tw  @ TA@@@@@H_@@@= {w  @@u@@@Hd@@x@@@Hg@@@డ#Set#mem(Variable x   x  @  x   x  @@ x   x  @ @@_#Set#elt@@@K@@K@ !t@@@K@@K$boolE@@@K@@K@@K@ll@@+Stdlib__Setd@-#@@@ @@@K@@K@@@@K@@K@@@K@@K@@K3        @wp@q@rf_@`@a@@@@డ*Closure_id&unwrap*Closure_id x   x  @  x   x  @@@*Closure_id!t@@@L@@L(Variable!t@@@L@@L @ 1middle_end/flambda/base_types/closure_element.mliVV@@/Closure_elementA@#@@@@@@L2@@L1@@@L0@@L/D@@ఐG/project_closure !x   "x  @@@]@@@L?@L=X@*closure_id -x   .x  @3*closure_idh@@@!t@@@@@A3/set_of_closures !t@@@@@@ @AjWkW@@A@@AnXoX @@B@+@@\@@@L;N@L@N@L>@@ Tx   Ux  @@@@@LAN@L9@@డ#Map$keys(Variable oy   py  @  sy   ty  @@ xy   yy  !@ @@;!a@$@@@@@&Stdlib#Set$MakeK!T!t@@@@@@@,Identifiable]@+!@@@Yw4function_declaration@@@QSM@Q9@@@Q8@@Q7!@@@Q6@@Q5@@ఐG5value_set_of_closures y  " y  7@@@(@@@QQ@QO@.function_decls y  8 y  F@@@@@@QT@QP@$funs y  G y  K@3$funs@@@:[#Map!t>@@@:@@@:@@C3/is_classic_mode$boolE@@@:@@@ @@vxv@@i@32set_of_closures_id2Set_of_closures_id!t@@@:@@A@@@@j@36set_of_closures_origin,6Set_of_closures_origin!t@@@:@@B%@@@@k@:@@@@l@Y@@@:s@@@QRF@@ y   y  L@@@@@QDL@@@@U@@@HP@Ġ%Wrong +z M W ,z M \@;%Wrong@@@@AA@A<<<<@@@@@@  @@.@@@H@@1@@@H @@@ภ @z M ` Az M e@@@@%(@@@A Dv A I E{ f q@@3 / . . / / / / /@+@@@Ġ;Move_within_set_of_closures Q| r z R| r @;;Move_within_set_of_closuresh@ $;move_within_set_of_closures@@@ @AB@D@AG " $G " `@@@ )T@ఠ$move g| r  h| r @ tMA@@@@@73 W V V W W W W W@@@@@@@@@@@7@@@@@7@@@డ 8check_approx_for_closure!A }   }  @  }   }  @@e@@@e@@@Q@@Qb@@@Q@@Q3        @6/@0@1@@@@ఐM&approx }   }  @Ȱ@@}@@@QL@Q@@(@@{@@@Q@Ġ"Ok ~   ~  @Oఠ-value_closure ~   ~  @ UA@@T@@@Q3@ఠ+_approx_var ~   ~  @ VA@@\Y@@@Q@@@QE@ఠ+_approx_sym ~   ~  @ WA@@^]@@@Q@@@QW@ఠ6_value_set_of_closures      4@ XA@@b@@@Qe@@@C   5@@@@@Qj@@@@@Qm@@@డ+%equal*Closure_id B   B  @  B   B  @@@*!T!t@@@K@@K@  @@@K@@K$boolE@@@K@@K@@K@6utils/identifiable.mlijcmjc@@/Stdlib__Hashtblb@(#@@@ @@@Q@@Q@@@@Q@@Q@@@Q@@Q@@Q3 3 2 2 3 3 3 3 3@@@|@}@~rk@l@maZ@[@\@@@@ఐ-value_closure _B   `B  @@@@@@R@R@*closure_id kB   lB  @3*closure_id@@@:!t@@@:@@A3/set_of_closures O@@@:@@@@AGH/@@Fg@@AK02L0L@@Jh@(@@l@@@RM@RB@@ఐ1$move B   B  @@@G@@@R@RV@*start_from B   B  @3*start_fromR@@@#!t@@@@@A3'closure  !t@@@@@@ @A ` `4@@ D@3'move_to8!t@@@@@B@A boq bo@@ F@@A aRT aRn@@ E@7*@@@@@RM@R@@0@@ @@@Q@Ġ%Wrong C   C  $@G@@@@@@@QQ@@@@@QT@@@ภɰ C  ( C  -@@@@\@@@A }   D . 9@@@3        @_@@@Ġ%Field E : B E : G@;%Field@#intA@@@  !t@@@ @BC@D@A ;H a c <H a ~@@@ U@ఠ+field_index E : I E : T@ ,NA@@@@@7J@@ )E : V *E : W@@@@@7R@@@. /E : X@@ l@@@7W@@ o@@@7Z@@@డ y6check_approx_for_block!A EF \ j FF \ k@  IF \ l JF \ @@@%@@@<|@@<{(8checked_approx_for_block@@@@Ġ%Wrong G   G  @;%Wrong;@@@ H  @@@@@RW@@@@@RX@@@డ X"&&I  I  @@$boolE@@@V@@U@ @@@T@@S@@@R@@Q@@P(%sequandBA @@@@*stdlib.mli@@ ]@%$@@@"@@@Rh@@Rg@@@@Rf@@Re@@@Rd@@Rc@@Rb3!  !!!!!@g`@a@bZS@T@U@@@@డ ">=II  JI  @@#intA@@@@@@ @@@@@$boolE@@@@@@@@ )utils/int_replace_polymorphic_compare.mliFF@@?Int_replace_polymorphic_compareE@"!@@@@@@R@@R@@@@R~@@R}@@@R|@@R{@@RzD@@ఐg+field_indexI  I  @@@=@@@RN@RN@RX@@@I  I  @@C@@@RN@RN@Rh@@ @@@@@Rx@RN@Rp@@డ !<I  I  @@k@@@@@@s@@@@@i@@@@@@@@gCBBhCBb@@fB@@@@@@@R@@R@@@@R@@R@@@R@@R@@R@@ఐ̠+field_indexI  I  @@@7@@@RN@RN@R@@డ X%Array&lengthI  I  @  I   I  @@@%arrayJ!a@T@@@T@@T#intA@@@T@@T-%array_lengthAA @@@)array.mliaa@@-Stdlib__ArrayA@)$@@@! @@@VN@V@@@V@@V@@@V@@V@@ఐb&fieldsHI II @@@>@@@VO@VO@V@@O @@@@@R@VO@V#@@q@@M@@@Rv@VN@R+@@@@,@@@AeF \ d@@@@@Agl@@ @@@W73TSSTTTTT@ @@@ $@@ @ "%@@ @ &@@ D@pc#;qI @@@ @@@@@ @@@@@G@W=G@W9 p@@ఐ +projectionsJ  @  @@ ] @@  @@ 1 }@  A@ wC@WK @A@ @  @ 2Aఠ,analyse_exprL!L-@[A@@/which_variables c \.specialised_to@@@lC@W@@@WC@WM@@W\@'Flambda!t@@@r C@WQ@@W[@ @@@rYC@WU@ @@@lC@WV@@WZ@@WY@@WX3@ t  @ @ @@@࣠77A;L/L>@\A@@=3@MHF@@WN@:@@WR@2@-@@WWD@WS@@WTD@WO@@WPD@WL@[@\@@@@L.@@$exprAL?LC@]A@@Q3@'2f@*@+@@@@@@@ఠ+projectionsMFLMFW@%^A@@ #ref @@@WzF@Wq@@@WxF@Wm3@!-t@$@%@@@డ#ref5MFZ6MF]@@!a@@@0"@@@/@@.,%makemutableAA)@@@'hh(h@@ 7@@@@.@@Wr31@@@Wp@@Wo,@@డ #Set%empty*ProjectiongMF^hMFh@ kMFilMFl@@pMFmqMFr@ @C@@@ @ @ E@@@TP@@E @@\Q@A@{MFH @@@ఠ4used_which_variablesNv|Nv@_A@@n@@@WF@W@@@WF@W{3~}}~~~~~@m|@}@~@@@డ#refNvNv@l@@@@@W@@@W~@@W}@@డ #Set%empty(VariableNvNv@ NvNv@@NvNv@ @@@@J<@@E@@@?;@@0 @@E<@A@Nvx @@@ఠ3check_free_variableOO@`A@@@ 4@@@WF@W@@W@@@X(F@W@@WF@W3@^rk@l@m@@@࣠@#varAOO@ aA@@3@,O RMT@@@@@  @@డ }#Map#mem(VariableP P@ #P$P@@(P)P@ @@ {@@@S@@R@!a@@@@Q@@P$boolE@@@O@@N@@M@ @ {e@(@@@ @@@W@@W@ @@@W@@W@@@W@@W@@W3BAABBBBB@Vbu@Y@Z@@@@ఐi#varfPgP@ @@@@ఐ/which_variablessPtP@j@@@@X@@@@@WH@W$@డ":=QQ!@@o!a@@@@9@@8@ @@7$unitF@@@6@@5@@4*%setfield0BA@@@@@@ @#"@@@@@@WG@W@@@W@@W@ @@W!@@@W@@W@@Wd@@ఐA4used_which_variablesQ Q@հ@@!@@@WH@WH@Wy@@డD#Set#add(VariableQ"Q*@ Q+Q.@@Q/Q2@ @@S@@@JC@@JB@O@@@JA@@J@R@@@J?@@J>@@J=@J@GF@ @@@f@@@W@@W@b@@@W@@We@@@W@@W@@W@@ఐ$#var!Q3"Q6@Ȱ@@=@@డ!!0Q71Q8@@!a@@@@3@@2@@1'%field0AA$@@@"#@@2@@@@.@@@WI@X#I@X@@@X@@X@@X@@ఐ۠4used_which_variables0aQL@n2@@I@@@XJ@X"J@X @@< @@@@ @@@@@W@@qPi@@H@W@@uPm@@@wnA@F@X*u@A@r@@ఠ(for_exprTZ`TZh@bA@@@>$expr@@@X2F@X,@@X-@@@Y,F@X.@@X/F@X+3@@@@@@࣠@$exprA@TZjTZn@@@@@X33@/TZ\nOm@@@@  @cA'г*'FlambdaTZqTZx@1TZyTZ}@@@9@@@X0 @@TZiTZ~@@@@"@@@@ఐ5$exprUU@3@6@(@@O@@@X73@5B@@@Ġ#VarVV@;#Var !t@@@(v@ !t@@@(T@A@AN@A ]AC ]AV@@@ i@ఠ#var V V@dA@@ !t@@@XKK@X@3@6@@@@@* @@@@@XA@@@Ġ+Let_mutable$W%W@;+Let_mutable5@+let_mutable@@@(V@ABAN@A _km _k@@@$k@ঠ-initial_value<W=W@3-initial_value@@@(2@@@(@@A3#var 0Mutable_variable!t@@@(@@@ @A    @@FJ@3-contents_kind&Lambda*value_kind@@@(@@B@A( = ?) = a@@TL@3$body%r@@@(@@C"@A1 b d2 b m@@]M@@A5  !6  <@@aK@k#varuWvW@eA@@hb@@@zW{W@@U@@@XML@XLj@@@^@@@@@XNn@@n@@ @@@@@XQr@@@ఐ3check_free_variableXX@@@@@@@Y%@@Y$@@@Y#@@Y"3@@@@@@@ఐ#varXX@ @@@@@Y4J@Y3@@#@@ @Ġ%Apply] ]@;%Apply@%apply@@@(W@ACAN@A``@@@l@@]]@@@@@XZ@@@@@H@@@X[@@K@@@X\@@@ภ"()]]@;pz@@@N@@@@A@@A@@s@ @@W@Ġ$Send^^"@;$Send@$send@@@(X@ADAN@Aaa@@@m@ঠ$meth^%^)A3$meth@@@(L!t@@@(G@@A3$kind )meth_kind@@@(F@@@ @Az  z  @@S@3#obj !t@@@(H@@B@A|  |  @@%U@3$args$$listK!t@@@(J@@@(I@@C(@A }   }  @@8V@3#dbg7)Debuginfo!t@@@(K@@D6@A~  ~  @@FW@@A{  {  @@JT@ఠPQPO@ifA@J@@@Xi3KJJKKKKK@@@@#obji^+j^.ACఠ@{gA@G@@@Xm@$argsz^0{^4AHఠ@hA@LI@@@Xs@@@Xr'@@A^#^9@@@@@XuJ@Xt/@@@@@@@@Xv3@@@@@Xw6@@@ ఐƠ3check_free_variable_=C_=V@ @@@@@@YE@@YD@@@YC@@YB3@YV@X@WHE@G@F85@7@6@@@@ఐb$meth_=W_=[@@@@@@YTK@YS@@'@@@@@Y]J@YL@ ఐ3check_free_variable`]c`]v@@@@@,@@@Yc@@Yb@@@Ya@@Y`7@@ఐ#obj`]w`]z@>@@A@@@YrK@YqI@@ @@@@@Y{J@YjO@డ_$List$iter a| a|@ a|a|@@@@!a@[@@\$unitF@@@\@@\@@\@$listK@@@\@@\@@@\@@\@@\@(list.mli@@,Stdlib__ListU@0+@@@@@@@^I@^@@^)@@@^@@^@@^@&@@@^@@^#@@@^@@^@@^@@ఐ3check_free_variableaa|ba|@ǰ@@@@@@^@@^}@@@^@@^@@ఐ$argsxa|ya|@İ@@U>@@@^J@^J@^@@x @@J@^@@@@@@@Ġ&Assignbb@;&Assign@&assign@@@(Y@AEAN@Afbgb@@@n@ঠ)new_valuebbA3)new_value@@@(E!t@@@(D@@A3.being_assigned q!t@@@(C@@@ @At  t  9@@P@@Au : <u : S@@Q@ఠ#$#"@iA@@@@X3@@@@@Abb@@@@@@XJ@X @@@I@@L@@@X @@O@@@X@@@ఐ 3check_free_variablecc@P@@@<@@@^@@^@@@^@@^3@/,@.@-@@@@ఐ6)new_valuecc@ @@T@@@_J@_@@#@@x@Ġ,If_then_elsedd@;,If_then_else,@!t@@@(Z4@@@([8@@@(\@CFAN@Acc@@@$o@ఠ#var:d;d@GjA@@#!t@@@XM@X3/../////@e@@@@JdKd@@Y@@@X @@RdSd@@a@@@X@@@=Xd@@@@@X@@@Ġ&Switchde ee @;&Switchu@L!t@@@(]f&switch@@@(^@BGAN@A?d@d @@@kp@G#vare e @kA@@FK@X?@@e e @@@@@XG@@@*e @@@@@XL@@L@@x@@@@@XP@Ġ-String_switchf%f2@;-String_switch@c@@@(_q@&stringQ@@@(b@@@@(c@@(a@@@(`@@@(e@@@(d@CHAN@Ae e J@@@q@#varf4f7@lA@@@@f9f:@@1@0@@@X@@@@X@@X@@@X@@f<f=@@1@@@X@@@X@@@Wf>@@g@@@X@@@@@@k@@@X@@@ఐ)3check_free_variablegBHgB[@l@@@X@@@_@@_"@@@_@@_ 3@3@@@@@@ఐ栐#var gB\!gB_@ @@p@@@_J@_@@#@@@Ġ,Static_raise3h`f4h`r@;,Static_raiseD@0Static_exception!t@@@(f (!t@@@(h@@@(g@BIAN@Agg@@@Br@@Th`tUh`u@@@@@X3BAABBBBB@x@@@ఠ$argsah`wbh`{@nmA@@$#@@@X@@@X@@@:mh`|@@@@@X@@@@@X@@@డ$List$iterii@ ii@@u@@@@@@@_SI@_.@@_2v@@@_1@@_0@@_/@s@@@_-@@_,p@@@_+@@_*@@_)3@IB@C@D@@@@ఐԠ3check_free_variableii@@@@@@@_O@@_N@@@_M@@_L@@ఐg$argsii@$@@A@@@_BJ@_VJ@_T/@@S @@?0@Ġ#Forjj@;#For@(for_loop@@@(u@AMAN@Alfhlfy@@@v@ঠ*from_valuejjA3*from_value@@@(!t@@@(@@A3)bound_var !t@@@(@@@ @AV??V??1@@f@3(to_value!t@@@(@@B@AX?M?OX?M?e@@ h@3)direction$(Asttypes.direction_flag@@@(@@C#@AY?f?hY?f?@@i@3$body29@@@(@@D,@AZ??Z??@@$j@@AW?2?4W?2?L@@(g@ఠFGFE@GnA@@@@@X_@(to_valueFjGjA8ఠ@XoA@<@@@Xp@@ARjSj@@s@@@XJ@Xx@@@|@@@@@X|@@@@@X@@@ ఐ3check_free_variablekklk@Ѱ@@@@@@_`@@__@@@_^@@_]3a``aaaaa@B?@A@@2/@1@0@@@@ఐJ*from_valuekk@@@@@@_oK@_n@@%@@@@@_xJ@_g@ఐ3check_free_variablell@@@@@@@_}@@_|@@@_{@@_z3@@ఐg(to_valuell@;@@@@@_J@_E@@ @@)J@_H@V @@,I@Ġ#Letm!m$@;#Let@(let_expr@@@(U@AAAN@A^WY^Wj@@@j@@m%m&@@@@@X @@@@@\@@@X @@ @Ġ,Static_catchm)m5@;,Static_catch@!t@@@(i̠@!t@@@(l@*value_kind@@@(m@@(k@@@(j'@@@(n+@@@(o@DJAN@Ahi/@@@s@@)m6*m7@@0@@@XM@@@.@-@@@X@*@@@X@@X@@@X_@@@O@@@Xd@@@T@@@Xi@@@U!@@@@@Xm@@m@@|%@@@@@Xq@Ġ%WhileZm:[m?@;%Whilek@l@@@(sp@@@(t@BLAN@A0kSU1kSe@@@\u@@nm@omA@@}@@@Y@@@@@@Y@@@ @@@@@Y@@@@@@@@@Y@Ġ(Try_withmDmL@;(Try_with@@@@(pt!t@@@(q@@@(r@CKAN@Aej02fj0R@@@t@@mMmN@@@@@Y @@@@@@Y @@ @@@@Y @@@+@@$@@@Y@@@@@@(@@@Y@Ġ2Proved_unreachablenOUnOg@;2Proved_unreachable@@@@AN@Amz|mz@@@w@@@  @@=@@@Y@@@@ @@A@@@Y@@@ภnOk'@@(@@E@@@AU*@@G3@@@@,A@WF@e3@A@0@@ఠ)for_namedpsyps@rA@@@%named@@@eF@e@@ee@@@gF@e@@eF@e3@h}@~@@@@࣠@%namedA@psps@@@@@e3@/psuew@@@@  @'sA'г*'Flambda(ps)ps@1,ps-ps@@@9@@@e @@4ps5ps@@@@"@@@@ఐ5%namedAqBq@3@6@(@@O@@@e310011111@5B@@@Ġ+Project_varTrUr@;+Project_varN%named@@@(@T+project_var@@@(@AH@K@A-.@@@Y@@ఠ+project_varorpr@|tA@@@@@e3_^^_____@.@@@@@$@@@@@e@@@@@e@@డ#Map#mem(Variabless@ ss@@ss@ @ q @@@@@@gG@@gF@c C@kC@j@C@iLC@hC@gC@gE@@@gD@@gC x@@@gB@@gA@@g@3@sQJ@K@L@@@@ఐZ+project_varss@@@n@@@g]@'closuress@[ @@#@@@gbJ@g`!@@ఐ /which_variablesss@ ܰ@@ B.@@Y@@ r@@@gJ@gS4@డM q st't)@ p@@@ ߠ@@@gI@g@@@g@@g@ @@g q@@@g@@g@@gS@@ఐ +projectionstt&@ @@ !@@@gJ@gJ@gh@@డ#Set#add*Projection6u*27u*<@ :u*=;u*@@@?u*A@u*D@ @@@@@ @@ @@@@ @@  @@@ @@ @@ @{@wF@ @@@@@@g@@g@0@@@g@@g3@@@g@@g@@g@@ภ+Project_varpu*Fqu*Q@ఐ +project_varzu*R{u*]@@@@@@g@@u*Eu*^@@@@@gK@g@@డ d fu*_u*`@ c@@@ |p@@@gK@gK@g@@@g@@g@@g@@ఐ +projectionsu*k@ @@ @@@gL@gL@g@@' @@@@ @@@@@g@@@@@Ġ/Project_closurevlrvl@;/Project_closureu@/project_closure@@@(~@AF@K@Akmk@@@~@ఠ/project_closurevlvl@uA@@@@@e3@@@@@@@@@@@e@@@@@e@@డ^#Map#mem(Variableww@ ww@@ w w@ @  @@@\@@@g@@g@Ӡn@@@g@@g @@@g@@g@@g3@F?@@@A@@@@ఐO/project_closure.w/w@@@c@@@h@/set_of_closures8w9w@ @@@@@hJ@h!@@ఐ m/which_variablesJxKx@ A@@ .@@N@@ @@@h/J@h4@డ ֠ ذ[y\y@ հ@@@ D6@@@hGI@h5@@@h7@@h6@ @@h4 @@@h3@@h2@@h1S@@ఐ d+projections|y}y@ @@ e!@@@hEJ@hHJ@hFh@@డ#Set#add*Projectionz z@ zz@@zz@ @e @@@@@@hT@@hS@@@@hR@@hQ@@@hP@@hO@@hN@@ภ/Project_closurezz-@ఐ/project_closurez.z=@@@@@@h{@@zz>@@@@@hlK@hy@@డ<  z?z@@ @@@ Π@@@hjK@hK@h@@@h@@h@@h@@ఐ 預+projectionszK@ k@@ @@@hL@hL@h@@' @@@@r @@@@@hh@@@@@Ġ;Move_within_set_of_closures{LR{Lm@;;Move_within_set_of_closures@;move_within_set_of_closures@@@(@AG@K@A@@@@ఠ$move1{Ln2{Lr@>vA@@@@@e3!  !!!!!@@@@@@@@D@@@e@@G@@@e@@డ#Map#mem(VariableR|sS|s@ V|sW|s@@[|s\|s@ @ 3 @@@@@@h@@h@%@@@h@@h /@@@h@@h@@h3ZYYZZZZZ@*F?@@@A@@@@ఐO$move|s|s@@@c@@@h@'closure|s|s@ڰ @@@@@hJ@h!@@ఐ /which_variables|s|s@ @@ .@@N@@ )@@@hJ@h4@డ ( *}}@ '@@@ @@@hI@h@@@h@@h@ @@h (@@@h@@h@@hS@@ఐ +projections}}@ 9@@ !@@@hJ@hJ@hh@@డ@#Set#add*Projection~~@ ~~@@~~@ @ @@@:@@@h@@h@@@@h@@h@@@h@@h@@h@@ภ;Move_within_set_of_closures~~@àఐ$move~~@@@@@@i&@@%~&~@@e@@@iK@i$@@డ  7~8~@ @@@ @@@iK@iAK@i4@@@i6@@i5@@i3@@ఐ;+projectionsS~@ @@;@@@i=L@i@L@i>@@' @@@@r @@.@@@i@@@@g@Ġ$Primmn@;$Prim@2Clambda_primitives)primitive@@@( Eb!t@@@(@@@( >!t@@@(@CI@K@AWX8@@@C@Ġ&Pfield#@;&Pfield2Clambda_primitives)primitive@@@f@#intA@@@fe4immediate_or_pointer@@@ff,mutable_flag@@@fg@CClr@A !middle_end/clambda_primitives.mlih?Ah?v@@@[@ఠ+field_indexȠ%0@yA@@#@@@f3@@@@@23@@%@@@f @@56@@'@@@f@@@E7@@m@@@f@Ġ":::>A;:MJ@@U@Dj@@@i}@ఠ/set_of_closuresˠ  @ |A@@@@@f3 o n n o o o o o@>@@@@@@@@@@f@@@@@f@@@@ఠ2aliasing_free_vars͠  @ ~A@@Y@@@j5J@i@@@jJ@i3        @`.'@(@)@@@డ#Map&filter(Variable # +@  , /@@ 0 6@ @@@@@@ @@@!a@@@@@@@@@@@@@@@@@@@@@@@@@@%@!_@2(@@@@@@@@i@@i@[@@i!@@@i@@i@@i@@i@e@@@i@@i i@@@i@@i@@i3        @d@@@@࣠@%paramA@!<!=@@e@@@j+v@@@@'spec_toA@!'?!(F@@|@@@j6@  @!9A г'Flambda!:I!;P@!>Q!?_@@@@@@j3 @@!F>!G`@@@@@@@డ#Map#mem(Variable![dp!\dx@ !_dy!`d|@@!dd}!ed@ @< @@@@@@jB@@jA@.@@@j?@@j>8@@@j=@@j<@@j;3!c!b!b!c!c!c!c!c@\T@W@O@@@@ఐe'spec_to!d!d@@@@@@jZ@jX@#var!d!d@@@@@@j[N@jY#@@ఐʠ/which_variables!d!d@@@0@@P@@@@@jwN@jN6@!7!d@@@@@@j"@@j!@!@@j @@@j@@j@@jK@jK@j@@ఐR/set_of_closures!!@*@@h@@@j@j@)free_vars!!@3)free_varss@@@(#Map!t@@@(@@@(@@A3.function_decls5function_declarations@@@(@@@@@$$$$@@N@30specialised_args#Map!t@@@(@@@(@@B@@(6(8(6(i@@P@36direct_call_surrogates/#Map!t!t@@@(@@@(@@C/@@2223@@Q@@@'''';@@O@WJ@@DK@j@@@j#@@tQ@@@A@"0S@@@ఠ9aliasing_specialised_argsР";"<@"H@A@@.specialised_to@@@jJ@j@@@jJ@j3"6"5"5"6"6"6"6"6@@@@@@డ#Map&filter(Variable"a"b@ "e"f@@"j"k @ @ @@@@@@@j@@j@9@@j@@@j@@j@@j@@j@ ?C@@@j@@j CG@@@j@@j@@j3"u"t"t"u"u"u"u"u@?@@@@࣠@A@""@@@@@jP@@@@'spec_toA@""@@c@@@j_@  @"AAi гl'Flambda""&@s"'"5@@@{@@@jw @@""6@@@{@@@@డ9#Map#mem(Variable":F":N@ ":O":R@@":S":V@ @ @@@7@@@k@@k@ A@@@k@@k@@@j@@j@@j3""""""""@\T@W@O@@@@ఐe'spec_to# :W# :^@@@@@@k@k@#var#:_#:b@@@e@@@kN@k#@@ఐJ/which_variables#':c#(:r@@@0@@P@@R@@@k9N@k6@#1 #2:s@@@@@@j@@j@@@jg@@@j@@j@@jK@kHK@kB@@ఐҠ/set_of_closures#Qt~#Rt@@@@@@kX@kU@0specialised_args#]t#^t@c@@bK@kW@@@kV@@ @@&@A@#h @@@ఠ-aliasing_varsӠ#s#t@#BA@@!4@@@kJ@ky@@@kJ@kr3#k#j#j#k#k#k#k#k@6MF@G@H@@@డ#Map.disjoint_union(Variable##@ ##@@##@ @"eq&optionL@!a@[@@@@@$boolE@@@@@@@@@@@@%print@E&Format)formatter@@@@@@'@@$unitF@@@@@@@@@@@@@!5@@@@@@!=@@@@@!A@@@@@@@@@@@@ /@^W@aW@@TR@@@k@@@kK@@@k@@k@@k@@@k@@kHe@F@@@k@@k@@@kB@@@k@@k@@k@@@k@@k~@!ߠ@@@k}@@k|@!@@@k{@@kz!@@@kx@@kw@@kv@@ku@@kt@ภ$None#;#t##~@@W@@@@AA@A$@@#w@$@@@@k@@@k@@@k@@k@@k@@@k@@k@ภ$@$@@@@@k@@k@@@k@@@k@@k@@k@@@k@@k@@ఐࠐ2aliasing_free_vars$x$y@+@@"6@@@k@@ఐN9aliasing_specialised_args$$@@@"GK@k@@@k@@ @@@A@$ @@డ"#not$&/$&2@@@@@O@@N@@@M@@L(%boolnotAA@@@LLLt@@ \@@@@@@@l@@l@@@l@@l3$$$$$$$$@AUN@O@P@@@@డ!7#Map(is_empty(Variable$&4$&<@ $&=$&@@@$&A$&I@ @@"!a@@@@H@@G@@@F@@E@!0@!,c@@@@"T@@@ldu%?dx@@%Cdy%Dd}@ @@@!@@@@@@!a@Q@@$unitF@@@@@@@@@@#@@@@@@@@@@@@@!@![@4*@@@@!@@@l_@@l^@#.4function_declaration@@@lI@lX@@l]+@@@l\@@l[@@lZ@@lY@#G@@@lW@@lV(@@@lU@@lT@@lS@@࣠@A@%d%d@@!@@@l3%%%%%%%%@@@@@@@(fun_declA@%d%d@@1@@@l@  @%CA7 г:'Flambda%d%d@A%d%d@@@I@@@l( @@%d%d@@@P,@@@@@@@% % @@C@l3%%%%%%%%@91@4@,@@@@ఠ$usedՠ%%@%DA@@"C@meC@l@@@@@@ @@l@ఐd,analyse_expr&!&-@@@ca@@l@S@@l@I@D@@l@@l@@l3@qఐ-aliasing_vars&M&Z@Y@@#٠t@@@lD@@ఐ(fun_decl&..&/6@P@@!)4function_declaration@@@l@lZ@$body&<7&=;@3$body @@@(P@@@(@@B/3.closure_origin .Closure_origin!t@@@(@@@ @@!-88!-884@@!FV@3¶ms!)Parameter!t@@@(@@@(@@A@@!-.8587!..858Q@@!YW@*3.free_variables*!N#Set!t@@@(@@C,@@!;288!<288@@!gY@3,free_symbols8&Symbol#Set!t@@@(@@D<@@!K699!L699@@!wZ@3$stubH$boolE@@@(@@EH@@!W:::!X:::@@![@3#dbgTK!t@@@(@@FT@@!c?;;!d?;;@@!\@3&inline`I0inline_attribute@@@(@@G`@@!oA<<!pA<<@@@!]@3*specialiselU4specialise_attribute@@@(@@Hl@@!{C@@8JJ@m@@@m@@(&^(w@@@mJ@lp.@@(&,@@0@@@@R@m @@@ @@/@Ġ$Prim((@ s@((@@ u@@@f@ఠ$vars̠((@(}A@@ z y@@@f@@@f@@()@@ z@@@f@@@%)@@@@@f@@@@@f@@@డ'l$List$iter))@ ))@@ @@@@%v@@@mI@m@@m@@@m@@m@@m@ @@@m@@m@@@m@@m@@m3)%)$)$)%)%)%)%)%@QJ@K@L@@@@ఐl3check_free_variable)I)J@@@@%@@@m@@me@@@m@@m@@ఐo$vars)`)a@$@@=A@@@mJ@mJ@m/@@S @@p0@Ġ&Symbol))@;&Symbol2@!t@@@(w@A@@K@A$[q$\q@@@$x@@))@@@@@gV@@@@@@@@gZ@@Z@Ġ%Const))@;%ConstV@$%const@@@(x@AA@K@A$~r$r@@@$y@@))@@@@@gy@@@@@@@@g}@@}@@@ @@@@@g@Ġ/Allocated_const))@;/Allocated_const}@/Allocated_const!t@@@(y@AB@K@A$s$s<@@@$z@@))@@@@@g @@@@@@@@g @@@@j @@@@@g@Ġ,Read_mutable))@;,Read_mutable@!t@@@(z@AC@K@A$t=?$t=c@@@${@@**@@@@@g@@@@@@@@g@@@@ @@"@@@g@Ġ1Read_symbol_field*# *$@;1Read_symbol_field@!t@@@({#intA@@@(|@BD@K@A$udf%ud@@@%+|@@*=*>@@@@@g@@@@@@g@@@% @@R@@@g@@@@@@V@@@g@Ġ+Project_var*W*X*@@*\+*],@@@@@g @@@ @@l@@@g!@@@@ @@p@@@g"!@Ġ/Project_closure*q/*r>@@*v?*w@@@@@@g&3@@@ @@@@@g'7@@7@@ @@@@@g(;@Ġ;Move_within_set_of_closures*AG*Ab@ p@*Ac*Ad@@ r@@@g,M@@@ @@@@@g-Q@@Q@@ @@@@@g.U@Ġ$Expr*ek*eo@;$ExprQ@@@@(@AJ@K@A%w9;%x9F@@@%D@@*ep*eq@@@@@g2r@@@@@@@@g3v@@v@@9 @@@@@g5z@@@ภ*eu@@@@@@@A*q@@3********@@@@A@F@n~@A@@ డ1Flambda_iterators-iter_toplevel1Flambda_iterators*}*}@ *}*}@@@@6!t@@@p@@p$unitF@@@p@@p@@p@@J%named@@@p@@p@@@p@@p@@p@X@@@p@@p@@@p@@p@@p@@p@ (middle_end/flambda/flambda_iterators.mliL  P s |@@1Flambda_iteratorsG@@;@@@@8@@@q@@q5@@@q@@q@@q@@2@@@q@@q/@@@q@@q@@q@@@@q@@q.@@@q@@q@@q@@q3+/+.+.+/+/+/+/+/@Fb[@\@]@@@@ఐР(for_expr+S}+T}@R@@@@@@r@@ro@@@r@@r@@ఐ)for_named+j}+k}@$@@@{@@@r.@@r-@@@r,@@r+1@@ఐ$expr+}+}@X@@>@@@@@@@r4F@r D@@ఠ+projections++@+GA@@)i@@@rCF@r53++++++++@W@@@డ)wy++@v@@@F@r8@@@r:@@r9@@r7@@ఐ+projections+@'@@@@@rAG@rDG@rB*@@" @@+@A@+ @@@ఠ4used_which_variables++@+HA@@"+@@@rSF@rE3++++++++@OH@I@J@@@డ*?++@@@@ѠF@rH@@@rJ@@rI@@rG@@ఐy4used_which_variables+@ @@@@@rQG@rTG@rR,@@" @@-@A@,  @@@ఐ+projections,,@:@@R3,,,,,,,,@>LE@F@G@@@@ఐR4used_which_variables,&!,'5@ @@\E@rZ@@@@@h@ @@r[@( @@V@k @@@U@@ @@@ 5@@@ @0@@ F@g@@ @@@@@A@@@rm@@@rl@@~@@rk@@rj@@riC@rdh@@@,LL&@@'@|@ఠ2from_function_decl,Y7;,Z7M@,fIA@@#env*F@@@rC@ro@@rp/which_variables*/*(@@@rC@r@@@rC@ru@@rv-function_decl*64function_declaration@@@rC@r{@@r|*^@@@s2C@r}@@r~C@rw@@rxC@rq@@rrC@rn3,{,z,z,{,{,{,{,{@@@@࣠66A:,7O,7R@,JA@@<3,,,,,,,,@M,77,!!*@@@@@,7N @==AA,7T,7c@,KA@@C3,,,,,,,,@ S@@@@@@,7S@;;A@,dl,dy@@=@@@r3,,,,,,,,@X@@@@@I  @,LAF гI'Flambda,d|,d@P,d,d@@@X@@@r @@"@@@]@@,dj,d@@@@ఠ+projections,,@-MA@@*@@@rG@r3,,,,,,,,@9E>@A@6@@@@ఠ4used_which_variables- - @-NA@@#a@@@rG@r@@ @@@@ @@r@ఐ,analyse_expr-#-$@@@@*@@@r@@@r@@r@{@@@r@@r@+ @@@r@#@@@r@@r@@r@@rE@ఐ/which_variables-N-O@@@R@@ఐ-function_decl-]-^@^@@/@@@r@rf@$body-i-j@-@@@@@rH@rH@rt@@Q @@@@n@@rH@r}@A@-}@@@ఠ+projections--@-OA@@+]@@@rG@r3-z-y-y-z-z-z-z-z@@@@@@@@ఐ+7known_valid_projections--@Ͱ@@++@@@r@@r++|@@@r@@r+s+o+f@@@r@@@r@@r+@@@r@@r@@r@@r-@+ఐ-#env--@@@f:@+ఐߠ+projections--@C@@+@@@rH@rH@rN@+ఐ:/which_variables--@"@@z[@@N@@_\@A@-@@డ+S#Set&filter*Projection. h j. h t@ . h u. h x@@.  h y.  h @ @+Q @@@@+Q@@@s@@s+O@@@s@@s@@s@+@@@s@@s+@@@s@@s@@s3.. . .....@@@@@@@࣠@*projectionA.6 h .7 h @.CPA@@+v@@@s@3.&.%.%.&.&.&.&.&@@@@@ @@@ఠ/projecting_from.J  .K  @.WQA@@+-@@@sPI@sD3.<.;.;.<.<.<.<.<@/&+@@@s?@ @!@@@డ+/projecting_from*Projection.f  .g  @ .j  .k  @@+(@@@+(@@@sI@@sH+R@@@sG@@sF%@@ఐO*projection.  .  @/@@+@@@sS5@@#@@96@A@.  @@డ,#not.  .  @ @@@ @@@s]@@s\ @@@s[@@sZ3........@O]V@W@X@@@@డ+#Set#mem(Variable.  .  @ .  .  @@.  .  @ @%% @@@%%@@@sn@@sm@%!@@@sl@@sk%@@@sj@@si@@sh5@@ఐ/projecting_from.  . !@?@@%A@@@sJ@sG@@ఐ蠐4used_which_variables. !. !@_@@%J@@@s|J@sJ@s[@@.  . !@@ \@@@sf@sJ@sze@@s @@,@@@@sI@sdk@@@@/ h / !@@@,T@@@s9@@s8,R@@@s7@@s6G@sG@s@@ఐ+projections/(!!@@@,@@@s4G@sG@s @@2@@@E@@@@@5@A@C@s@A@@@@-uA-b@-`-o@@-ZA->@-9-T@@-1l@]@@@@@3/./-/-/././././.@c@@@3Extract_projections@@@ H************************************************************************/OA@@/PA@L@ H /UBMM/VBM@ H OCaml /[C/\C@ H /aD/bD3@ H Pierre Chambart, OCamlPro /gE44/hE4@ H Mark Shinwell and Leo White, Jane Street Europe /mF/nF@ H /sG/tG@ H Copyright 2013--2016 OCamlPro SAS /yH/zHg@ H Copyright 2014--2016 Jane Street Group LLC /Ihh/Ih@ H /J/J@ H All rights reserved. This file is distributed under the terms of /K/KN@ H the GNU Lesser General Public License version 2.1, with the /LOO/LO@ H special exception on linking described in the file LICENSE. /M/M@ H /N/N5@ H************************************************************************/O66/O6@  CR-soon pchambart: should we restrict only to cases when the field is aliased to a variable outside of the closure (i.e. when we can certainly remove the allocation of the block) ? Note that this may prevent cases with imbricated closures from benefiting from this transformations. mshinwell: What word was "imbricated" supposed to be? (The code this referred to has been deleted, but the same thing is probably still happening). /W/`@ We could check that [move.move_to] is in [value_set_of_closures], but this is unnecessary, since [Closure_id]s are unique. /@ 9 C/A  @  CR-soon mshinwell: We don't handle [Apply] for the moment to avoid disabling unboxing optimizations whenever we see a recursive call. We should improve this analysis. Leo says this can be done by a similar thing to the unused argument analysis. /Y/\@ < We ignore projections from within nested sets of closures. //@ We must use approximation information to determine which projections are actually valid in the current environment, other we might lift expressions too far. //@ Z Don't extract projections whose [projecting_from] variable is also used boxed. We could in the future consider being more sophisticated about this based on the uses in the body, but given we are not doing that yet, it seems safest in performance terms not to (e.g.) unbox a specialised argument whose boxed version is used. / / . g@@-./boot/ocamlc)-nostdlib"-I&./boot*-use-prims2runtime/primitives"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I2middle_end/flambda"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-I%tools"-I'runtime"-I1otherlibs/dynlink"-I-otherlibs/str"-I4otherlibs/systhreads"-I.otherlibs/unix"-I8otherlibs/runtime_events"-c00 ;C:\builds\workspace\main\flambda\false\label\ocaml-mingw-32 >10/.-,+*)('&%$#"! @@0:/HI 8ʲ30 0 0 0 0 0 0 0 @0 @@/Allocated_const0/vVǟx(Asttypes0eT$BbRM dc,Backend_intf0󋚕LQ:X^r#5Build_path_prefix_map0DGl}%Y5Lhi8CamlinternalFormatBasics0|.e1R$|o0CamlinternalLazy0zY# #4#-2Clambda_primitives0|& %ZIǝz/Closure_element0ǔf#M*Closure_id0 (?$.Closure_origin0!Havl5"_*Cmi_format0`M{?w}@0Compilation_unit0Dl ]wN*Data_types0v\3,Svh)Debuginfo0_ |PooGq#Env0S B2)Export_id0CJ9DןRa7ݷ$E00䛌FOb5۾'Flambda0VJ͟0|Jٻb*Format_doc0uy@GmWUࠠ*Freshening0xW("-9wVԠ%Ident0>ЃzV)j⠠,Identifiable0]/*N .0E#X̕B,;x -Inlining_cost0i(wypP1 󰠠4Inlining_stats_types0)x0pukC\.0Dw\jۛv7Internal_variable_names0TbgѹG+L&Lambda0x_edT-uq,Linkage_name0tԈK1G)Load_path0,j " nn7ݠ(Location0nBɊOn?7~ؠ)Longident0wP q;ɡ$Misc0Bpg]?[q0Mutable_variable0CQᷧ$'Numbers0 q޷He+Outcometree0BuG^)= 9c )Parameter0zk^f2my19)Parsetree0v o[pY Y$Path0k.tbGmᠠ)Primitive0dU=\I/}*Projection02hS xj562Set_of_closures_id0LbO`ܩ&M6Set_of_closures_origin0!YA _XO %Shape0 M``ll/.0 c[k%S\KѠ0Static_exception0Jmyrqܒx-8ɞ&Stdlib0t0VoS%{<F:-Stdlib__Array0ѤT f:Pd.Stdlib__Buffer0,I[?z.Stdlib__Digest0#z25I*.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Either0HD ?|>.Stdlib__Format00FClW/Stdlib__Hashtbl0(L%bԠ-Stdlib__Int640q=cT?Q1ˠ,Stdlib__Lazy0$1mlࠠ.Stdlib__Lexing0^m|e,Stdlib__List0C|Z`>s䠠+Stdlib__Map0*4ɇ2ɠ%Subst0=aqT/!p+&Symbol03E?Y7(#Tag0&b rٍ.Type_immediacy00$ jbv\"k&%Types0"|Vȷ`X )Unit_info0'T Χ@aR2Var_within_closure0``ݗXFR⠠(Variable0?l猵eY(Warnings0Ef{&@@AWC  ð!!@!!..@@,G,Q@V`).&.0@//@OYoy@‘̰/Ƙ/@@&@ʰAK@ Б @#-@@5?//@"%"/@@P1ғ@u@r@@@A@@