Caml1999T037/Ě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@A6@@@AOC@@@'Flambda!t@@@VC@A@ @@@VC@A@@@@RC@A@@A@@A@@A3@  C <@ =@ >@@@࣠33A7BL/CL>@O\A@@;3/../////@IDB@6@.@)@@AD@A@@AD@@@@@D@@@S@T@@@@ZL.@@$exprAdL?eLC@q]A@@M3QPPQQQQQ@#.`@&@'@@@@@@@ఠ+projectionsԠwMFLxMFW@^A@@ #ref r@@@AF@A@@@AF@A3qppqqqqq@!-p@$@%@@@డ#refMFZMF]@@!a@ @@@g@@f,%makemutableAA@@@ddd@@ @@@@*/-@@@A@@A(@@డ 6#Set%empty*ProjectionMF^MFh@ MFiMFl@@MFmMFr@ @ @@@@ @ E@@@PL@@A @@XM@A@MFH @@@ఠ4used_which_variablesՠNv|Nv@_A@@j@@@A*F@A$@@@A)F@A 3@ix@y@z@@@డm#refNvNv@h@@@@@@A#@@A"@@డ #Set%empty(VariableNvNv@ NvNv@@ Nv!Nv@ @@@@7S@@E@@@=9@@. @@C:@A@+Nvx @@@ఠ3check_free_variable֠6O7O@C`A@@@ @@@ACF@A,@@@AF@A-@@A.F@A+321122222@Zng@h@i@@@࣠@#varAWOXO@daA@@3DCCDDDDD@*_O`RMT@@@@@  @@డ #Map#mem(VariablevPwP@ zP{P@@PP@ @@ @@@@f!a@@@@$boolE@@@@@@@@ @ d@$@@@ @@@A7@}@@@A5@@@A4@@A3@@A23@NZm@Q@R@@@@ఐa#varPP@ @@z@@ఐ/which_variablesPP@Z@@@@P@@v@@@A\H@AA$@డF":=QQ!@@]!a@@@@m@$unitF@@@l@@k@@j*%setfield0BAN@@@@MN@@ @@@@y@@@AnG@Aa@@@Ab@@@@A`@@A_@@A^\@@ఐ-4used_which_variablesQ Q@Ű@@@@@AlH@AoH@Amq@@డ #Set#add(Variable-Q".Q*@ 1Q+2Q.@@6Q/7Q2@ @@@@@7X@@@@7W@@@7V@@7U@@7T@@F@@@@@@@Ay@@@@Ax@@@Aw@@Av@@Au@@ఐ #var`Q3aQ6@@@%@@డ!!oQ7pQ8@@!a@@@@i@@h'%field0AA@@@@@ @@@@ @@@@AI@AI@A@@@A@@A@@ఐ4used_which_variables,QL@R.@@%@@@AJ@AJ@A@@8 @@@@{ @@Z@@@A@@PM@@jH@Ak@@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 g!t@@@@ Z!t@@@@A@AN@A G]AC H]AV@@@ si@ఠ#varܠDVEV@QdA@@ r!t@@@AK@A398899999@6@@@@@* @@@@@A@@@Ġ+Let_mutable]W^W@;+Let_mutable5@ +let_mutable@@@@ABAN@A v_km w_k@@@ k@ঠ-initial_valueuWvW@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@@@@N@@@B@@@B@@B3@@@@@@@ఐ#varXX@ @@f@@@BJ@B@@!@@@Ġ%Apply] ]@;%Apply@6%apply@@@@ACAN@A``@@@;l@@] ]@@@@@A@@@@@F@@@A@@I@@@A@@@ภ"()]]@;@@@N@@@@A@@A@@@ @@U@Ġ$Send-^.^"@;$Send@m$send@@@@ADAN@AFaGa@@@rm@ঠ$methE^%F^)A3$meth@@@t!t@@@@@A3$kind )meth_kind@@@@@@ @Aiz  jz  @@S@3#obj!t@@@@@B@Au|  v|  @@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@@@@@BJ@A/@@@@@@@@B3@@@@@B6@@@ ఐ3check_free_variable_=C_=V@@@@]@@@B@@@B@@B3@WT@V@UFC@E@D63@5@4@@@@ఐ`$meth_=W_=[@@@y@@@BK@B@@%@@@@@BJ@B@ ఐ٠3check_free_variable`]c`]v@<@@@@@@B@@@B@@B5@@ఐ|#obj$`]w%`]z@<@@@@@BK@BG@@@@@@@BJ@BM@డ$List$iter?a|@a|@ Ca|Da|@@@@!a@D$unitF@@@E_@@E^@$listK@@@E]@@@E\@@E[@@EZ@(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@@@@B3@@@@@Abb@@@@@@BJ@B @@@I@@8@@@B @@;@@@B@@@ఐ٠3check_free_variablecc@<@@@@@@F@@@F@@F3@-*@,@+@@@@ఐ4)new_value'c(c@ @@@@@FJ@F@@!@@b@Ġ,If_then_else>d?d@;,If_then_else@k!t@@@@@@"@@@@CFAN@A`cac@@@o@ఠ#var]d^d@jjA@@!t@@@B8M@B3RQQRRRRR@O@@@@mdnd@@C@@@B @@udvd@@K@@@B @@@={d@@@@@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@@@B;@@@@B<@@B:@@@B9@@f<f=@@1@@@B>@@@B=@@@Wf>@@Q@@@B?@@@@@@U@@@BB@@@ఐ3check_free_variable)gBH*gB[@V@@@@@@F@@@F@@F3@@@@@@@ఐ䠐#varAgB\BgB_@ @@@@@FJ@F@@!@@|@Ġ,Static_raiseTh`fUh`r@;,Static_raise,@0Static_exception!t@@@!t@@@@@@@BIAN@A|g}g@@@r@@uh`tvh`u@@@@@BM3cbbccccc@`@@@ఠ$argsh`wh`{@mA@@$#@@@BO@@@BN@@@:h`|@@@@@BP@@@@@BQ@@@డ$List$iterii@ ii@@c@@@@.@@@GI@Gd@@@G@@G@a @@@G^@@@F@@F@@F3@C<@=@>@@@@ఐ3check_free_variableii@@@@O@@@G@@@G@@G@@ఐ_$argsii@"@@=@@@GJ@GJ@G-@@K @@.@Ġ#Forjj@;#For@7(for_loop@@@@AMAN@Alfhlfy@@@!t@@@ @@A3)bound_var G!t@@@ @@@ @A3V??4V??1@@_f@3(to_valueS!t@@@ @@B@A?X?M?O@X?M?e@@kh@3)direction$(Asttypes.direction_flag@@@@@C#@AMY?f?hNY?f?@@yi@3$body2@@@@@D,@AVZ??WZ??@@j@@AZW?2?4[W?2?L@@g@ఠFGFE@`nA@@@@@B^?@(to_value_j`jA8ఠ@qoA@<@@@BbP@@Akjlj@@s@@@BdJ@BcX@@@|@@@@@Be\@@@@@Bf_@@@ ఐN3check_free_variablekk@@@@@@@G'G@@@G&@@G%3xwwxxxxx@w@=@?@>0-@/@.@@@@ఐH*from_valuekk@@@!@@@G4K@G3@@#@@d@@@G=J@G-@ఐ3check_free_variablell@@@@8@@@GAx@@@G@@@G?1@@ఐc(to_valuell@9@@M@@@GNJ@GMC@@@@J@GGF@R @@G@Ġ#Letm!m$@;#Let@((let_expr@@@@AAAN@A^WY^Wj@@@-j@@m%m&@@@@@Bo@@@@@8@@@Bp@@@Ġ,Static_catch m) m5@;,Static_catch@!t@@@@G!t@@@@*value_kind@@@@@@@@@@@@@@@DJAN@AEhFi/@@@qs@@>m6?m7@@0@@@B|)@@@.@-@@@B@*@@@B@@B~@@@B};@@@+@@@B@@@@0@@@BE@@@U!@@@@@BI@@I@@|%@@@@@BM@Ġ%Whileom:pm?@;%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-@@@NLF@L@@LF@L3@B\U@V@W@@@࣠@%namedA@"ps#ps@@@@@L3@-+psu,ew@@@@  @:sA'г*'Flambda;ps<ps@1?ps@ps@@@9@@@L @@GpsHps@@@@"@@@@ఐ5%namedTqUq@3@6@(@@O@@@L3DCCDDDDD@5B@@@Ġ+Project_vargrhr@;+Project_var%named@@@@+project_var@@@@AH@K@A@@@@@ఠ+project_varrr@tA@@@@@L3rqqrrrrr@.@@@@@$@@@@@L@@@@@L@@డ2#Map#mem(Variabless@ ss@@ss@ @ - @@@0@@@N@ C@Q@C@PC@OC@O5C@NC@N@@@N 4@@@N@@N@@M3@oMF@G@H@@@@ఐV+project_varss@@@j@@@N@'closuress@ð @@e@@@NJ@N!@@ఐ /which_variablesss@ @@ .@@U@@ 2@@@N=J@N4@డw 1 3t't)@ 0@@@ @@@NOI@NB@@@NC@ 1@@@NA@@N@@@N?O@@ఐ +projections"t#t&@ 2@@ @@@NMJ@NPJ@NNd@@డ#Set#add*ProjectionAu*2Bu*<@ Eu*=Fu*@@@Ju*AKu*D@ @@@@@@C@@@F@@@@@@@@@F@@@@@@@NZ@R@@@NYU@@@NX@@NW@@NV@@ภ+Project_varsu*Ftu*Q@נఐ+project_var}u*R~u*]@@@@@@N}@@u*Eu*^@@@@@NnK@N{@@డ ( *u*_u*`@ '@@@ @@@NmK@NK@N@@@N@@N@@ఐ 9+projectionsu*k@ @@ 9@@@NL@NL@N@@% @@@@{ @@@@@Nl@@@@@Ġ/Project_closurevlrvl@;/Project_closurec@ /project_closure@@@@AF@K@Akmk@@@~@ఠ/project_closurevlvl@uA@@@@@L3@@@@@@@@@@@L@@@@@L@@డ#Map#mem(Variableww@ ww@@ w w@ @  @@@@@@N@\@@@N @@@N@@N@@N3@B;@<@=@@@@ఐK/project_closure+w,w@@@_@@@N@/set_of_closures5w6w@e @@@@@NJ@N!@@ఐ /which_variablesGxHx@ ߰@@ ?.@@J@@ @@@NJ@N4@డ  XyYy@ @@@ P@@@NI@N@@@N@ @@@N@@N@@NO@@ఐ +projectionsuyvy@ @@ @@@NJ@NJ@Nd@@డ#Set#add*Projectionz z@ zz@@zz@ @S @@@@@@N@@@@N@@@N@@N@@N@@ภ/Project_closurezz-@Lఐ᠐/project_closurez.z=@@@@@@O@@zz>@@-@@@OK@O@@డL 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@N;move_within_set_of_closures@@@@AG@K@A'(@@@S@ఠ$move${Ln%{Lr@1vA@@@@@L3@@@@@@@@$@@@L@@'@@@L@@డ#Map#mem(VariableE|sF|s@ I|sJ|s@@N|sO|s@ @ ϰ @@@@@@O6@5@@@O4 @@@O3@@O2@@O13IHHIIIII@B;@<@=@@@@ఐK$moveo|sp|s@@@_@@@OH@'closurey|sz|s@@ @@@@@OMJ@OK!@@ఐ K/which_variables|s|s@ #@@ .@@J@@ @@@OiJ@O@4@డ Ƞ ʰ}}@ ǰ@@@ $@@@O{I@On@@@Oo@ @@@Om@@Ol@@OkO@@ఐ B+projections}}@ ɰ@@ C@@@OyJ@O|J@Ozd@@డL#Set#add*Projection~~@ ~~@@~~@ @ @@@H@@@O@@@@O@@@O@@O@@O@@ภ;Move_within_set_of_closures~~@ఐ᠐$move~~@@@@@@O@@ ~ ~@@q@@@OK@O@@డ  ~~@ @@@ @@@OK@OK@O@@@O@@O@@ఐ +projections8~@ G@@ @@@OL@OL@O@@% @@@@l @@2@@@O@@@@9@Ġ$PrimRS@;$Prim@2Clambda_primitives)primitive@@@Ҡ !t@@@@@@Ӡ !t@@@@CI@K@A8@@@C@Ġ&Pfield~#@;&Pfield2Clambda_primitives)primitive@@@Mr@#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;*=:@@U@,B@AA@A@@&ఠ#var=@zA@@|@@@M2@Ġ"[] A;J@@@@AA@A@@I@@A@B@@@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#varQFdRFg@@@@@@OJ@O@@ఐ#/which_variablescFhdFw@@@[&@@B@@ @@@OJ@O,@డ  t{u{@ @@@l@@@P I@O@@@P@ @@@O@@O@@OG@@ఐ+projections{{@@@@@@P J@P J@P \@@డ$#Set#add*Projection@ @@@ @o @@@ @@@P@@@@P@@@P@@P@@P@@ภ%Field@Iఐ3+field_index@@@U@@@P:K@P=K@P<@ఐ#var@@@`@@@P;K@P?K@P>@@@@_@@@P+K@P9@@డ~    @ @@@@@@P*K@PTK@PJ@@@PK@@PI@@ఐ+projections&@5@@@@@PPL@PSL@PQ@@% @@@@ @@ @@@P)@@@@'@Ġ/Set_of_closures@A@;/Set_of_closures@/set_of_closures@@@@AE@K@AYDFZDj@@@}@ఠ/set_of_closuresVW@c|A@@@@@M3FEEFFFFF@@@@@@@@V@@@M@@Y@@@M@@@@ఠ2aliasing_free_varsop@|~A@@Qh@@@PJ@P^@@@P|J@PY3gffggggg@$.'@(@)@@@డ!#Map&filter(Variable#+@ ,/@@06@ @@@!@@@@!a@ @@@@@~@@}@ @@@|@@@{@@z@@y@)@%_@* @@@@>@@@Pc@M@@@Pb@@Pa@@P`@U@@@P_Y@@@P]@@P\@@P[3@T@@@@࣠@%paramA@<=@@_@@@Pf@@@@'spec_toA@?F@@@@@Pu@  @ A| г砡'Flambda I P@ Q _@@@@@@P @@ > `@@@@@@@డ#Map#mem(Variable "dp #dx@  &dy 'd|@@ +d} ,d@ @ @@@@@@P@w@@@P@@@P@@P@@P3 & % % & & & & &@XP@S@K@@@@ఐa'spec_to Ld Md@@@@@@P@P@#var Xd Yd@@@@@@PN@P#@@ఐ*/which_variables jd kd@@@b0@@L@@@@@PN@P6@ t7 ud@@@@@@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@@@Q6J@Q@@@Q"J@P3        @@@@@@డ#Map&filter(Variable! !!@ !$!%@@!)!* @ @ @@@@@@@Q @3@@@Q@@Q@@Q@;@@@Q?@@@Q@@Q@@Q3!,!+!+!,!,!,!,!,@7@@@@࣠@qA@!O!P@@@@@Q.H@@@@'spec_toA@!^!_@@[@@@Q7W@  @!pAAa гd'Flambda!q!r&@k!u'!v5@@@s@@@Q4o @@!}!~6@@@zs@@@@డ!#Map#mem(Variable!:F!:N@ !:O!:R@@!:S!:V@ @ @@@@@@QA@@@@Q?@@@Q>@@Q=@@Q<3!!!!!!!!@XP@S@K@@@@ఐa'spec_to!:W!:^@@@@@@QU@QS@#var!:_!:b@@@K@@@QVN@QT#@@ఐ/which_variables!:c!:r@r@@0@@L@@4@@@QrN@QK6@! !:s@@@j@@@Q'@E@@@Q&@@Q%@@Q$K@Q}K@Qy@@ఐ/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"E"F@ "I"J@@"N"O@ @"eq&optionL@!a@~@$boolE@@@@@@@@@@%print@U&Format)formatter@@@@$unitF@@@@@@@@@@@ b+@@@@ h1@@@ l5@@@@@@@@@@@@@hW@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@@\\@@@@@@@R0@@@R/@@R.3#*#)#)#*#*#*#*#*@%@@ @@@@డ#Map(is_empty(Variable#X&4#Y&<@ #\&=#]&@@@#a&A#b&I@ @@!C!a@@@@@@@@@@@c@@@@!Sj@@@RKJ@R<@@@R;@@@R:@@R9B@@ఐk-aliasing_vars#&J#&W@L@@!l@@@RJS@@#&3#&X@@s@@@R7@R_K@RB]@@| @@@@@R`J@R6c@డ D#Map$iter(Variable#dl#dt@ #du#dx@@#dy#d}@ @@@ D@@@d@!a@-$unitF@@@c@@b@@a@!@@@` @@@_@@^@@]@ N@ J[@,"@@@@ c@@@Rj@!4function_declaration@@@RI@Rf#@@@Ri@@Rh@@Rg@!Ӡ@@@Re @@@Rd@@Rc@@Rb@@࣠@+A@$ d$ d@@ @@@R3########@@@@@@@(fun_declA@$d$d@@/@@@R@  @$+CA5 г8'Flambda$,d$-d@?$0d$1d@@@G@@@R( @@$8d$9d@@@N,@@@@@@@$F $G @@C@R3$2$1$1$2$2$2$2$2@ 91@4@,@@@@ఠ$usedà$T$U@$aDA@@*C@SIC@R@@@@@@ @@R@ఐh,analyse_expr$k!$l-@%@@ge@W@M@H@@R@@R@@R/@qఐ`-aliasing_vars$M$Z@A@@"av@@@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@@ ?;; ?;;@@ ;\@3&inline`w0inline_attribute@@@@@G`@@ A<< A<<@@@ G]@3*specialisel4specialise_attribute@@@@@Hl@@ 'CG=7=U@@ i`@@@ A/8R8T B/8R8]@@ mX@@@C@VC@R@@@@@@@@RN@R@A@%E@@డ!#Set$iter(Variable%Whr%Xhz@ %[h{%\h~@@%`h%ah@ @@@#@@@7$unitF@@@7@@7@%@@@7 @@@7@@7@@7@!@[@%@@@@;@@@R@@@R@@R@:@@@R@@@R@@R@@R3%w%v%v%w%w%w%w%w@F@9@:@;@@@@࣠@#varA%h%h@%EA@@^@@@R3%%%%%%%%@@@@@ @@డ"K#Map$find(Variable%%@ %%@@%%@ @"I @@@"I@@@R@#@@@RO@R@@@R@@R@@R3%%%%%%%%@LC@@@R@=@>@@@@ఐM#var%%@@@@@@R@@ఐנ-aliasing_vars%%@@@#ؠ*@@@R'@@E@@.(@Ġ)Not_found& & @"=@@@@%@@@S3%%%%%%%%@8@@@&@@@@@S@@@ ภ"0&&@"/@@@"/@@@S@&%@@@@@S@ఠ'spec_toŠ&3 &4@&@FA@@%@@@Sa@@(@@@Sd@@@ఐ3check_free_variable&F&G)@s@@@"@@@S" @@@S!@@S 3&:&9&9&:&:&:&:&:@y$@@@@@@ఐ-'spec_to&`*&a1@@@!@@@S1@S/@#var&l2&m5@!@@"@@@S2Q@S0#@@/@@O$@@@A&v @@ @@@S=i@&{h&|6@@@>@@@R@@@R@@RM@SBM@S?@@ఐ?$used&7C&7G@@@>@@@@@@@@SJM@R@X @@T@&d~&7H@@@#$@@@R|@@@@R{@@Rz@@RyJ@SUJ@SQ@@ఐf/set_of_closures&IS&Ib@>@@|@@@Sc@Sa@.function_decls&Ic&Iq@@@@@@Sf@Sb@$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^@@"6S@36set_of_closures_origin*6Set_of_closures_origin!t@@@@@B#@@""66""666@@"DT@8@@"'7(7*"'7(7U@@"HU@W>@@8,J@Se@@@Sd@@'&^'w@@@SzJ@Rw@@'!&,@@@ @@@  @@@6 @@@Ġ$Prim'/'0@ ݠ@'4'5@@ @@@M @ఠ$vars'@'A@'M}A@@  @@@M@@@M @@'N'O@@ @@@M @@@%'T@@L@@@M @@O@@@M@@@డ%$List$iter'h'i@ 'l'm@@)@@@@#@@@SI@S*@@@S@@S@' @@@S$@@@S~@@S}@@S|3'n'm'm'n'n'n'n'n@+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@#1%const@@@@AA@K@A# r# r@@@#6y@@((@@@@@M@@@@@@@@M@@@@@ @@@@@M@Ġ/Allocated_const((@;/Allocated_const@/Allocated_const!t@@@@AB@K@A#4s#5s<@@@#`z@@(-(.@@@@@M@@@@@*@@@M@@@@j @@.@@@M@Ġ,Read_mutable(B(C@;,Read_mutable@!t@@@@AC@K@A#\t=?#]t=c@@@#{@@(U(V@@@@@M@@@@@R@@@M@@@@ @@V@@@M@Ġ1Read_symbol_field(j (k@;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@2@@@U@@@U@@U@@U@@U@ (middle_end/flambda/flambda_iterators.mliL  P s |@@1Flambda_iteratorsG@61@@@@.@@@V+@@@V@@V@@(@@@V%@@@V@@V@V@@@V$@@@V@@V@@V@@V3)b)a)a)b)b)b)b)b@fy@z@{@@@@ఐȠ(for_expr)})}@r@@@@@@VI@@@V@@V@@ఐ)for_named)})}@"@@@@@@V@@@V@@V-@@ఐO$expr)})}@(@@:@@@@q@@@VF@V@@@ఠ+projections))@)GA@@'@@@VF@V3))))))))@S@@@డ(Ggi))@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@*6 @@@ఐ+projections*B*C@8@@3*.*-*-*.*.*.*.*.@<JC@D@E@@@@ఐP4used_which_variables*Q!*R5@ @@$E@V@@@@@0@ @@V@( @@T@i @@@9@@ @6@@ M@x@@ @@@ @9@@ t@@@@ A@a_@Q@G@B@@V@@V@@VC@V,@@@*sL"@@#@@@ఠ2from_function_decl*7;*7M@*IA@@#env(@@@W`C@V/which_variables(s(l@@@W^C@W)@@@W(C@V-function_decl(x4function_declaration@@@VC@V(@@@WC@V@@VC@V@@VC@V@@VC@V3********@m@@@࣠00A4*7O*7R@*JA@@83********@}G*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+++,@+8NA@@!@@@WG@W@@ @@@@ @@W@ఐA,analyse_expr+D+E@@@@)%:@@@W@@@W@5@@@W @)G@@@W @"@@@W @@W @@W @@WA@Zఐ/which_variables+k+l@@@N@@ఐ-function_decl+z+{@Z@@@@@W9@W7b@$body++@@@p@@@WH@W:H@W8p@@M @@@|@j@@W;H@Wy@A@+@@@ఠ+projections++@+OA@@)@@@W\G@W<3++++++++@@@@@@@@ఐ)Ġ7known_valid_projections++@@@))@@@WE))@@@WD)))@@@WC@@@WB)@@@WA@@W@@@W?@@W>'@)אఐ##env++@ @@X4@)֐ఐՠ+projections++@=@@)@@@W_H@WiH@WhH@)ؐఐ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@@W3,,,,,,,,@@@@@@@࣠@*projectionA,G h ,H h @,TPA@@)@@@W3,7,6,6,7,7,7,7,7@@@@@ @@@ఠ/projecting_from,[  ,\  @,hQA@@)k@@@WI@W3,M,L,L,M,M,M,M,M@/&)@@@W@ @!@@@డ)/projecting_from*Projection,w  ,x  @ ,{  ,|  @@)f@@@)f@@@W)@@@W@@W#@@ఐM*projection,  ,  @-@@)@@@W3@@!@@74@A@,  @@డ+#not,  ,  @ @@@ @@@W @@@W@@W3,,,,,,,,@KYR@S@T@@@@డ)T#Set#mem(Variable,  ,  @ ,  ,  @@,  ,  @ @# @@@#@@@W@#@@@W#@@@W@@W@@W1@@ఐ/projecting_from,  , !@;@@#@@@WJ@WC@@ఐР4used_which_variables, !, !@K@@#@@@WJ@WJ@WW@@-  - !@@ @@@W@WJ@Wa@@m @@*n@@@WI@Wg@}@@@- h - !@@@*@@@W*~@@@W@@WG@WG@W@@ఐ+projections-/!!i@j@@+#@@@WG@WG@W@@"r@@@5s@@@t@@@suA@C@W|@A@y@yx@@+A+@++@@+|A+`@+[+v@@+S@J@@@@@3-5-4-4-5-5-5-5-5@@@@α3Extract_projections@@@ H************************************************************************-VA@@-WA@L@ H -\BMM-]BM@ H OCaml -bC-cC@ H -hD-iD3@ H Pierre Chambart, OCamlPro -nE44-oE4@ H Mark Shinwell and Leo White, Jane Street Europe -tF-uF@ H -zG-{G@ 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. . L/home/touraine/ci/builds/workspace/precheck/flambda/false/label/ocaml-arm-32 >10/.-,+*)('&%$#"! @@0:/HI 8ʲ3........@.@@/Allocated_const0ЖݔTWŠ(Asttypes0>n{T8cئ,Backend_intf0)LSxjf15Build_path_prefix_map0z HkGs8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ2Clambda_primitives01U1/Closure_element0YWZ̡Q.hV&*Closure_id05:z[ކ.Closure_origin0vˆtT{(}z*Cmi_format0Aڙ% C<0Compilation_unit0 {p-Vg_*Data_types0I'Ue`wq]Ѡ)Debuginfo0PtJ=^w/#Env0H/]0K+G)Export_id0-bw+LO.0kX7WCD'Flambda0Idvu "`08Jn8I:*Format_doc0]mWϓ:Mݠ*Freshening0/^*b1R%Ident0">WA+9*X,Identifiable0 {d\FX'`,0#%ۈR bF-Inlining_cost0,30`JD:G2P͠4Inlining_stats_types0|Ca~T E~O-0ixjx-{`͡;7Internal_variable_names0HdeՄL ԩ&Lambda0z1x]&ZT,Linkage_name0EwKсڊs)Load_path0I@18 ~(Location0a7cK_H%9)Longident0s `7mɕc$Misc0[@@Pc+zD0Mutable_variable0~emP*%"e$Path0Y2kf֯J._Ϡ)Primitive0²~$xzT෠*Projection0$WF 8E2Set_of_closures_id0wi xtW#SSD=6Set_of_closures_origin0 7|MӑTrќt%Shape0oNՄBH-P03 "ߨMi0Static_exception0e6Z@F<jiޢ2_&Stdlib0Lku]8_٠-Stdlib__Array0?3$( Q&.Stdlib__Buffer08APF< t..Stdlib__Digest0l!LHgErζ .Stdlib__Domain0Bj|5s)ڠ.Stdlib__Either0Vy`u~c à.Stdlib__Format0ɢb tLir/Stdlib__Hashtbl0ѱN][/!-Stdlib__Int640l-J ~m-۠,Stdlib__Lazy0* -S$.)"0D.Stdlib__Lexing0e<.V ,Stdlib__List0MYm 7R+Stdlib__Map0L5xE|O0~,J-.Stdlib__Result06 ]/J+Stdlib__Seq0nwzG&amg+Stdlib__Set0\$;7 .Stdlib__String0s&Symbol0ҡ4d,#Tag0\݅}x.Type_immediacy0A^abOhՠ%Types0xH+}q)Unit_info0ڀh%(2Var_within_closure00SSJh6 (Variable0' Gr㠠(Warnings0mJɒkgr