Caml1999T037%01/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@@@@@@࣠@$exprATZjTZn@cA@г 'FlambdaTZqTZx@'TZyTZ}@@@/@@@X03@(CTZ\nOm@@@ @@TZiTZ~@@@< @@@@ఐ1$exprUU@J@@@X3@1@2@@N@@@X73@ A @@@Ġ#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    @@EJ@3-contents_kind&Lambda*value_kind@@@(@@B@A' = ?( = a@@SL@3$body%r@@@(@@C"@A0 b d1 b m@@\M@@A4  !5  <@@`K@k#vartWuW@eA@@hb@@@yWzW@@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@@@@@G@@@X[@@J@@@X\@@@ภ"()]]@;oy@@@N@@@@A@@A@@r@ @@V@Ġ$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 }   }  @@7V@3#dbg7)Debuginfo!t@@@(K@@D6@A~  ~  @@EW@@A{  {  @@IT@ఠPQPO@hfA@J@@@Xi3JIIJJJJJ@@@@#objh^+i^.ACఠ@zgA@G@@@Xm@$argsy^0z^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@>@@@@@@YrK@YqI@@ @@ @@@Y{J@YjO@డ^$List$iter a| a|@ a|a|@@@@!a@[@@\$unitF@@@\@@\@@\@$listK@@@\@@\@@@\@@\@@\@(list.mli@@,Stdlib__ListU@0+@@@@@@@^I@^@@^)@@@^@@^@@^@&@@@^@@^#@@@^@@^@@^@@ఐ3check_free_variable`a|aa|@ư@@@@@@^@@^|@@@^@@^@@ఐ$argswa|xa|@İ@@U>@@@^J@^J@^@@x @@J@^@@@@@@@Ġ&Assignbb@;&Assign@&assign@@@(Y@AEAN@Aebfb@@@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@@K@@@X @@N@@@X@@@ఐ 3check_free_variablecc@O@@@;@@@^@@^@@@^@@^3@/,@.@-@@@@ఐ6)new_valuecc@ @@S@@@_J@_@@#@@w@Ġ,If_then_elsedd@;,If_then_else,@!t@@@(Z4@@@([8@@@(\@CFAN@Acc@@@#o@ఠ#var9d:d@FjA@@"!t@@@XM@X3.--.....@e@@@@IdJd@@Y@@@X @@QdRd@@a@@@X@@@=Wd@@@@@X@@@Ġ&Switchce de @;&Switchu@K!t@@@(]e&switch@@@(^@BGAN@A>d?d @@@jp@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>@@f@@@X@@@@@@j@@@X@@@ఐ(3check_free_variablegBHgB[@k@@@W@@@_@@_!@@@_@@_ 3@3@@@@@@ఐ栐#vargB\ gB_@ @@o@@@_J@_@@#@@@Ġ,Static_raise2h`f3h`r@;,Static_raiseD@0Static_exception!t@@@(f '!t@@@(h@@@(g@BIAN@Agg@@@Ar@@Sh`tTh`u@@@@@X3A@@AAAAA@x@@@ఠ$args`h`wah`{@mmA@@$#@@@X@@@X@@@:lh`|@@@@@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@FnA@@@@@X_@(to_valueEjFjA8ఠ@WoA@<@@@Xp@@AQjRj@@s@@@XJ@Xx@@@|@@@@@X|@@@@@X@@@ ఐ3check_free_variablejkkk@а@@@@@@_`@@__@@@_^@@_]3`__`````@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@Ġ%WhileYm:Zm?@;%Whilek@l@@@(sp@@@(t@BLAN@A/kSU0kSe@@@[u@@mm@nmA@@}@@@Y@@@@@@Y@@@ @@@@@Y@@@@@@@@@Y@Ġ(Try_withmDmL@;(Try_with@@@@(ps!t@@@(q@@@(r@CKAN@Adj02ej0R@@@t@@mMmN@@@@@Y @@@@@@Y @@ @@@@Y @@@+@@#@@@Y@@@@@@'@@@Y@Ġ2Proved_unreachablenOUnOg@;2Proved_unreachable@@@@AN@Amz|mz@@@w@@@  @@<@@@Y@@@@ @@@@@@Y@@@ภnOk@@@@D@@@AU@@F3@@@@A@VF@e@A@@@ఠ)for_namedpsyps@rA@@@%named@@@eF@e@@ed@@@gF@e@@eF@e3@g|@}@~@@@࣠@%namedApsps@sA@г 'Flambdapsps@'!ps"ps@@@/@@@e3@(C+psu,ew@@@ @@/ps0ps@@@< @@@@ఐ1%named<q=q@J@@@e@1@2@@N@@@e3/../////@ A @@@Ġ+Project_varRrSr@;+Project_varL%named@@@(@R+project_var@@@(@AH@K@A+,@@@W@@ఠ+project_varmrnr@ztA@@@@@e3]\\]]]]]@.@@@@@$@@@@@e@@@@@e@@డ#Map#mem(Variabless@ ss@@ss@ @ o @@@@@@gG@@gF@a C@kC@j@C@iLC@hC@gC@gE@@@gD@@gC v@@@gB@@gA@@g@3@sQJ@K@L@@@@ఐZ+project_varss@@@n@@@g]@'closuress@Y @@!@@@gbJ@g`!@@ఐ /which_variablesss@ ڰ@@ @.@@Y@@ p@@@gJ@gS4@డK o qt't)@ n@@@ ݠ@@@gI@g@@@g@@g@ @@g o@@@g@@g@@gS@@ఐ +projectionstt&@ @@ !@@@gJ@gJ@gh@@డ#Set#add*Projection4u*25u*<@ 8u*=9u*@@@=u*A>u*D@ @@@@@ @@ @@@@ @@ @@@ @@ @@ @y@uF@ @@@@@@g@@g@.@@@g@@g1@@@g@@g@@g@@ภ+Project_varnu*Fou*Q@ఐ +project_varxu*Ryu*]@@@@@@g@@u*Eu*^@@@@@gK@g@@డ b du*_u*`@ a@@@ zn@@@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@@ww@ @ ߰ @@@Z@@@g@@g@Ѡn@@@g@@g @@@g@@g@@g3@F?@@@A@@@@ఐO/project_closure,w-w@@@c@@@h@/set_of_closures6w7w@ @@@@@hJ@h!@@ఐ k/which_variablesHxIx@ ?@@ .@@N@@ @@@h/J@h4@డ Ԡ ְYyZy@ Ӱ@@@ B4@@@hGI@h5@@@h7@@h6@ @@h4 @@@h3@@h2@@h1S@@ఐ b+projectionszy{y@ @@ c!@@@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@ i@@ @@@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@@@@ఠ$move/{Ln0{Lr@#Set#add*Projection~~@ ~~@@~~@ @ @@@8@@@h@@h@@@@h@@h@@@h@@h@@h@@ภ;Move_within_set_of_closures~~@ఐ$move~~@@@@@@i&@@#~$~@@c@@@iK@i$@@డ  5~6~@ @@@@@@iK@iAK@i4@@@i6@@i5@@i3@@ఐ9+projectionsQ~@ @@9@@@i=L@i@L@i>@@' @@@@r @@,@@@i@@@@f@Ġ$Primkl@;$Prim@2Clambda_primitives)primitive@@@( D`!t@@@(@@@( =!t@@@(@CI@K@AUV8@@@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;8KH@@U@:B@AA@A@@4ఠ#varɠ=@zA@@|@@@f2@Ġ"[] A;X@@@@AA@A@@W@@A@P@@@f@@@fC@@@9'@@@@@f@@@fL@ఠ$_dbgʠ@D@*{A@@@@@fZ@@@%E@@1@@@f_@@4@@@fb@@డ#Map#mem(Variable>FS?F[@ BF\CF_@@GF`HFc@ @ @@@@@@iN@@iM@@@@iK@@iJ@@@iI@@iH@@iG3FEEFFFFF@@@pj@k@lJC@D@E@@@@ఐx#varnFdoFg@@@@@@idJ@ic@@ఐ/which_variablesFhFw@w@@&@@F@@ @@@iJ@iZ,@డ {{@ @@@zl@@@iI@i@@@i@@i@ @@i @@@i@@i@@iK@@ఐ+projections{{@@@!@@@iJ@iJ@i`@@డ$#Set#add*Projection@ @@@ @ @@@@@@i@@i@@@@i@@i@@@i@@i@@i@@ภ%Field@ఐ?+field_index  @@@@@@iK@iK@i@ఐ#var  @@@@@@iK@iK@i@@  @@_@@@iK@i@@డ 1 2@@@@@@@iK@iK@i@@@i@@i@@i@@ఐ5+projections M@@@5@@@iL@iL@i@@' @@@@ @@(@@@i@@@@b@Ġ/Set_of_closures g h@;/Set_of_closures@b/set_of_closures@@@(}@AE@K@A;DF<Dj@@@g}@ఠ/set_of_closuresˠ } ~@ |A@@@@@f3 m l l m m m m m@>@@@@@@@@@@f@@@@@f@@@@ఠ2aliasing_free_vars͠  @ ~A@@W@@@j5J@i@@@jJ@i3        @`.'@(@)@@@డ#Map&filter(Variable # +@  , /@@ 0 6@ @@@@@@ @@@!a@@@@@@@@@@@@@@@@@@@@@@@@@@#@_@2(@@@@>@@@i@@i@[@@i!@@@i@@i@@i@@i@e@@@i@@ii@@@i@@i@@i3        @d@@@@࣠@%paramA@!<!=@@c@@@j+v@@@@'spec_toA!%?!&F@!2A@г'Flambda!4I!5P@!8Q!9_@@@@@@j3 @@!@>!A`@@@@@@@డ#Map#mem(Variable!Udp!Vdx@ !Ydy!Zd|@@!^d}!_d@ @6 @@@@@@jB@@jA@(@@@j?@@j>2@@@j=@@j<@@j;3!]!\!\!]!]!]!]!]@X@@@j6@R@S@@@@ఐd'spec_to!d!d@@@@@@jZ@jX@#var!d!d@|@@@@@j[N@jY&@@ఐǠ/which_variables!d!d@@@3@@S@@@@@jwN@jN9@!7!d@@@@@@j"@@j!@ @@j @@@j@@j@@jK@jK@j@@ఐQ/set_of_closures!!@)@@g@@@j@j@)free_vars!!@3)free_varsr@@@(#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"@@sQ@@@A@"-S@@@ఠ9aliasing_specialised_argsР"8"9@"E@A@@.specialised_to@@@jJ@j@@@jJ@j3"3"2"2"3"3"3"3"3@@@@@@డ#Map&filter(Variable"^"_@ "b"c@@"g"h @ @ @@@@@@@j@@j@9@@j@@@j@@j@@j@@j@ <C@@@j@@j @G@@@j@@j@@j3"r"q"q"r"r"r"r"r@?@@@@࣠@A@""@@@@@jP@@@@'spec_toA""@"AA@гh'Flambda""&@o"'"5@@@w@@@js @@""6@@@~w@@@@డ2#Map#mem(Variable":F":N@ ":O":R@@":S":V@ @ @@@0@@@k@@k@ <@@@k@@k@@@j@@j@@j3""""""""@X@@@j@R@S@@@@ఐd'spec_to#:W#:^@@@@@@k@k@#var#:_#:b@@@a@@@kN@k&@@ఐF/which_variables##:c#$:r@@@3@@S@@P@@@k9N@k9@#- #.:s@@@@@@j@@j@@@je@@@j@@j@@jK@kHK@kB@@ఐР/set_of_closures#Mt~#Nt@@@@@@kX@kU@0specialised_args#Yt#Zt@b@@aK@kW@@@kV@@ @@%@A@#d @@@ఠ-aliasing_varsӠ#o#p@#|BA@@!0@@@kJ@ky@@@kJ@kr3#g#f#f#g#g#g#g#g@5LE@F@G@@@డ#Map.disjoint_union(Variable##@ ##@@##@ @"eq&optionL@!a@[@@@@@$boolE@@@@@@@@@@@@%print@A&Format)formatter@@@@@@'@@$unitF@@@@@@@@@@@@@!5@@@@@@!=@@@@@!A@@@@@@@@@@@@ +@ZW@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#;#p#}#z@@W@@@@AA@A#@@#s@#@@@@k@@@k@@@k@@k@@k@@@k@@k@ภ$@$@@@@@k@@k@@@k@@@k@@k@@k@@@k@@k@@ఐޠ2aliasing_free_vars$t$u@*@@"2@@@k@@ఐM9aliasing_specialised_args$$@@@"CK@k@@@k@@ @@@A@$ @@డ"#not$&/$&2@@@@@O@@N@@@M@@L(%boolnotAA@@@LLLt@@ \@@@@@@@l@@l@@@l@@l3$$$$$$$$@AUN@O@P@@@@డ!3#Map(is_empty(Variable$&4$&<@ $&=$&@@@$&A$&I@ @@"!a@@@@H@@G@@@F@@E@!,@!(c@@@@"P@@@l@@8IJ@m@@@m@@(&^(w@@@mJ@lp-@@(&,@@/@?@@Q@l @@@ @@,@Ġ$Prim((@ p@((@@ r@@@f@ఠ$vars̠((@(}A@@ w v@@@f@@@f@@((@@ w@@@f@@@%)@@ @@@f@@@@@f@@@డ'g$List$iter))@ ))@@ @@@@%q@@@mI@m@@m @@@m@@m@@m@@@@m@@m@@@m@@m@@m3) ))) ) ) ) ) @QJ@K@L@@@@ఐg3check_free_variable)D)E@@@@%@@@m@@m`@@@m@@m@@ఐo$vars)[)\@$@@9A@@@mJ@mJ@m/@@S @@l0@Ġ&Symbol))@;&Symbol/@!t@@@(w@A@@K@A$Vq$Wq@@@$x@@))@@@@@gS@@@@@@@@gW@@W@Ġ%Const))@;%ConstS@$%const@@@(x@AA@K@A$yr$zr@@@$y@@))@@@@@gv@@@@@@@@gz@@z@@@ @@@@@g~@Ġ/Allocated_const))@;/Allocated_constz@/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@@@%&|@@*8*9@@@@@g@@@@@@g@@@% @@N@@@g@@@@@@R@@@g@Ġ+Project_var*R*S*@@*W+*X,@@@@@g @@@ @@h@@@g!@@@@ @@l@@@g"@Ġ/Project_closure*l/*m>@@*q?*r@@@@@@g&0@@@ @@@@@g'4@@4@@ @@@@@g(8@Ġ;Move_within_set_of_closures*AG*Ab@ m@*Ac*Ad@@ o@@@g,J@@@ @@@@@g-N@@N@@ @@@@@g.R@Ġ$Expr*ek*eo@;$ExprN@@@@(@AJ@K@A%r9;%s9F@@@%D@@*ep*eq@@@@@g2o@@@@@@@@g3s@@s@@9 @@@@@g5w@@@ภ*eu@@@@~@@@A*q@@3********@@@@A@F@n~@A@@ డ1Flambda_iterators-iter_toplevel1Flambda_iterators*}*}@ *}*}@@@@1!t@@@p@@p$unitF@@@p@@p@@p@@E%named@@@p@@p@@@p@@p@@p@S@@@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+*+)+)+*+*+*+*+*@B^W@X@Y@@@@ఐˠ(for_expr+N}+O}@N@@@@@@r@@rj@@@r@@r@@ఐ|)for_named+e}+f}@$@@@w@@@r.@@r-@@@r,@@r+1@@ఐz$expr+|}+}}@S@@>@@@@@@@r4F@r D@@ఠ+projections++@+GA@@)d@@@rCF@r53++++++++@W@@@డ)rt++@q@@@F@r8@@@r:@@r9@@r7@@ఐ+projections+@"@@@@@rAG@rDG@rB*@@" @@+@A@+ @@@ఠ4used_which_variables++@+HA@@"&@@@rSF@rE3++++++++@OH@I@J@@@డ*:++@@@@̠F@rH@@@rJ@@rI@@rG@@ఐt4used_which_variables+@@@@@@rQG@rTG@rR,@@" @@-@A@, @@@ఐ+projections,,@:@@M3++++++++@>LE@F@G@@@@ఐR4used_which_variables,!!,"5@ @@WE@rZ@@@@@c@ @@r[@( @@V@k @@@U@@ @@@ 1@m@@ @+@@ A@b@@ @@@ @;A@@@rm@@@rl@~@y@@rk@@rj@@riC@rdc@@@,GL&@@'@w@ఠ2from_function_decl,T7;,U7M@,aIA@@#env*A@@@rC@ro@@rp/which_variables***#@@@rC@r@@@rC@ru@@rv-function_decl*14function_declaration@@@rC@r{@@r|*Y@@@s2C@r}@@r~C@rw@@rxC@rq@@rrC@rn3,v,u,u,v,v,v,v,v@@@@࣠66A:,7O,7R@,JA@@<3,,,,,,,,@M,77,!!*@@@@@,7N @==AA,7T,7c@,KA@@C3,,,,,,,,@ S@@@@@@,7S@;;A?,dl,dy@,LA@гB'Flambda,d|,d@I,d,d@@@Q@@@r3,,,,,,,,@'2l@*@+@@ @@ @@@Y@@,dj,d@@@@ఠ+projections,,@,MA@@*@@@rG@r3,,,,,,,,@!Aw@@@r@<@=@@@@ఠ4used_which_variables--@-NA@@#[@@@rG@r@@! @@@!@ @@r@ఐ,analyse_expr--@:@@*ߠz@@@r@@@r@@r@u@@@r@@r@+@@@r@#@@@r@@r@@r@@rH@ఐ/which_variables-H-I@r@@U@@ఐ-function_decl-W-X@a@@.@@@r@ri@$body-c-d@,@@@@@rH@rH@rw@@Q @@@@n@@rH@r@A@-w@@@ఠ+projections--@-OA@@+W@@@rG@r3-t-s-s-t-t-t-t-t@@@@@@@@ఐ+7known_valid_projections--@ǰ@@++@@@r@@r+z+v@@@r@@r+m+i+`@@@r@@@r@@r+@@@r@@r@@r@@r-@+ఐ,#env--@@@e:@+ఐ⠐+projections--@C@@+@@@rH@rH@rN@+ఐ9/which_variables--@ @@y[@@N@@_\@A@-@@డ+M#Set&filter*Projection- h j- h t@ - h u- h x@@. h y. h @ @+K @@@@+K@@@s@@s+I@@@s@@s@@s@+@@@s@@s+@@@s@@s@@s3........@@@@@@@࣠@*projectionA.0 h .1 h @.=PA@@+p@@@s@3. ... . . . . @@@@@ @@@ఠ/projecting_from.D  .E  @.QQA@@+'@@@sPI@sD3.6.5.5.6.6.6.6.6@/&+@@@s?@ @!@@@డ+/projecting_from*Projection.`  .a  @ .d  .e  @@+"@@@+"@@@sI@@sH+L@@@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.  . !@?@@%;@@@sJ@sG@@ఐ蠐4used_which_variables. !. !@_@@%D@@@s|J@sJ@s[@@.  . !@@ Z@@@sf@sJ@sze@@s @@,:@@@sI@sdk@@@@/ h /  !@@@,N@@@s9@@s8,L@@@s7@@s6G@sG@s@@ఐ+projections/"!!@@@,@@@s4G@sG@s @@2@@@E@@@@@8@A@C@s@A@@@@-oA-\@-Z-i@@-TA-8@-3-N@@-+f@W@@@@@3/(/'/'/(/(/(/(/(@]@@@3Extract_projections@@@ H************************************************************************/IA@@/JA@L@ H /OBMM/PBM@ H OCaml /UC/VC@ H /[D/\D3@ H Pierre Chambart, OCamlPro /aE44/bE4@ H Mark Shinwell and Leo White, Jane Street Europe /gF/hF@ H /mG/nG@ H Copyright 2013--2016 OCamlPro SAS /sH/tHg@ H Copyright 2014--2016 Jane Street Group LLC /yIhh/zIh@ 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@@*./ocamlopt)-nostdlib"-I(./stdlib"-I1otherlibs/dynlink"-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_events2-function-sections"-c/0 F/home/ci/builds/workspace/main/flambda/false/label/ocaml-ubuntu-latest ?>3210/.-,+*)('&%$#"! @@0:/HI 8ʲ300000000@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ݷ$E0{0䛌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  !!@!~!.{.@@,C,M@Xb%.".,@//@PZnx@ɰ/˜/@@'@ϰAK@ ё @!+@@7A//@"!"+@@P1Γ@v@s@@@A@@