Caml1999T036/ċ}C3Extract_projections-ocaml.warning )middle_end/flambda/extract_projections.mlQQ@5+a-4-9-30-40-41-42-66 QQ@@QQ@@@@@@QQ@@3@@@@@@#intA;@@@A@@@@@&_none_@@A@A@$charB;@@A@@@@@@A@&stringQ;@@ A@@@@@ @@@%bytesC;@@A@@@@@@@@%floatD;@@A@@@@@@@@$boolE;@@%falsec@@@$trued@@#@@@A@@@@@$@A@$unitF;@@"()e@@.@@@A@@@@@/@A@ #exnG;@@@A@@@@@3@@@#effH;@@O@A@A@@@@@@<@@@,continuationI;@@Q@@P@B@A@nY@@@@@@K@@@%arrayJ;@@R@A@A@@@@@@U@@@ $listK;@@S@A"[]f@@b@"::g@@@T@@o@ @@A@Y@@@@@r@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@A@@@@@@@@%int32N;@@A@@@@@@@@%int64O;@@A@@@@@@@@&lazy_tP;@@X@AJA@Y@@@@@@@@5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@A[A@Y@@@@@@@@*atomic_locU;@@Z@AdA@@@@@@@@@.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@@A54@)Not_foundZ#O@@@A =<@-Out_of_memoryW#W@@@AED@.Stack_overflow^#_@@@AML@.Sys_blocked_io_#g@@@A$U'T'@)Sys_error[#o@j@@A-^0]0@:Undefined_recursive_modulea#x@@w@s@u@@h@@A>oAnA@:Continuation_already_takenb#@@@AFwIvI@&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@@#env@!t@@@)KC@T+projections*Projection#Set!t@@@0C@Y/which_variables(Variable#Map!t'Flambda.specialised_to@@@{C@=@@@C@^)@@@/C@_@@`C@Z@@[C@U@@VC@S3'&&'''''@YxAp@Xs@@@࣠FF$AJLbMb@YCA@@N398899999@]TbUJ@@@@@Wb @LL%AP`bab@mDA@@T3MLLMMMMM@ e@@@@@@hb@KK&AOqbrb @~EA@@S3^]]^^^^^@h@@@@@@yb@@డ*Projection#Set&filter*Projectionc#%c#/@ c#0c#3@@c#4c#:@ @@@#elt@@@n$boolE@@@m@@l@@@@k@@@j@@i@@h@ !middle_end/flambda/projection.mliJ  J  @@+Stdlib__Set^@+!@@@@@@@@@@@@@@@@@@@@@@@3@Wb@Z@[@@@@࣠@*projectionVAc#@c#J@FA@@A@@@93@@@@@ @@@ఠ$fromWdNXdN\@GA@@(Variable!t@@@I@=3@4+b@@@8@%@&@@@డ/projecting_from*ProjectiondN_dNi@ dNjdNy@@@!t@@@*@@@@@@qM  rM  @@W@@@@@@@A7@@@@@@?2@@ఐa*projection:dNz;dN@<@@@@@B@@0@@KC@A@BdNT@@@ఠ)outer_varvMeNe@ZHA@@(Variable!t@@@ I@/3DCCDDDDD@^qj@k@l@@@డ(Variable#Map$find(Variablesftf@ wfxf@@|f}f@ @@^#key@@@5@e!a@`@@@4@@3@@2@6utils/identifiable.mlimm@@+Stdlib__MapU@%@@@@@@?@{t@@@>u@@<@@;3@H@@@@ఐ$fromff@S@@1@@@K@~@@ఐQ/which_variablesff@@@ @@Q@@!@Ġ)Not_foundgg@;)Not_found#exnG@@@@@@&Stdlib A@A&_none_@@A@@I@@@@@@@@@g@@@@@ ภ%falsegg@;@@@M@@@@B@@A@@@ @@@@@@g @@@ఠ)outer_varhh@IA@@@@@|k@гᠡ'Flambdahh$@h%h3@@@@@@y @@%h&h4@@@@@@డ*Freshening.apply_variable*Freshening6i8B7i8L@ :i8M;i8[@@@*Freshening!t@@@ S@!t@@@ R@@@ Q@@ P@@ O@ !middle_end/flambda/freshening.mliP  P  @@L@#@@@@@@ @@@@ @@@ @@ @@ 3ONNOOOOO@ e^@_@`@@@@డ*freshening!Eyi8]zi8^@ }i8_~i8i@@@@@@"\*Freshening!t@@@"[@@"Z@ .middle_end/flambda/inline_and_simplify_aux.mliuuwuu@@7Inline_and_simplify_aux\@@@@@@@"@@@"@@"7@@ఐ]#envi8ji8m@C@@D@@i8\i8n@@q@@@ @%>M@"N@@ఐ)outer_vari8oi8x@Z@@'Flambda.specialised_to@@@%B@%@g@#vari8yi8|@3#var@@@(Variable!t@@@@@@3*projection&optionL*Projection!t@@@@@@@@A@A>middle_end/flambda/flambda.mliM  M  .@@-]@@AK  K  @@1\@<*@@@@@ L@%CL@%A@@2@@@@@Af4@@@A@e6@@@ఠ&approxskk@JA@@3Simple_value_approx!t@@@)II@%E3      @@@@@@డa(find_exn!E0k1k@ 4k5k@@@6@@@!@(Variable!t@@@!/@@@!@@!@@!@C  C  J@@I@@@@M@@@%K@@@@%JA@@@%I@@%H@@%G<@@ఐ#envfkgk@@@gI@@ఐ&)outer_varsktk@S@@;@@@)JJ@)PJ@)O]@@N @@f^@A@k @@ఐ*projectionll@@@@@@)R3xwwxxxxx@p|@}@~@@@Ġ+Project_varmm@;+Project_var@@@@+project_var@@@@A@@D@AE  E  @@@R@ఠ+project_varӠmm@KA@@@@@)_3@-@@@@@"@@@@@)`@@"@@@)a@@@డ"8check_approx_for_closure!An n @ n n "@@@7!t@@@-m:checked_approx_for_closure@@@-l@@-k@ *middle_end/flambda/simple_value_approx.mliAAAA@@3Simple_value_approx@@@@@@@-@@@-@@-3@iHA@B@C@@@@ఐ&approxn #n )@u@@,@@@-L@-@@:@@*@@@-@Ġ"Oko / 9o / ;@;"Ok;@@@-j@E-value_closure@@@-d&optionL(Variable!t@@@-f@@@-e&Symbol!t@@@-h@@@-gi5value_set_of_closures@@@-i@D@AA@Ad@@e@0@c@@@c@ఠ._value_closure6Wo / =Xo / K@dOA@@9@@@-g@ఠ+_approx_var7eo / Mfo / X@rPA@@A>@@@-@@@-y@ఠ+_approx_sym8wo / Zxo / e@QA@@CB@@@-@@@-@ఠ5value_set_of_closures9p g up g @RA@@G@@@-@@@wp g @@@@@-@@@@@-@@@డ2Var_within_closure#Map#mem2Var_within_closureq  q  @ q  q  @@q  q  @ @@2Var_within_closure#Map#key@@@0@ !t!a@/@@@0$boolE@@@0@@0@@0@6utils/identifiable.mlimm@@+Stdlib__Mapd@2(@@@%@@@1_@ @@@6L@1^@@@1]@@@1\@@1[@@1Z3@@@@@}@~@sl@m@n@@@@ఐP+project_varq  q  @@@f@@@1@1@#varq  q  @3#varq@@@2Var_within_closure!t@@@@@B3'closure-!t@@@@@@ @Awihjxih@@H@3*closure_id*Closure_id!t@@@@@A@Ajj@@#I@(@Akk@@'J@;.@@@@@1M@1U@@ఐȠ5value_set_of_closuresQr  Rr  @[@@@@@6@6i@*bound_vars]r  ^r  @3*bound_vars@@@,2Var_within_closure#Map!t@@@+@@@+@@A'3.function_decls5function_declarations@@@+@@@@@@@{@3)free_varsS#Map!t'Flambda.specialised_to@@@+@@@+@@B@@4@@}@30invariant_params6&Stdlib$Lazy!tt#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@@()@@'B@36direct_call_surrogates*Closure_id#Map!t !t@@@,@@@,@@H@@?@@@>C@@@CD@@B|@@@̠J@@@6D@@@@@@@-H@Ġ%WrongBs  Cs  @;%Wrong(@@@@AA@A_??`?@@@@^@@@  @@i@@@-X@@l@@@-[@@@ภiWs  Xs  @h@@@%c@@@A[n\t  @@@@@)3IHHIIIII@i@@@Ġ/Project_closureku  lu  -@;/Project_closure@]/project_closure@@@@AA@D@AF  F  !@@@bS@ఠ/project_closureԠu  .u  =@LA@@@@@)n3qppqqqqq@@@@@@@@@@@)o@@@@@)p@@@డ 'strict_check_approx_for_set_of_closures!Av A Uv A V@ v A Wv A ~@@@@@@-X )strict_checked_approx_for_set_of_closures@@@-W@@-V@===E=s@@@@@@@@@67@@@66@@653@0C<@=@>@@@@ఐ&approxv A v A @<@@@@@6FL@6E@@5@@(@@@6A@Ġ"Okw  w  @;"Ok9@@@-U@!t@@@-S@@@-R@@@-T@B@AA@A<<<=@@@@ఠ$_var w   w  @ SA@@@@@6R@@@6QQ@ఠ5value_set_of_closures w   w  @ #TA@@@@@6S_@@@= w  @@s@@@6Td@@v@@@6Ug@@@డ#Set#mem(Variable 6x   7x  @  :x   ;x  @@ ?x   @x  @ @@!#Set#elt@@@7@ !t@@@7$boolE@@@7@@7@@7@ll@@+Stdlib__Setc@)@@@@@@8E@@@@8D@@@8C@@8B@@8A3 U T T U U U U U@oh@i@j^W@X@Y@@@@డ*Closure_id&unwrap*Closure_id x   x  @  x   x  @@@*Closure_id!t@@@8(Variable!t@@@8@@8@ 1middle_end/flambda/base_types/closure_element.mliVV@@/Closure_elementA@!@@@@@@8@@@8@@8@@@ఐ7/project_closure x   x  @@@M@@@8@8T@*closure_id x   x  @3*closure_idX@@@!t@@@@@A3/set_of_closures !t@@@@@@ @A(W)W@@A@@A,X-X @@B@+@@Z@@@8N@8N@8~@@ x   x  @@@@@8N@8@@డ#Map$keys(Variable y   y  @  y   y  @@ y   y  !@ @@!a@U@@@&Stdlib#Set$Make!T!t@@@@@@@,Identifiable]@)@@@ Y4function_declaration@@@@@@+@@@+@@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@@@<>@@ y   y  L@@@@@G " `@@@T@ఠ$moveՠ | r  | r @ MA@@@@@)}3        @r@@@@@@@d@@@)~@@g@@@)@@@డ g8check_approx_for_closure!A }   }  @  }   }  @@E@@@E@@@<B@@@<@@<3        @4-@.@/@@@@ఐ#&approx 5}   6}  @@@]@@@;@@@<@@@<E@ఠ+_approx_sym t~   u~  @ WA@@@?@@@<@@@<W@ఠ6_value_set_of_closures      4@ XA@@D@@@<e@@@C   5@@@@@<j@@@@@<m@@@డ!%equal*Closure_id B   B  @  B   B  @@@ !T!t@@@8@ @@@8$boolE@@@8@@8@@8@6utils/identifiable.mlijcmjc@@/Stdlib__Hashtbl`@$@@@@@@<@@@@<@@@<@@<@@<3        @@@{t@u@vjc@d@eYR@S@T@@@@ఐ-value_closure B   B  @@@@@@=%@=#@*closure_id B   B  @3*closure_id@@@+!t@@@+@@A3/set_of_closures '@@@+@@@@A /@@g@@A#02$0L@@"h@(@@f@@@=&M@=$B@@ఐ'$move !B   "B  @@@=@@@=0@=.V@*start_from -B   .B  @3*start_fromH@@@!t@@@@@A3'closure  G!t@@@@@@ @A ` `4@@ /D@3'move_to!t@@@@@B@A boq bo@@ ;F@@A aRT aRn@@ ?E@7*@@@@@=1M@=/@@0@@ @@@<@Ġ%Wrong kC   lC  $@)@@@@@@@<I@@@@@<L@@@ภ yC  ( zC  -@@@@T@@@A }}   ~D . 9@@"3 h g g h h h h h@W@@@Ġ%Field E : B E : G@;%Field@#intA@@@ܠ !t@@@@BC@D@A H a c H a ~@@@ U@ఠ+field_index֠ E : I E : T@ NA@@@@@) @@ E : V E : W@@@@@)(@@@. E : X@@ @@@)-@@ @@@)0@@@డ 6check_approx_for_block!A F \ j F \ k@  F \ l F \ @@@@@@-F8checked_approx_for_block@@@-E@@-D@999:@@@@@@ @@@=D@@@=C@@=B3        @_KD@E@F@@@@ఐ蠐&approx F \  F \ @k@@"@@@=SL@=R@@5@@(@@@=N@Ġ%Wrong G   G  @;%Wrong9@@@-C@@@@AA@A09]9_19]9f@@@/@@@  @@B@@@=[3        @3@@@@F@@@=\@@@ภ ; )G   *G  @ :@@@ @@@=k@Ġ"Ok 9H   :H  @;"Ok)@#Tag!t@@@-@%arrayJp@@@-B@@@-A@B@AA@Aj9g9ik9g9@@@i@ఠ$_tag ]H   ^H  @ jYA@@#@@@=cw@ఠ&fields kH   lH  @ xZA@@(@@@=e@@@=d@@@> wH  @@@@@=f@@@@@=g@@@డ "&& I   I  @@$boolE@@@K@@@@J @@@I@@H@@G(%sequandBA @@@@*stdlib.mli@@ ]@! @@@@@@=u@@@@=t@@@=s@@=r@@=q3        @_X@Y@ZRK@L@M@@@@డ .">= I   I  @@#intA@@@@@@@$boolE@@@@@@@@ )utils/int_replace_polymorphic_compare.mliFF@@?Int_replace_polymorphic_compareE@@@@@@@=@@@@=@@@=@@=@@=<@@ఐS+field_index I   I  @@@7@@@=N@=N@=P@@@ I   I  @@?@@@=N@=N@=`@@ @@@@@=@=N@=h@@డ !<)I  *I  @@c@@@@i@@@a@@@@@@@@_CBB`CBb@@^B@@@@@@@=@@@@=@@@=@@=@@=@@ఐ+field_indexXI  YI  @k@@1@@@=N@=N@=@@డ %Array&lengthrI  sI  @ vI  wI  @@@%arrayJ!a@?"@@@?(#intA@@@?'@@?&-%array_lengthAA @@@)array.mliaa@@-Stdlib__ArrayA@'"@@@@@@@gN@@^@@@@]@@@@\@@@[@@ఐF&fieldsI I @@@<@@@@eO@@hO@@f@@K @@@@@=@@iO@@d@@m@@5@@@=@@jN@=@@@@@@@AF \ d@@r@@@Al@@ -@@@@3@ E@@@ W$@@ @ %@@ |@ &@@ @c#;I @@@ B@@@3 @@@@2@@1G@@G@@ @@ఐ +projectionsJ  @ { @@  (@@ f @@  @  A@ C@@ @A@ @  @ Aఠ,analyse_exprѠL!L-@[A@@/which_variables  .specialised_to@@@RC@A4@@@AMC@A@'Flambda!t@@@VC@A@ @@@VC@@@@@@RC@@@@A@@A@@A3@  C <@ =@ >@@@࣠33A7BL/CL>@O\A@@;3/../////@IDB@4@*@%@@@@@A@@AD@@@O@P@@@@VL.@@$exprA`L?aLC@m]A@@I3MLLMMMMM@*\@"@#@@@@@@@ఠ+projectionsԠsMFLtMFW@^A@@ #ref n@@@AF@A@@@AF@A3mllmmmmm@!-l@$@%@@@డ#refMFZMF]@@!a@ @@@g@@f,%makemutableAA@@@ddd@@ @@@@*/-@@@A@@A(@@డ 2#Set%empty*ProjectionMF^MFh@ MFiMFl@@MFmMFr@ @ @@@@ @ E@@@PL@@A @@XM@A@MFH @@@ఠ4used_which_variablesՠNv|Nv@_A@@j@@@A(F@A"@@@A'F@A3@ix@y@z@@@డi#refNvNv@h@@@@@@A!@@A @@డ #Set%empty(VariableNvNv@ NvNv@@NvNv@ @@@@7S@@E@@@=9@@. @@C:@A@'Nvx @@@ఠ3check_free_variable֠2O3O@?`A@@@ @@@AAF@A*@@@AF@A+@@A,F@A)3.--.....@Zng@h@i@@@࣠@#varASOTO@`aA@@3@??@@@@@@*[O\RMT@@@@@  @@డ #Map#mem(VariablerPsP@ vPwP@@{P|P@ @@ @@@@b!a@@@@$boolE@@@@@@@@ @ d@$@@@ @@@A5@y@@@A3@@@A2@@A1@@A03@NZm@Q@R@@@@ఐa#varPP@ @@z@@ఐ~/which_variablesPP@Z@@@@P@@r@@@AZH@A?$@డB":=QQ!@@]!a@@@@m@$unitF@@@l@@k@@j*%setfield0BAJ@@@@IJ@@ @@@@y@@@AlG@A_@@@A`@@@@A^@@A]@@A\\@@ఐ-4used_which_variables Q  Q@Ű@@@@@AjH@AmH@Akq@@డ #Set#add(Variable)Q"*Q*@ -Q+.Q.@@2Q/3Q2@ @@@@@7X@@@@7W@@@7V@@7U@@7T@@F@@@@@@@Aw@@@@Av@@@Au@@At@@As@@ఐ #var\Q3]Q6@@@%@@డ!!kQ7lQ8@@!a@@@@i@@h'%field0AAܠ@@@@@ @@@@ <@@@AI@AI@A@@@A@@A@@ఐ4used_which_variables,QL@R.@@%@@@AJ@AJ@A@@8 @@@@{ @@V@@@A@@PM@@jH@Ai@@PQ@@ @[RA@xF@AY@A@V@@ఠ(for_expr٠TZ`TZh@bA@@@$expr@@@AF@A@@@BF@A@@AF@A3@@@@@@࣠@$exprA@TZjTZn@@@@@A3@-TZ\nOm@@@@  @cA'г*'FlambdaTZqTZx@1TZyTZ}@@@9@@@A @@TZiTZ~@@@@"@@@@ఐ5$exprUU@3@6@(@@O@@@A3@5B@@@Ġ#Var$V%V@;#Var c!t@@@@ V!t@@@@A@AN@A C]AC D]AV@@@ oi@ఠ#varܠ@VAV@MdA@@ n!t@@@AK@A354455555@6@@@@@* @@@@@A@@@Ġ+Let_mutableYWZW@;+Let_mutable5@ +let_mutable@@@@ABAN@A r_km s_k@@@ k@ঠ-initial_valueqWrW@3-initial_value@@@2@@@@@A3#var 0Mutable_variable!t@@@@@@ @A      @@ J@3-contents_kind&Lambda*value_kind@@@@@B@A  = ?  = a@@ L@3$body%r@@@@@C"@A  b d  b m@@ M@@A   !   <@@ K@k#varWW@eA@@hb@@@WW@@U@@@AL@Aj@@@^@@@@@An@@n@@ @@@@@Ar@@@ఐ3check_free_variableXX@@@@J@@@B@@@B@@B3@@@@@@@ఐ#varXX@ @@b@@@BJ@B@@!@@@Ġ%Apply] ]@;%Apply@2%apply@@@@ACAN@A ` `@@@7l@@]]@@@@@A@@@@@F@@@A@@I@@@A@@@ภ"()]]@;@@@N@@@@A@@A@@@ @@U@Ġ$Send)^*^"@;$Send@i$send@@@@ADAN@ABaCa@@@nm@ঠ$methA^%B^)A3$meth@@@p!t@@@@@A3$kind )meth_kind@@@@@@ @Aez  fz  @@S@3#obj!t@@@@@B@Aq|  r|  @@U@3$args$$listK!t@@@@@@@@C(@A}  }  @@V@3#dbg7)Debuginfo!t@@@@@D6@A~  ~  @@W@@A{  {  @@T@ఠPޠQPO@fA@J@@@A3~}}~~~~~@@@@#obj^+^.ACఠߠ@gA@G@@@A@$args^0^4AHఠ@hA@LI@@@A@@@A'@@A^#^9@@@@@AJ@A/@@@@@@@@A3@@@@@B6@@@ ఐ3check_free_variable_=C_=V@@@@Y@@@B@@@B@@B3@WT@V@UFC@E@D63@5@4@@@@ఐ`$meth_=W_=[@@@u@@@BK@B@@%@@@@@BJ@B@ ఐ٠3check_free_variable `]c `]v@<@@@@@@B@@@B@@B5@@ఐ|#obj `]w!`]z@<@@@@@BK@BG@@@@@@@BJ@BM@డ$List$iter;a|<a|@ ?a|@a|@@@@!a@D$unitF@@@E]@@E\@$listK@@@E[@@@EZ@@EY@@EX@(list.mli@@,Stdlib__ListU@*%@@@@@@@FI@F#@@@F@@F@  @@@F@@@F@@F@@F@@ఐR3check_free_variablea|a|@@@@@@@FK@@@F@@F@@ఐ䠐$argsa|a|@@@M:@@@FJ@FJ@F@@j @@J@F@@@@@@@Ġ&Assignbb@;&Assign@&assign@@@@AEAN@Abb@@@n@ঠ)new_valuebbA3)new_value@@@!t@@@@@A3.being_assigned ]!t@@@@@@ @At  t  9@@P@@Au : <u : S@@Q@ఠ#$#"@iA@@@@B 3@@@@@Abb@@@@@@BJ@B @@@I@@8@@@B @@;@@@B@@@ఐ٠3check_free_variable c c@<@@@@@@F@@@F@@F3@-*@,@+@@@@ఐ4)new_value#c$c@ @@@@@FJ@F@@!@@b@Ġ,If_then_else:d;d@;,If_then_else@g!t@@@@@@"@@@@CFAN@A\c]c@@@o@ఠ#varYdZd@fjA@@!t@@@B6M@B3NMMNNNNN@O@@@@idjd@@C@@@B @@qdrd@@K@@@B@@@=wd@@@@@B@@@Ġ&Switche e @;&Switch_@!t@@@&switch@@@@BGAN@Add @@@p@G#vare e @kA@@FK@B&?@@e e @@@@@B'G@@@*e @@@@@B(L@@L@@x@@@@@B*P@Ġ-String_switchf%f2@;-String_switch@c@@@]@&stringQ@@@@@@@@@@@@@@@@@@@CHAN@Ae e J@@@q@#varf4f7@lA@@@@f9f:@@1@0@@@B9@@@@B:@@B8@@@B7@@ f< f=@@1@@@B<@@@B;@@@Wf>@@Q@@@B=@@@@@@U@@@B@@@@ఐ3check_free_variable%gBH&gB[@V@@@@@@F@@@F@@F3@@@@@@@ఐ䠐#var=gB\>gB_@ @@@@@FJ@F@@!@@|@Ġ,Static_raisePh`fQh`r@;,Static_raise,@0Static_exception!t@@@!t@@@@@@@BIAN@Axgyg@@@r@@qh`trh`u@@@@@BK3_^^_____@`@@@ఠ$args~h`wh`{@mA@@$#@@@BM@@@BL@@@:h`|@@@@@BN@@@@@BO@@@డ $List$iterii@ ii@@c@@@@*@@@GI@Fd@@@G@@G@a @@@F^@@@F@@F@@F3@C<@=@>@@@@ఐ3check_free_variableii@@@@K@@@G@@@G@@G@@ఐ_$argsii@"@@=@@@G J@GJ@G-@@K @@.@Ġ#Forjj@;#For@3(for_loop@@@@AMAN@A lfh lfy@@@8v@ঠ*from_value j jA3*from_value@@@:!t@@@ @@A3)bound_var C!t@@@ @@@ @A/V??0V??1@@[f@3(to_valueO!t@@@ @@B@A;X?M?O<X?M?e@@gh@3)direction$(Asttypes.direction_flag@@@@@C#@AIY?f?hJY?f?@@ui@3$body2@@@@@D,@ARZ??SZ??@@~j@@AVW?2?4WW?2?L@@g@ఠFGFE@\nA@@@@@B\?@(to_value[j\jA8ఠ@moA@<@@@B`P@@Agjhj@@s@@@BbJ@BaX@@@|@@@@@Bc\@@@@@Bd_@@@ ఐN3check_free_variablekk@@@@@@@G%G@@@G$@@G#3tssttttt@w@=@?@>0-@/@.@@@@ఐH*from_valuekk@@@@@@G2K@G1@@#@@d@@@G;J@G+@ఐ3check_free_variablell@@@@4@@@G?x@@@G>@@G=1@@ఐc(to_valuell@9@@I@@@GLJ@GKC@@@@J@GEF@R @@G@Ġ#Letm!m$@;#Let@$(let_expr@@@@AAAN@A^WY^Wj@@@)j@@m%m&@@@@@Bm@@@@@8@@@Bn@@@Ġ,Static_catchm)m5@;,Static_catch@!t@@@@C!t@@@@*value_kind@@@@@@@@@@@@@@@DJAN@AAhBi/@@@ms@@:m6;m7@@0@@@Bz)@@@.@-@@@B}@*@@@B~@@B|@@@B{;@@@+@@@B@@@@0@@@BE@@@U!@@@@@BI@@I@@|%@@@@@BM@Ġ%Whilekm:lm?@;%WhileG@H@@@ĠL@@@@BLAN@AkSUkSe@@@u@@m@mA@@Y@@@Bn@@@^@@@Bs@@@ @@@@@Bw@@w@@@@@@@B{@Ġ(Try_withmDmL@;(Try_withu@v@@@!t@@@ @@@@CKAN@Aj02j0R@@@t@@mMmN@@@@@B@@@@@@B@@ @@@@B@@@+@@@@@B@@@@@@@@@B@Ġ2Proved_unreachablenOUnOg@;2Proved_unreachable@@@@AN@Amz|mz@@@w@@@  @@@@@B@@@@ @@@@@B@@@ภ԰nOk@@@@!@@@AU@@#3@@@@A@1F@L@A@ @@ఠ)for_namedpsyps@rA@@@%named@@@LF@L-@@@NJF@L@@LF@L3@B\U@V@W@@@࣠@%namedA@psps@@@@@L3        @-'psu(ew@@@@  @6sA'г*'Flambda7ps8ps@1;ps<ps@@@9@@@L @@CpsDps@@@@"@@@@ఐ5%namedPqQq@3@6@(@@O@@@L3@??@@@@@@5B@@@Ġ+Project_varcrdr@;+Project_var%named@@@@+project_var@@@@AH@K@A@@@@@ఠ+project_var~rr@tA@@@@@L3nmmnnnnn@.@@@@@$@@@@@L@@@@@L@@డ.#Map#mem(Variabless@ ss@@ss@ @ - @@@,@@@N@ C@Q>C@PC@OC@O3C@NC@N@@@N 4@@@M@@M@@M3@oMF@G@H@@@@ఐV+project_varss@@@j@@@N@'closuress@ @@a@@@NJ@N!@@ఐ /which_variablesss@ @@ .@@U@@ 2@@@N;J@N 4@డs 1 3t't)@ 0@@@ @@@NMI@N@@@@NA@ 1@@@N?@@N>@@N=O@@ఐ +projectionstt&@ 2@@ @@@NKJ@NNJ@NLd@@డ#Set#add*Projection=u*2>u*<@ Au*=Bu*@@@Fu*AGu*D@ @@@@@@?@@@B@@@@@@@@@F@@@@@@@NX@N@@@NWQ@@@NV@@NU@@NT@@ภ+Project_varou*Fpu*Q@Ӡఐ+project_varyu*Rzu*]@@@@@@N{@@u*Eu*^@@@@@NlK@Ny@@డ ( *u*_u*`@ '@@@ @@@NkK@NK@N@@@N@@N@@ఐ 9+projectionsu*k@ @@ 9@@@NL@NL@N@@% @@@@{ @@@@@Nj@@@@@Ġ/Project_closurevlrvl@;/Project_closurec@/project_closure@@@@AF@K@Akmk@@@ ~@ఠ/project_closurevlvl@uA@@@@@L3@@@@@@@@@@@L@@@@@L@@డ#Map#mem(Variableww@ ww@@ww@ @  @@@@@@N@\@@@N @@@N@@N@@N3@B;@<@=@@@@ఐK/project_closure'w(w@@@_@@@N@/set_of_closures1w2w@a @@@@@NJ@N!@@ఐ /which_variablesCxDx@ ߰@@ ;.@@J@@ @@@NJ@N4@డ  TyUy@ @@@ L@@@NI@N@@@N@ @@@N@@N@@NO@@ఐ +projectionsqyry@ @@ @@@NJ@NJ@Nd@@డ#Set#add*Projectionz z@ zz@@zz@ @S @@@@@@N@@@@N@@@N@@N@@N@@ภ/Project_closurezz-@Hఐ᠐/project_closurez.z=@@@@@@O@@zz>@@)@@@OK@O@@డH l nz?z@@ k@@@ b@@@OK@O)K@O@@@O @@O@@ఐ }+projectionszK@ @@ }@@@O%L@O(L@O&@@% @@@@l @@@@@O@@@@@Ġ;Move_within_set_of_closures {LR {Lm@;;Move_within_set_of_closures@J;move_within_set_of_closures@@@@AG@K@A#$@@@O@ఠ$move {Ln!{Lr@-vA@@@@@L3@@@@@@@@$@@@L@@'@@@L@@డ#Map#mem(VariableA|sB|s@ E|sF|s@@J|sK|s@ @ ϰ @@@@@@O4@1@@@O2 @@@O1@@O0@@O/3EDDEEEEE@B;@<@=@@@@ఐK$movek|sl|s@@@_@@@OF@'closureu|sv|s@< @@@@@OKJ@OI!@@ఐ G/which_variables|s|s@ #@@ .@@J@@ @@@OgJ@O>4@డ  Ƞ ʰ}}@ ǰ@@@ $@@@OyI@Ol@@@Om@ @@@Ok@@Oj@@OiO@@ఐ B+projections}}@ ɰ@@ C@@@OwJ@OzJ@Oxd@@డH#Set#add*Projection~~@ ~~@@~~@ @ @@@D@@@O@@@@O@@@O@@O@@O@@ภ;Move_within_set_of_closures~~@ఐ᠐$move~~@@@@@@O@@~ ~@@m@@@OK@O@@డ  ~~@ @@@ @@@OK@OK@O@@@O@@O@@ఐ +projections4~@ G@@ @@@OL@OL@O@@% @@@@l @@.@@@O@@@@9@Ġ$PrimNO@;$Prim@2Clambda_primitives)primitive@@@Ҡ !t@@@@@@Ӡ !t@@@@CI@K@A}~8@@@C@Ġ&Pfieldz{#@;&Pfield2Clambda_primitives)primitive@@@Mp@#intA@@@M$4immediate_or_pointer@@@M%,mutable_flag@@@M&@CClr@A !middle_end/clambda_primitives.mlih?Ah?v@@@[@ఠ+field_index%0@yA@@#@@@M3@V@@@@23@@%@@@M @@56@@'@@@M@@@E7@@m@@@M@Ġ":::>A;&96@@U@(B@AA@A@@"ఠ#var=@zA@@|@@@M2@Ġ"[] A;F@@@@AA@A@@E@@A@>@@@M@@@MC@@@9'@@@@@M@@@ML@ఠ$_dbg@D@ {A@@@@@MZ@@@E@@@@@M_@@@@@Mb@@డ#Map#mem(Variable!FS"F[@ %F\&F_@@*F`+Fc@ @  @@@@@@O@|@@@O @@@O@@O@@O3%$$%%%%%@@@lf@g@hF?@@@A@@@@ఐt#varMFdNFg@@@@@@OJ@O@@ఐ/which_variables_Fh`Fw@@@W&@@B@@ @@@OJ@O,@డ  p{q{@ @@@h@@@P I@O@@@O@ @@@O@@O@@OG@@ఐ+projections{{@@@@@@PJ@P J@P \@@డ #Set#add*Projection@ @@@ @o @@@@@@P@@@@P@@@P@@P@@P@@ภ%Field@Eఐ3+field_index@@@Q@@@P8K@P;K@P:@ఐ#var@@@\@@@P9K@P=K@P<@@@@[@@@P)K@P7@@డz   @ @@@@@@P(K@PRK@PH@@@PI@@PG@@ఐ+projections"@5@@@@@PNL@PQL@PO@@% @@@@ @@@@@P'@@@@'@Ġ/Set_of_closures<=@;/Set_of_closures@|/set_of_closures@@@@AE@K@AUDFVDj@@@}@ఠ/set_of_closuresRS@_|A@@@@@M3BAABBBBB@@@@@@@@V@@@M@@Y@@@M@@@@ఠ2aliasing_free_varskl@x~A@@Md@@@PJ@P\@@@PzJ@PW3cbbccccc@$.'@(@)@@@డ#Map&filter(Variable#+@ ,/@@06@ @@@@@@@!a@ @@@@@~@@}@ @@@|@@@{@@z@@y@%@!_@* @@@@:@@@Pa@M@@@P`@@P_@@P^@U@@@P]Y@@@P[@@PZ@@PY3@T@@@@࣠@%paramA@<=@@[@@@Pf@@@@'spec_toA@?F@@@@@Pu@  @A| г㠡'FlambdaIP@ Q _@@@@@@P @@ > `@@@@@@@డ#Map#mem(Variable dp dx@  "dy #d|@@ 'd} (d@ @ @@@@@@P@w@@@P@@@P@@P@@P3 " ! ! " " " " "@XP@S@K@@@@ఐa'spec_to Hd Id@@@@@@P@P@#var Td Ud@@@@@@PN@P#@@ఐ&/which_variables fd gd@@@^0@@L@@@@@PN@P6@ p7 qd@@@@@@P@ @@@P~@@P}@@P|K@PK@P@@ఐ:/set_of_closures  @@@P@@@P@P@)free_vars  @3)free_vars[@@@#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@@DrK@P@@@P@@\Q@@yp@A@ S@@@ఠ9aliasing_specialised_args  @!@A@@ؠ.specialised_to@@@Q4J@Q@@@Q J@P3        @@@@@@డ#Map&filter(Variable!!@ ! !!@@!%!& @ @ @@@@@@@Q@3@@@Q@@Q@@Q@;@@@Q?@@@Q@@Q@@P3!(!'!'!(!(!(!(!(@7@@@@࣠@qA@!K!L@@@@@Q,H@@@@'spec_toA@!Z![@@[@@@Q5W@  @!lAAa гd'Flambda!m!n&@k!q'!r5@@@s@@@Q2o @@!y!z6@@@zs@@@@డ#Map#mem(Variable!:F!:N@ !:O!:R@@!:S!:V@ @ @@@@@@Q?@~@@@Q=@@@Q<@@Q;@@Q:3!!!!!!!!@XP@S@K@@@@ఐa'spec_to!:W!:^@@@@@@QS@QQ@#var!:_!:b@@@G@@@QTN@QR#@@ఐ/which_variables!:c!:r@r@@0@@L@@4@@@QpN@QI6@! !:s@@@f@@@Q%@E@@@Q$@@Q#@@Q"K@Q{K@Qw@@ఐ/set_of_closures!t~!t@@@@@@Q@Q@0specialised_args"t" t@S@@RK@Q@@@Q@@ @@ @A@" @@@ఠ-aliasing_vars""@"+BA@@ @@@QJ@Q@@@QJ@Q3""""""""@&=6@7@8@@@డ#Map.disjoint_union(Variable"A"B@ "E"F@@"J"K@ @"eq&optionL@!a@~@$boolE@@@@@@@@@@%print@Q&Format)formatter@@@@$unitF@@@@@@@@@@@ ^+@@@@ d1@@@ h5@@@@@@@@@@@@@dW@QG@@DB@r@t;@@@Q@@Q@@Q@@@Q8O@6@@@Q@2@@@Q@@Q@@Q@@@Q@ @@@Q@ @@@Q @@@Q@@Q@@Q@@Q@@Q@qภ$None";" ""@@W@@@@AA@A"@@" @"@{@@t@@@Q@@Q@@Q@@@Q@qภ"@"@@t@@@Q@p@@@Q@@Q@@Q@@@Q@@ఐ2aliasing_free_vars""@@@ ֠@@@Q@@ఐ9aliasing_specialised_args## @۰@@ K@R@@@R@@ @@@A@# @@డ!#not#&/# &2@@@@@F@@@E@@D(%boolnotAA@@@LLLt@@X\@@@@@@@R.@@@R-@@R,3#&#%#%#&#&#&#&#&@%@@ @@@@డ#Map(is_empty(Variable#T&4#U&<@ #X&=#Y&@@@#]&A#^&I@ @@!?!a@@@@@@@@@@@c@@@@!Of@@@RIJ@R:@@@R9@@@R8@@R7B@@ఐk-aliasing_vars#&J#&W@L@@!h@@@RHS@@#&3#&X@@s@@@R5@R]K@R@]@@| @@@@@R^J@R4c@డ @#Map$iter(Variable#dl#dt@ #du#dx@@#dy#d}@ @@@ @@@@d@!a@-$unitF@@@c@@b@@a@!@@@` @@@_@@^@@]@ J@ F[@,"@@@@ _@@@Rh@!4function_declaration@@@RI@Rd#@@@Rg@@Rf@@Re@!Ϡ@@@Rc @@@Rb@@Ra@@R`@@࣠@+A@$d$d@@ @@@R3########@@@@@@@(fun_declA@$d$d@@/@@@R@  @$'CA5 г8'Flambda$(d$)d@?$,d$-d@@@G@@@R( @@$4d$5d@@@N,@@@@@@@$B $C @@C@R3$.$-$-$.$.$.$.$.@ 91@4@,@@@@ఠ$usedà$P$Q@$]DA@@&C@SGC@R@@@@@@ @@R@ఐd,analyse_expr$g!$h-@!@@ca@S@I@D@@R@@R@@R/@mఐ`-aliasing_vars$~M$Z@A@@"]r@@@R@@@ఐ(fun_decl$.$6@L@@4function_declaration@@@R@RV@$body$7$;@3$body @@@~@@@@@B/3.closure_origin .Closure_origin!t@@@@@@ @@-88-884@@V@3¶msQ)Parameter!t@@@@@@@@A@@.8587.858Q@@ W@*3.free_variables*#Set!t@@@@@C,@@288288@@ Y@3,free_symbols8&Symbol#Set!t@@@@@D<@@699699@@ Z@3$stubH$boolE@@@@@EH@@::: :::@@ +[@3#dbgT{!t@@@@@FT@@ ?;; ?;;@@ 7\@3&inline`w0inline_attribute@@@@@G`@@ A<< A<<@@@ C]@3*specialisel4specialise_attribute@@@@@Hl@@ #C/8R8]@@ iX@@@C@VC@R@@@@@@@@RN@R@A@%A@@డ!#Set$iter(Variable%Shr%Thz@ %Wh{%Xh~@@%\h%]h@ @@@@@@7$unitF@@@7@@7@!@@@7 @@@7@@7@@7@@[@%@@@@7@@@R@@@R@@R@6@@@R@@@R@@R@@R3%s%r%r%s%s%s%s%s@F@9@:@;@@@@࣠@#varA%h%h@%EA@@Z@@@R3%%%%%%%%@@@@@ @@డ"G#Map$find(Variable%%@ %%@@%%@ @"E @@@"E@@@R@#@@@RO@R@@@R@@R@@R3%%%%%%%%@LC@@@R@=@>@@@@ఐM#var%%@@@@@@R@@ఐנ-aliasing_vars%%@@@#Ԡ*@@@R'@@E@@.(@Ġ)Not_found&&@"9@@@@%@@@S3%%%%%%%%@8@@@&@@@@@S@@@ ภ",&&@"+@@@"+@@@S@&!@@@@@S@ఠ'spec_toŠ&/ &0@&<FA@@!@@@Sa@@$@@@Sd@@@ఐ3check_free_variable&B&C)@s@@@"@@@S  @@@S@@S3&6&5&5&6&6&6&6&6@y$@@@@@@ఐ-'spec_to&\*&]1@@@!@@@S/@S-@#var&h2&i5@!@@"@@@S0Q@S.#@@/@@O$@@@A&r @@ @@@S;i@&wh&x6@@@:@@@R@@@R@@RM@S@M@S=@@ఐ?$used&7C&7G@@@>@@@@@@@@SHM@R@X @@T@&d~&7H@@@# @@@Rz@@@@Ry@@Rx@@RwJ@SSJ@SO@@ఐf/set_of_closures&IS&Ib@>@@|@@@Sa@S_@.function_decls&Ic&Iq@@@@@@Sd@S`@$funs&Ir&Iv@3$funs&@@@"#Map!tI@@@@@@@@C3/is_classic_mode@@@@@@@@!44!44@@"$R@32set_of_closures_id2Set_of_closures_id!t@@@@@A@@"5254"525^@@"2S@36set_of_closures_origin*6Set_of_closures_origin!t@@@@@B#@@""66""666@@"@T@8@@"'7(7*"'7(7U@@"DU@W>@@8,J@Sc@@@Sb@@'&^'w@@@SxJ@Ru@@'&,@@@ @@@  @@@6 @@@Ġ$Prim'+',@ ݠ@'0'1@@ @@@M @ఠ$vars'<'=@'I}A@@  @@@M@@@M @@'J'K@@ @@@M @@@%'P@@L@@@M @@O@@@M@@@డ%$List$iter'd'e@ 'h'i@@)@@@@#@@@SI@S~*@@@S@@S@' @@@S}$@@@S|@@S{@@Sz3'j'i'i'j'j'j'j'j@+KD@E@F@@@@ఐ\3check_free_variable''@@@@$@@@SU@@@S@@S@@ఐg$vars''@"@@W=@@@SJ@SJ@S-@@K @@.@Ġ&Symbol''@;&Symbolf@!t@@@@A@@K@A"q"q@@@#x@@''@@@@@M@@@@@@@@M@@@Ġ%Const''@;%Const@#-%const@@@@AA@K@A#r#r@@@#2y@@'(@@@@@M@@@@@@@@M@@@@@ @@@@@M@Ġ/Allocated_const((@;/Allocated_const@/Allocated_const!t@@@@AB@K@A#0s#1s<@@@#\z@@()(*@@@@@M@@@@@*@@@M@@@@j @@.@@@M@Ġ,Read_mutable(>(?@;,Read_mutable@!t@@@@AC@K@A#Xt=?#Yt=c@@@#{@@(Q(R@@@@@M@@@@@R@@@M@@@@ @@V@@@M@Ġ1Read_symbol_field(f (g@;1Read_symbol_field@!t@@@̠#intA@@@@BD@K@A#udf#ud@@@#|@@((@@@@@M.@@@@@@M3@@@% @@@@@M7@@7@@@@@@@M;@Ġ+Project_var((*@7@(+(,@@4@@@MM@@@ @@@@@MQ@@Q@@ @@@@@MU@Ġ/Project_closure(/(>@ @(?(@@@ @@@Mg@@@ @@@@@Mk@@k@@ @@@@@Mo@Ġ;Move_within_set_of_closures(AG(Ab@ Ġ@(Ac(Ad@@ @@@M@@@ @@@@@M@@@@ @@@@@M@Ġ$Expr(ek(eo@;$Expr@@@@@AJ@K@A#9;$9F@@@$+D@@(ep(eq@@@@@M@@@@@@@@M@@@@9 @@@@@M@@@ภ) eu@@@@@@@A) q@@3((((((((@@@@A@F@T&@A@@ డ1Flambda_iterators-iter_toplevel1Flambda_iterators)#})$}@ )'})(}@@@@!t@@@U$unitF@@@U@@U@@"%named@@@U@@@U@@U@.@@@U@@@U@@U@@U@@U@ (middle_end/flambda/flambda_iterators.mliL  P s |@@1Flambda_iteratorsG@61@@@@.@@@V+@@@V@@V@@(@@@V%@@@V@@V@R@@@V$@@@V@@V@@V@@V3)^)])])^)^)^)^)^@fy@z@{@@@@ఐȠ(for_expr)})}@r@@@@@@VI@@@V@@V@@ఐ)for_named)})}@"@@@@@@V@@@V@@V-@@ఐO$expr)})}@(@@:@@@@q@@@VF@V@@@ఠ+projections))@)GA@@'@@@VF@V3))))))))@S@@@డ(Cgi))@f@@@]F@V@@@V@@V@@ఐs+projections)@@@s@@@VG@VG@V(@@  @@)@A@) @@@ఠ4used_which_variables))@* HA@@ @@@VF@V3))))))))@MF@G@H@@@డ(**@@@@F@V@@@V@@V@@ఐI4used_which_variables*&@@@@@@VG@VG@V*@@  @@+@A@*2 @@@ఐ+projections*>*?@8@@3***)*)**********@<JC@D@E@@@@ఐP4used_which_variables*M!*N5@ @@ E@V@@@@@,@ @@V@( @@T@i @@@9@@ @6@@ M@x@@ @@@ @9@@ t@@@@ A@][@M@C@>@@V@@V@@VC@V(@@@*oL"@@#@<@ఠ2from_function_decl*|7;*}7M@*IA@@#env(@@@W^C@V/which_variables(o(h@@@W\C@W'@@@W&C@V-function_decl(t4function_declaration@@@VC@V(@@@WC@V@@VC@V@@VC@V@@VC@V3********@i@@@࣠00A4*7O*7R@*JA@@83********@yG*77*!!*@@@@@*7N @99A=*7T*7c@*KA@@A3********@ O@@@@@@*7S@99A@*dl*dy@@=@@@V3********@V@@@@@G  @*LAF гI'Flambda*d|*d@P*d*d@@@X@@@V @@"@@@]@@+dj+d@@@@ఠ+projections++@+ MA@@)@@@WG@W3++++++++@9E>@A@6@@@@ఠ4used_which_variables+'+(@+4NA@@!@@@WG@W@@ @@@@ @@W@ఐ=,analyse_expr+@+A@@@<)!6@@@W @@@W @1@@@W @)C@@@W @" @@@W @@W@@W@@WA@Vఐ/which_variables+g+h@@@N@@ఐ-function_decl+v+w@Z@@@@@W7@W5b@$body++@@@l@@@WH@W8H@W6p@@M @@@|@j@@W9H@Wy@A@+@@@ఠ+projections++@+OA@@)@@@WZG@W:3++++++++@@@@@@@@ఐ)7known_valid_projections++@@@))@@@WC))@@@WB)))@@@WA@@@W@)@@@W?@@W>@@W=@@W<'@)Ӑఐ##env++@ @@X4@)Ґఐՠ+projections++@=@@)@@@W]H@WgH@WfH@)Ԑఐ0/which_variables++@@@nU@@H@@YV@A@,@@డ)#Set&filter*Projection, h j, h t@ , h u, h x@@, h y, h @ @) @@@@)@@@W)@@@W@@W@*@@@W*@@@W@@W~@@W}3,,,,,,,,@@@@@@@࣠@*projectionA,C h ,D h @,PPA@@)@@@W3,3,2,2,3,3,3,3,3@@@@@ @@@ఠ/projecting_from,W  ,X  @,dQA@@)g@@@WI@W3,I,H,H,I,I,I,I,I@/&)@@@W@ @!@@@డ)/projecting_from*Projection,s  ,t  @ ,w  ,x  @@)b@@@)b@@@W)@@@W@@W#@@ఐM*projection,  ,  @-@@)@@@W3@@!@@74@A@,  @@డ+#not,  ,  @ @@@ @@@W @@@W@@W3,,,,,,,,@KYR@S@T@@@@డ)P#Set#mem(Variable,  ,  @ ,  ,  @@,  ,  @ @# @@@#@@@W@#@@@W#@@@W@@W@@W1@@ఐ/projecting_from,  , !@;@@#@@@WJ@WC@@ఐР4used_which_variables, !, !@K@@#@@@WJ@WJ@WW@@-  - !@@ @@@W@WJ@Wa@@m @@*j@@@WI@Wg@}@@@- h - !@@@*|@@@W*z@@@W@@WG@WG@W@@ఐ+projections-+!!i@j@@+@@@WG@WG@W@@"r@@@5s@@@t@@@suA@C@W|@A@y@yx@@+A+@+~+@@+xA+\@+W+r@@+O @F@@@@@3-1-0-0-1-1-1-1-1@@@@α3Extract_projections@@@ H************************************************************************-RA@@-SA@L@ H -XBMM-YBM@ H OCaml -^C-_C@ H -dD-eD3@ H Pierre Chambart, OCamlPro -jE44-kE4@ H Mark Shinwell and Leo White, Jane Street Europe -pF-qF@ H -vG-wG@ H Copyright 2013--2016 OCamlPro SAS -|H-}Hg@ 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"-c.. J/home/ci-ocaml/builds64/workspace/main/flambda/false/label/ocaml-ppc-64-be >10/.-,+*)('&%$#"! @@0:/HI 8ʲ3.. . .....@. @@/Allocated_const0$' Y`E&(Asttypes0E\eǥ]k6e,Backend_intf0?oF9E(1CW!5Build_path_prefix_map0gMOBnM`8CamlinternalFormatBasics0oZ2t,ݠ0CamlinternalLazy0;x#5䢜hLm2Clambda_primitives0H_W— >y}UMܠ/Closure_element0e G(^*Closure_id0\t#:Ն=Ġ.Closure_origin0$A2vJsf{#*Cmi_format0KuEB젠0Compilation_unit0&G 0\jР*Data_types0-k(.I7)Debuginfo0.6硏]fSvi#Env0؞X:Fݗ))Export_id0F~=/M .0V6y-:G'Flambda06>iz; 1`0l?Buzq*Format_doc0Mv9630A *Freshening0%mma>V/%Ident0y43a$+,Identifiable0XnAZ4eҠ,0~"J$WL-Inlining_cost0D OY2!4Inlining_stats_types0T""Wm:N-0|y`7TN 7Internal_variable_names08ߋA#99&Lambda0 [, U(Z,Linkage_name0"s_nظfS=)Load_path02&9Q҄;L(Location0nݹV 2f-V )Longident0@#j,6.Nt蠠$Misc0  =73 Z 0Mutable_variable0Ğ*5WB{y'Numbers0I3:+8Р+Outcometree0yl4>Yfܠ)Parameter0zo0:q۠)Parsetree0Z<4$PC$Path09{ְZsv)Primitive0{mV|{J *Projection0s&[\wIihIS S2Set_of_closures_id0fA6Set_of_closures_origin05tQ]%Shape0OĸT>b-L0΍FU  t"0Static_exception0=m &Stdlib0y{x!O!-Stdlib__Array0e tgkښg9.Stdlib__Buffer0_?K|/V>O}~Nࠠ.Stdlib__Digest0 Jjrڵ6.Stdlib__Domain0iW',P6wz.Stdlib__Either0FԤ) 4'>.Stdlib__Format0)n[-Ob/Stdlib__Hashtbl0^iaxG$+-Stdlib__Int640oTV/,Stdlib__Lazy0OM>x9