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@@@)C@T+projections*Projection#Set!t@@@KC@Y/which_variables(Variable#Map!t'Flambda.specialised_to@@@C@_@@@C@^)@@@JC@_@@`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@@@q$boolE@@@p@@o@@@@n@@@m@@l@@k@ !middle_end/flambda/projection.mliJ  J  @@+Stdlib__Set^@+!@@@@@@@@@@@@@@@@@@@@@@@3@Wb@Z@[@@@@࣠@*projection\Ac#@c#J@FA@@A@@@T3@@@@@ @@@ఠ$from]dNXdN\@GA@@(Variable!t@@@I@X3@4+b@@@S@%@&@@@డ/projecting_from*ProjectiondN_dNi@ dNjdNy@@@!t@@@*@@@@@@qM  rM  @@W@@@@@@@\7@@@[@@Z2@@ఐa*projection:dNz;dN@<@@@@@B@@0@@KC@A@BdNT@@@ఠ)outer_var|MeNe@ZHA@@(Variable!t@@@ I@J3DCCDDDDD@^qj@k@l@@@డ(Variable#Map$find(Variablesftf@ wfxf@@|f}f@ @@^#key@@@T@e!a@@@@S@@R@@Q@6utils/identifiable.mlimm@@+Stdlib__MapU@%@@@@@@a@{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@@@@@@ @@%h&h4@@@@@@డ*Freshening.apply_variable*Freshening6i8B7i8L@ :i8M;i8[@@@*Freshening!t@@@ @!t@@@ @@@ @@ @@ @ !middle_end/flambda/freshening.mliP  P  @@L@#@@@@@@ @@@@ @@@ @@ @@ 3ONNOOOOO@ e^@_@`@@@@డ*freshening!Eyi8]zi8^@ }i8_~i8i@@@@@@"*Freshening!t@@@"@@"@ .middle_end/flambda/inline_and_simplify_aux.mliuuwuu@@7Inline_and_simplify_aux\@@@@@@@#*@@@#)@@#(7@@ఐ]#envi8ji8m@C@@D@@i8\i8n@@q@@@ @%wM@#0N@@ఐ)outer_vari8oi8x@Z@@'Flambda.specialised_to@@@%{@%yg@#vari8yi8|@3#var@@@(Variable!t@@@@@@3*projection&optionL*Projection!t@@@@@@@@A@A>middle_end/flambda/flambda.mliM  M  .@@-]@@AK  K  @@1\@<*@@@@@ L@%|L@%z@@2@@@@@Af4@@@A@e6@@@ఠ&approxkk@JA@@3Simple_value_approx!t@@@)I@%~3      @@@@@@డa(find_exn!E0k1k@ 4k5k@@@6@@@"6@(Variable!t@@@"5/@@@"4@@"3@@"2@C  C  J@@I@@@@M@@@%@@@@%A@@@%@@%@@%<@@ఐ#envfkgk@@@gI@@ఐ&)outer_varsktk@S@@;@@@)J@)J@)]@@N @@f^@A@k @@ఐ*projectionll@@@@@@)3xwwxxxxx@p|@}@~@@@Ġ+Project_varmm@;+Project_var@@@@+project_var@@@@A@@D@AE  E  @@@R@ఠ+project_varߠmm@KA@@@@@)3@-@@@@@"@@@@@)@@"@@@)@@@డ"8check_approx_for_closure!An n @ n n "@@@7!t@@@-:checked_approx_for_closure@@@-@@-@ *middle_end/flambda/simple_value_approx.mliAAAA@@3Simple_value_approx@@@@@@@-@@@-@@-3@iHA@B@C@@@@ఐ&approxn #n )@u@@,@@@.L@.@@:@@*@@@-@Ġ"Oko / 9o / ;@;"Ok;@@@-@E-value_closure@@@-&optionL(Variable!t@@@-@@@-&Symbol!t@@@-@@@-i5value_set_of_closures@@@-@D@AA@Ad@@e@0@c@@@c@ఠ._value_closureBWo / =Xo / K@dOA@@9@@@.g@ఠ+_approx_varCeo / Mfo / X@rPA@@A>@@@.@@@.y@ఠ+_approx_symDwo / Zxo / e@QA@@CB@@@.@@@.@ఠ5value_set_of_closuresEp g up g @RA@@G@@@.@@@wp g @@@@@.@@@@@.@@@డ2Var_within_closure#Map#mem2Var_within_closureq  q  @ q  q  @@q  q  @ @@2Var_within_closure#Map#key@@@1@ !t!a@/:@@@1$boolE@@@0@@0@@0@6utils/identifiable.mlimm@@+Stdlib__Mape@2(@@@%@@@1@ @@@6`L@1@@@1@@@1@@1@@13@@@@@}@~@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  @[@@@@@6a@6^i@*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@@@,2@@@,1@@@,0@@CA@@575o@@~@3)recursiveX"$Lazy!t#Set!t@@@,4@@@,3@@DW@@prp@@@3$sizen8$Lazy!t#Map!t#intA@@@,8@@@,7@@@,6@@@,5@@Ey@@@@@@30specialised_args#Map!tq.specialised_to@@@,:@@@,9@@F@@"$"]@@A@3*freshening*Freshening+Project_var!t@@@,;@@G@@()@@'B@36direct_call_surrogates*Closure_id#Map!t !t@@@,=@@@,<@@H@@?@@@>C@@@CD@@B|@@@̠J@@@6_D@@@@@@@.!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_closureu  .u  =@LA@@@@@)3qppqqqqq@@@@@@@@@@@)@@@@@)@@@డ '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@@@@@@@@@6@@@6@@63@0C<@=@>@@@@ఐ&approxv A v A @<@@@@@6L@6@@5@@(@@@6@Ġ"Okw  w  @;"Ok9@@@-@!t@@@-@@@-@@@-@B@AA@A<<<=@@@@ఠ$_var w   w  @ SA@@@@@6@@@6Q@ఠ5value_set_of_closures w   w  @ #TA@@@@@6_@@@= w  @@s@@@6d@@v@@@6g@@@డ#Set#mem(Variable 6x   7x  @  :x   ;x  @@ ?x   @x  @ @@!#Set#elt@@@8A@ !t@@@8@$boolE@@@8?@@8>@@8=@ll@@+Stdlib__Setd@)@@@@@@8@@@@8@@@8@@8@@83 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@!@@@@@@9@@@9@@9@@@ఐ7/project_closure x   x  @@@M@@@9@9T@*closure_id x   x  @3*closure_idX@@@!t@@@@@A3/set_of_closures !t@@@@@@ @A(W)W@@A@@A,X-X @@B@+@@Z@@@9N@9N@9~@@ x   x  @@@@@9N@9@@డ#Map$keys(Variable y   y  @  y   y  @@ y   y  !@ @@!a@p@@@?&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@@@@@<D@@{@@ @@@6H@Ġ%Wrong z M W z M \@;%Wrong@@@@AA@A<<<<@@@@@@  @@@@@6 @@@@@6@@@ภ z M ` z M e@@@@%@@@A v A I { f q@@|3        @@@@Ġ;Move_within_set_of_closures | r z | r @;;Move_within_set_of_closuresH@;move_within_set_of_closures@@@@AB@D@A=G " $>G " `@@@T@ఠ$move | r  | r @ MA@@@@@)3        @r@@@@@@@d@@@)@@g@@@)@@@డ g8check_approx_for_closure!A }   }  @  }   }  @@E@@@E@@@= B@@@= @@= 3        @4-@.@/@@@@ఐ#&approx 5}   6}  @@@]@@@=L@=@@&@@[@@@=@Ġ"Ok K~   L~  @1ఠ-value_closure T~   U~  @ aUA@@6@@@=)3@ఠ+_approx_var b~   c~  @ oVA@@>;@@@=+@@@=*E@ఠ+_approx_sym t~   u~  @ WA@@@?@@@=-@@@=,W@ఠ6_value_set_of_closures      4@ XA@@D@@@=.e@@@C   5@@@@@=/j@@@@@=0m@@@డ!%equal*Closure_id B   B  @  B   B  @@@ !T!t@@@8@ @@@8$boolE@@@8@@8@@8@6utils/identifiable.mlijcmjc@@/Stdlib__Hashtbl`@$@@@@@@=A@@@@=@@@@=?@@=>@@==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  @@@=@@@=@=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*@@@@@=M@=@@0@@ @@@=;@Ġ%Wrong kC   lC  $@)@@@@@@@=4I@@@@@=5L@@@ภ 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 \ @@@@@@-8checked_approx_for_block@@@-~@@-}@999:@@@@@@ @@@=@@@=@@=3        @_KD@E@F@@@@ఐ蠐&approx F \  F \ @k@@"@@@=L@=@@5@@(@@@=@Ġ%Wrong G   G  @;%Wrong9@@@-|@@@@AA@A09]9_19]9f@@@/@@@  @@B@@@=3        @3@@@@F@@@=@@@ภ ; )G   *G  @ :@@@ @@@=@Ġ"Ok 9H   :H  @;"Ok)@#Tag!t@@@-y%arrayJp@@@-{@@@-z@B@AA@Aj9g9ik9g9@@@i@ఠ$_tag ]H   ^H  @ jYA@@#@@@=w@ఠ&fields kH   lH  @ xZA@@(@@@=@@@=@@@> wH  @@@@@=@@@@@=@@@డ "&& I   I  @@$boolE@@@K@@@@J @@@I@@H@@G(%sequandBA @@@@*stdlib.mli@@ ]@! @@@@@@=@@@@=@@@=@@=@@=3        @_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@'"@@@@@@@N@@@@@@@@@@@@@@@ఐF&fieldsI I @@@<@@@@O@@O@@@@K @@@@@>@@O@@@@m@@5@@@=@@N@>@@@@@@@AF \ d@@r@@@Al@@ -@@@AG3@ E@@@ W$@@ @ %@@ |@ &@@ @c#;I @@@ B@@@N @@@@M@@LG@ALG@AI @@ఐ +projectionsJ  @ { @@  (@@ f @@  @  A@ C@AY @A@ @  @ Aఠ,analyse_exprL!L-@[A@@/which_variables  .specialised_to@@@SC@A@@@AC@A[@'Flambda!t@@@VC@A^@ @@@W@@@࣠33A7BL/CL>@O\A@@;3/../////@IDB@6@.@)@@AcD@A_@@A`D@A\@@A]D@AZ@S@T@@@@ZL.@@$exprAdL?eLC@q]A@@M3QPPQQQQQ@#.`@&@'@@@@@@@ఠ+projectionswMFLxMFW@^A@@ #ref r@@@A}F@Aw@@@A|F@As3qppqqqqq@!-p@$@%@@@డ#refMFZMF]@@!a@ @@@g@@f,%makemutableAA@@@hhh@@ @@@@*/-@@@Av@@Au(@@డ 6#Set%empty*ProjectionMF^MFh@ MFiMFl@@MFmMFr@ @ @@@@ @ E@@@PL@@A @@XM@A@MFH @@@ఠ4used_which_variablesNv|Nv@_A@@j@@@AF@A@@@AF@A~3@ix@y@z@@@డm#refNvNv@h@@@@@@A@@A@@డ #Set%empty(VariableNvNv@ NvNv@@ Nv!Nv@ @@@@7@@E@@@=9@@. @@C:@A@+Nvx @@@ఠ3check_free_variable6O7O@C`A@@@ @@@AF@A@@@BF@A@@AF@A321122222@Zng@h@i@@@࣠@#varAWOXO@daA@@3DCCDDDDD@*_O`RMT@@@@@  @@డ #Map#mem(VariablevPwP@ zP{P@@PP@ @@ @@@@f!a@@@@$boolE@@@@@@@@ @ e@$@@@ @@@A@}@@@A@@@A@@A@@A3@NZm@Q@R@@@@ఐa#varPP@ @@z@@ఐ/which_variablesPP@Z@@@@P@@v@@@AH@A$@డF":=QQ!@@]!a@@@@m@$unitF@@@l@@k@@j*%setfield0BAN@@@@MN@@ @@@@y@@@AG@A@@@A@@@@A@@A@@A\@@ఐ-4used_which_variablesQ Q@Ű@@@@@AH@AH@Aq@@డ #Set#add(Variable-Q".Q*@ 1Q+2Q.@@6Q/7Q2@ @@@@@7@@@@7@@@7@@7@@7@@F@@@@@@@A@@@@A@@@A@@A@@A@@ఐ #var`Q3aQ6@@@%@@డ!!oQ7pQ8@@!a@@@@i@@h'%field0AA@@@@@ @@@@ @@@@AI@B I@B@@@B@@B@@ఐ4used_which_variables,QL@R.@@%@@@B J@B J@B @@8 @@@@{ @@Z@@@A@@PM@@jH@A@@PQ@@ @[RA@xF@BY@A@V@@ఠ(for_exprTZ`TZh@bA@@@$expr@@@BF@B@@@CF@B@@BF@B3@@@@@@࣠@$exprA@TZjTZn@@@@@B3@-TZ\nOm@@@@  @cA'г*'FlambdaTZqTZx@1TZyTZ}@@@9@@@B @@TZiTZ~@@@@"@@@@ఐ5$exprUU@3@6@(@@O@@@B 3@5B@@@Ġ#Var(V)V@;#Var g!t@@@@ Z!t@@@@A@AN@A G]AC H]AV@@@ si@ఠ#varDVEV@QdA@@ r!t@@@B4K@B)398899999@6@@@@@* @@@@@B*@@@Ġ+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@@@B6L@B5j@@@^@@@@@B7n@@n@@ @@@@@B:r@@@ఐ3check_free_variableXX@@@@N@@@C @@@C @@C 3@@@@@@@ఐ#varXX@ @@f@@@CJ@C@@!@@@Ġ%Apply] ]@;%Apply@6%apply@@@@ACAN@A``@@@;l@@] ]@@@@@BC@@@@@F@@@BD@@I@@@BE@@@ภ"()]]@;@@@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@ఠPQPO@fA@J@@@BR3@@@@#obj^+^.ACఠ@gA@G@@@BV@$args^0^4AHఠ@hA@LI@@@B\@@@B['@@A^#^9@@@@@B^J@B]/@@@@@@@@B_3@@@@@B`6@@@ ఐ3check_free_variable_=C_=V@@@@]@@@C*@@@C)@@C(3@WT@V@UFC@E@D63@5@4@@@@ఐ`$meth_=W_=[@@@y@@@C7K@C6@@%@@@@@C@J@C0@ ఐ٠3check_free_variable`]c`]v@<@@@@@@CE@@@CD@@CC5@@ఐ|#obj$`]w%`]z@<@@@@@CRK@CQG@@@@@@@C[J@CKM@డ$List$iter?a|@a|@ Ca|Da|@@@@!a@D$unitF@@@E@@E@$listK@@@E@@@E@@E@@E@(list.mli@@,Stdlib__ListU@*%@@@@@@@G I@G#@@@G@@G@  @@@G@@@G@@G@@G@@ఐR3check_free_variablea|a|@@@@ @@@GK@@@G@@G@@ఐ䠐$argsa|a|@@@M:@@@GJ@G#J@G!@@j @@J@G@@@@@@@Ġ&Assignbb@;&Assign@&assign@@@@AEAN@Abb@@@n@ঠ)new_valuebbA3)new_value@@@!t@@@@@A3.being_assigned ]!t@@@@@@ @At  t  9@@P@@Au : <u : S@@#Q@ఠ#$#"@iA@@@@Bm3@@@@@Abb@@@@@@BoJ@Bn @@@I@@8@@@Bp @@;@@@Bq@@@ఐ٠3check_free_variablecc@<@@@@@@G+@@@G*@@G)3@-*@,@+@@@@ఐ4)new_value'c(c@ @@@@@G8J@G7@@!@@b@Ġ,If_then_else>d?d@;,If_then_else@k!t@@@@@@"@@@@CFAN@A`cac@@@o@ఠ#var]d^d@jjA@@!t@@@BM@B|3RQQRRRRR@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 @@@@@BG@@@*e @@@@@BL@@L@@x@@@@@BP@Ġ-String_switchf%f2@;-String_switch@c@@@]@&stringQ@@@젠@@@@@@@@@@@@@@@@CHAN@Ae e J@@@"q@#varf4f7@lA@@@@f9f:@@1@0@@@B@@@@B@@B@@@B@@f<f=@@1@@@B@@@B@@@Wf>@@Q@@@B@@@@@@U@@@B@@@ఐ3check_free_variable)gBH*gB[@V@@@@@@GD@@@GC@@GB3@@@@@@@ఐ䠐#varAgB\BgB_@ @@@@@GQJ@GP@@!@@|@Ġ,Static_raiseTh`fUh`r@;,Static_raise,@0Static_exception!t@@@!t@@@@@@@BIAN@A|g}g@@@r@@uh`tvh`u@@@@@B3cbbccccc@`@@@ఠ$argsh`wh`{@mA@@$#@@@B@@@B@@@:h`|@@@@@B@@@@@B@@@డ$List$iterii@ ii@@c@@@@.@@@GyI@G_d@@@Ga@@G`@a @@@G^^@@@G]@@G\@@G[3@C<@=@>@@@@ఐ3check_free_variableii@@@@O@@@Gv@@@Gu@@Gt@@ఐ_$argsii@"@@=@@@GmJ@G|J@Gz-@@K @@.@Ġ#Forjj@;#For@7(for_loop@@@@AMAN@Alfhlfy@@@!t@@@E@@A3)bound_var G!t@@@D@@@ @A3V??4V??1@@_f@3(to_valueS!t@@@F@@B@A?X?M?O@X?M?e@@kh@3)direction$(Asttypes.direction_flag@@@G@@C#@AMY?f?hNY?f?@@yi@3$body2@@@H@@D,@AVZ??WZ??@@j@@AZW?2?4[W?2?L@@g@ఠFGFE@`nA@@@@@B?@(to_value_j`jA8ఠ@qoA@<@@@BP@@Akjlj@@s@@@BJ@BX@@@|@@@@@B\@@@@@B_@@@ ఐN3check_free_variablekk@@@@@@@GG@@@G@@G3xwwxxxxx@w@=@?@>0-@/@.@@@@ఐH*from_valuekk@@@!@@@GK@G@@#@@d@@@GJ@G@ఐ3check_free_variablell@@@@8@@@Gx@@@G@@G1@@ఐc(to_valuell@9@@M@@@GJ@GC@@@@J@GF@R @@G@Ġ#Letm!m$@;#Let@((let_expr@@@@AAAN@A^WY^Wj@@@-j@@m%m&@@@@@B@@@@@8@@@B@@@Ġ,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-@@@NF@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@@@Nb@ C@QC@PC@P)C@OC@NC@Na@@@N` 4@@@N_@@N^@@N]3@oMF@G@H@@@@ఐV+project_varss@@@j@@@Nt@'closuress@ð @@e@@@NyJ@Nw!@@ఐ /which_variablesss@ @@ .@@U@@ 2@@@NJ@Nl4@డw 1 3t't)@ 0@@@ @@@NI@N@@@N@ 1@@@N@@N@@NO@@ఐ +projections"t#t&@ 2@@ @@@NJ@NJ@Nd@@డ#Set#add*ProjectionAu*2Bu*<@ Eu*=Fu*@@@Ju*AKu*D@ @@@@@@C@@@F@@@@@@@@@F@@@@@@@N@R@@@NU@@@N@@N@@N@@ภ+Project_varsu*Ftu*Q@נఐ+project_var}u*R~u*]@@@@@@N@@u*Eu*^@@@@@NK@N@@డ ( *u*_u*`@ '@@@ @@@NK@NK@N@@@N@@N@@ఐ 9+projectionsu*k@ @@ 9@@@NL@NL@N@@% @@@@{ @@@@@N@@@@@Ġ/Project_closurevlrvl@;/Project_closurec@ /project_closure@@@@AF@K@Akmk@@@~@ఠ/project_closurevlvl@uA@@@@@M3@@@@@@@@@@@M@@@@@M@@డ#Map#mem(Variableww@ ww@@ w w@ @  @@@@@@N@\@@@N @@@N@@N@@N3@B;@<@=@@@@ఐK/project_closure+w,w@@@_@@@O@/set_of_closures5w6w@e @@@@@OJ@O!@@ఐ /which_variablesGxHx@ ߰@@ ?.@@J@@ @@@O1J@O4@డ  XyYy@ @@@ P@@@OCI@O6@@@O7@ @@@O5@@O4@@O3O@@ఐ +projectionsuyvy@ @@ @@@OAJ@ODJ@OBd@@డ#Set#add*Projectionz z@ zz@@zz@ @S @@@@@@ON@@@@OM@@@OL@@OK@@OJ@@ภ/Project_closurezz-@Lఐ᠐/project_closurez.z=@@@@@@Oq@@zz>@@-@@@ObK@Oo@@డL l nz?z@@ k@@@ b@@@OaK@OK@O@@@O@@O~@@ఐ }+projectionszK@ @@ }@@@OL@OL@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@@@@@M 3@@@@@@@@$@@@M @@'@@@M @@డ#Map#mem(VariableE|sF|s@ I|sJ|s@@N|sO|s@ @ ϰ @@@@@@O@5@@@O @@@O@@O@@O3IHHIIIII@B;@<@=@@@@ఐK$moveo|sp|s@@@_@@@O@'closurey|sz|s@@ @@@@@OJ@O!@@ఐ K/which_variables|s|s@ #@@ .@@J@@ @@@OJ@O4@డ Ƞ ʰ}}@ ǰ@@@ $@@@OI@O@@@O@ @@@O@@O@@OO@@ఐ B+projections}}@ ɰ@@ C@@@OJ@OJ@Od@@డL#Set#add*Projection~~@ ~~@@~~@ @ @@@H@@@O@@@@O@@@O@@O@@O@@ภ;Move_within_set_of_closures~~@ఐ᠐$move~~@@@@@@P@@ ~ ~@@q@@@OK@P@@డ  ~~@ @@@ @@@OK@PK@P@@@P@@P@@ఐ +projections8~@ G@@ @@@PL@PL@P@@% @@@@l @@2@@@O@@@@9@Ġ$PrimRS@;$Prim@2Clambda_primitives)primitive@@@  !t@@@ @@@  !t@@@@CI@K@A8@@@C@Ġ&Pfield~#@;&Pfield2Clambda_primitives)primitive@@@M@#intA@@@M4immediate_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@@@N@@@MC@@@9'@@@@@N@@@NL@ఠ$_dbgʠ@D@{A@@@@@NZ@@@ E@@@@@N_@@@@@Nb@@డ#Map#mem(Variable%FS&F[@ )F\*F_@@.F`/Fc@ @  @@@@@@P*@|@@@P( @@@P'@@P&@@P%3)(()))))@@@lf@g@hF?@@@A@@@@ఐt#varQFdRFg@@@@@@P@@@P@M@@@P@@P@@P@U@@@PY@@@P@@P@@P3@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@@@@@@Q @Q @#var Xd Yd@@@@@@QN@Q #@@ఐ*/which_variables jd kd@@@b0@@L@@@@@Q*N@Q6@ t7 ud@@@@@@P@ @@@P@@P@@PK@Q5K@Q1@@ఐ:/set_of_closures  @@@P@@@QC@Q@@)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@QB@@@QA@@\Q@@yp@A@ S@@@ఠ9aliasing_specialised_argsР  @!@A@@ܠ.specialised_to@@@QJ@Qb@@@QJ@Q]3        @@@@@@డ#Map&filter(Variable! !!@ !$!%@@!)!* @ @ @@@@@@@Qg@3@@@Qf@@Qe@@Qd@;@@@Qc?@@@Qa@@Q`@@Q_3!,!+!+!,!,!,!,!,@7@@@@࣠@qA@!O!P@@@@@QH@@@@'spec_toA@!^!_@@[@@@QW@  @!pAAa гd'Flambda!q!r&@k!u'!v5@@@s@@@Qo @@!}!~6@@@zs@@@@డ!#Map#mem(Variable!:F!:N@ !:O!:R@@!:S!:V@ @ @@@@@@Q@@@@Q@@@Q@@Q@@Q3!!!!!!!!@XP@S@K@@@@ఐa'spec_to!:W!:^@@@@@@Q@Q@#var!:_!:b@@@K@@@QN@Q#@@ఐ/which_variables!:c!:r@r@@0@@L@@4@@@QN@Q6@! !:s@@@j@@@Q@E@@@Q@@Q@@QK@QK@Q@@ఐ/set_of_closures"t~"t@@@@@@Q@Q@0specialised_args" t" t@S@@RK@Q@@@Q@@ @@ @A@" @@@ఠ-aliasing_varsӠ"""#@"/BA@@ @@@RVJ@R @@@R:J@R3""""""""@&=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;@@@R@@R@@R@@@R8O@6@@@R@2@@@R@@R@@R@@@R @ @@@R @ @@@R  @@@R @@R@@R@@R@@R@qภ$None";"""@@W@@@@AA@A"@@"@"@{@@t@@@RI@@RH@@RG@@@RF@qภ"@"@@t@@@RN@p@@@RM@@RL@@RK@@@RJ@@ఐ2aliasing_free_vars""@@@ ڠ@@@RU@@ఐ9aliasing_specialised_args# # @۰@@ K@Rq@@@Rp@@ @@@A@# @@డ!#not##&/#$&2@@@@@F@@@E@@D(%boolnotAA@@@LLLt@@\\@@@@@@@R@@@R@@R3#*#)#)#*#*#*#*#*@%@@ @@@@డ#Map(is_empty(Variable#X&4#Y&<@ #\&=#]&@@@#a&A#b&I@ @@!C!a@@@@@@@@@@@c@@@@!Sj@@@RJ@R@@@R@@@R@@RB@@ఐk-aliasing_vars#&J#&W@L@@!l@@@RS@@#&3#&X@@s@@@R@RK@R]@@| @@@@@RJ@Rc@డ D#Map$iter(Variable#dl#dt@ #du#dx@@#dy#d}@ @@@ D@@@@!a@L$unitF@@@@@@@@!@@@ @@@~@@}@@|@ N@ J[@,"@@@@ c@@@R@!4function_declaration@@@RI@R#@@@R@@R@@R@!Ӡ@@@R @@@R@@R@@R@@࣠@+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@SC@R@@@@@@ @@R@ఐh,analyse_expr$k!$l-@%@@ge@W@M@H@@R@@R@@R/@qఐ`-aliasing_vars$M$Z@A@@"av@@@S@@@ఐ(fun_decl$.$6@L@@4function_declaration@@@S @S V@$body$7$;@3$body @@@6~@@@-@@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@@@0@@EH@@ ::: :::@@ /[@3#dbgT{!t@@@1@@FT@@ ?;; ?;;@@ ;\@3&inline`w0inline_attribute@@@2@@G`@@ A<< A<<@@@ G]@3*specialisel4specialise_attribute@@@3@@Hl@@ 'CG=7=U@@ i`@@@ A/8R8T B/8R8]@@ mX@@@C@WC@S @@@@@@@@S N@R@A@%E@@డ!#Set$iter(Variable%Whr%Xhz@ %[h{%\h~@@%`h%ah@ @@@#@@@8$unitF@@@8@@8 @%@@@8  @@@8 @@8 @@8 @!@[@%@@@@;@@@S@@@S@@S@:@@@S@@@S@@S@@S3%w%v%v%w%w%w%w%w@F@9@:@;@@@@࣠@#varA%h%h@%EA@@^@@@S*3%%%%%%%%@@@@@ @@డ"K#Map$find(Variable%%@ %%@@%%@ @"I @@@"I@@@S4@#@@@SXO@S2@@@S3@@S1@@S03%%%%%%%%@LC@@@S)@=@>@@@@ఐM#var%%@@@@@@SC@@ఐנ-aliasing_vars%%@@@#ؠ*@@@SW'@@E@@.(@Ġ)Not_found& & @"=@@@@%@@@So3%%%%%%%%@8@@@&@@@@@Sp@@@ ภ"0&&@"/@@@"/@@@Sz@&%@@@@@Sv@ఠ'spec_toנ&3 &4@&@FA@@%@@@Sra@@(@@@Ssd@@@ఐ3check_free_variable&F&G)@s@@@"@@@S @@@S@@S~3&:&9&9&:&:&:&:&:@y$@@@@@@ఐ-'spec_to&`*&a1@@@!@@@S@S@#var&l2&m5@!@@"@@@SQ@S#@@/@@O$@@@A&v @@ @@@Si@&{h&|6@@@>@@@S$@@@S#@@S"M@SM@S@@ఐ?$used&7C&7G@@@>@@@@@@@@SM@S @X @@T@&d~&7H@@@#$@@@R@@@@R@@R@@RJ@SJ@S@@ఐf/set_of_closures&IS&Ib@>@@|@@@S@S@.function_decls&Ic&Iq@@@@@@S@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^@@"6S@36set_of_closures_origin*6Set_of_closures_origin!t@@@&@@B#@@""66""666@@"DT@8@@"'7(7*"'7(7U@@"HU@W>@@8,J@S@@@S@@'&^'w@@@SJ@R@@'!&,@@@ @@@  @@@6 @@@Ġ$Prim'/'0@ ݠ@'4'5@@ @@@N @ఠ$vars̠'@'A@'M}A@@  @@@N@@@N @@'N'O@@ @@@N @@@%'T@@L@@@N @@O@@@N@@@డ%$List$iter'h'i@ 'l'm@@)@@@@#@@@SI@S*@@@S@@S@' @@@S$@@@S@@S@@S3'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@@''@@@@@N@@@@@@@@N@@@Ġ%Const''@;%Const@#1%const@@@@AA@K@A# r# r@@@#6y@@((@@@@@N#@@@@@@@@N$@@@@@ @@@@@N%@Ġ/Allocated_const((@;/Allocated_const@/Allocated_const!t@@@@AB@K@A#4s#5s<@@@#`z@@(-(.@@@@@N)@@@@@*@@@N*@@@@j @@.@@@N+@Ġ,Read_mutable(B(C@;,Read_mutable@!t@@@@AC@K@A#\t=?#]t=c@@@#{@@(U(V@@@@@N/@@@@@R@@@N0@@@@ @@V@@@N1@Ġ1Read_symbol_field(j (k@;1Read_symbol_field@!t@@@#intA@@@@BD@K@A#udf#ud@@@#|@@((@@@@@N6.@@@@@@N73@@@% @@@@@N87@@7@@@@@@@N9;@Ġ+Project_var((*@7@(+(,@@4@@@N=M@@@ @@@@@N>Q@@Q@@ @@@@@N?U@Ġ/Project_closure(/(>@ @(?(@@@ @@@NCg@@@ @@@@@NDk@@k@@ @@@@@NEo@Ġ;Move_within_set_of_closures(AG(Ab@ Ġ@(Ac(Ad@@ @@@NI@@@ @@@@@NJ@@@@ @@@@@NK@Ġ$Expr(ek(eo@;$Expr@@@@@AJ@K@A$9;$9F@@@$/D@@(ep(eq@@@@@NO@@@@@@@@NP@@@@9 @@@@@NR@@@ภ)eu@@@@@@@A)q@@3((((((((@@@@A@F@T@A@@ డ1Flambda_iterators-iter_toplevel1Flambda_iterators)'})(}@ )+}),}@@@@!t@@@V$unitF@@@V@@V@@&%named@@@V@@@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@@@@@@W I@@@W @@W @@ఐ)for_named)})}@"@@@@@@W@@@W@@W-@@ఐO$expr)})}@(@@:@@@@q@@@WF@V@@@ఠ+projections))@)GA@@'@@@W)F@W3))))))))@S@@@డ(Ggi))@f@@@]F@W!@@@W"@@W @@ఐs+projections)@@@s@@@W'G@W*G@W((@@  @@)@A@) @@@ఠ4used_which_variables**@*HA@@ @@@W6F@W+3))))))))@MF@G@H@@@డ(**@@@@F@W.@@@W/@@W-@@ఐI4used_which_variables**@@@@@@W4G@W7G@W5*@@  @@+@A@*6 @@@ఐ+projections*B*C@8@@3*.*-*-*.*.*.*.*.@<JC@D@E@@@@ఐP4used_which_variables*Q!*R5@ @@$E@W=@@@@@0@ @@W>@( @@T@i @@@9@@ @6@@ M@x@@ @@@ @9@@ t@@@@ A@a_@Q@G@B@@WJ@@WI@@WHC@WE,@@@*sL"@@#@@@ఠ2from_function_decl*7;*7M@*IA@@#env(@@@WC@WL/which_variables(s(l@@@WC@W@@@WC@WQ-function_decl(x4function_declaration@@@W[C@WV(@@@WC@WW@@WXC@WR@@WSC@WM@@WNC@WK3********@m@@@࣠00A4*7O*7R@*JA@@83********@}G*77*!!*@@@@@*7N @99A=*7T*7c@*KA@@A3********@ O@@@@@@*7S@99A@*dl*dy@@=@@@W\3********@V@@@@@G  @*LAF гI'Flambda*d|*d@P*d*d@@@X@@@WY @@"@@@]@@+dj+d@@@@ఠ+projections++@+$MA@@) @@@W{G@W`3+ +++ + + + + @9E>@A@6@@@@ఠ4used_which_variables+++,@+8NA@@!@@@W|G@Wa@@ @@@@ @@Wd@ఐA,analyse_expr+D+E@@@@)%:@@@Wm@@@Wl@5@@@Wk@)G@@@Wi@"@@@Wj@@Wh@@Wg@@WfA@Zఐ/which_variables+k+l@@@N@@ఐ-function_decl+z+{@Z@@@@@W@Wb@$body++@@@p@@@W}H@WH@Wp@@M @@@|@j@@WH@Wzy@A@+@@@ఠ+projections++@+OA@@)@@@WG@W3++++++++@@@@@@@@ఐ)Ġ7known_valid_projections++@@@))@@@W))@@@W)))@@@W@@@W)@@@W@@W@@W@@W'@)אఐ##env++@ @@X4@)֐ఐՠ+projections++@=@@)@@@WH@WH@WH@)ؐఐ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@@)@@@X3,7,6,6,7,7,7,7,7@@@@@ @@@ఠ/projecting_from,[  ,\  @,hQA@@)k@@@XI@X3,M,L,L,M,M,M,M,M@/&)@@@X@ @!@@@డ)/projecting_from*Projection,w  ,x  @ ,{  ,|  @@)f@@@)f@@@X )@@@X@@X#@@ఐM*projection,  ,  @-@@)@@@X3@@!@@74@A@,  @@డ+#not,  ,  @ @@@ @@@X @@@X@@X3,,,,,,,,@KYR@S@T@@@@డ)T#Set#mem(Variable,  ,  @ ,  ,  @@,  ,  @ @# @@@#@@@X'@#@@@X&#@@@X%@@X$@@X#1@@ఐ/projecting_from,  , !@;@@#@@@X9J@X8C@@ఐР4used_which_variables, !, !@K@@#@@@X2J@XGJ@XFW@@-  - !@@ @@@X!@XHJ@X1a@@m @@*n@@@XII@X g@}@@@- h - !@@@*@@@W*~@@@W@@WG@XNG@XK@@ఐ+projections-/!!i@j@@+#@@@WG@XVG@XU@@"r@@@5s@@@t@@@suA@C@X\|@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. . H/home/touraine/ci/builds/workspace/main/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_element0.1 @1ѧU*Closure_id0sM;@eAlx.Closure_origin0aBzlt@*Cmi_format0_j~GB00Compilation_unit0i(&ۥ$P.*Data_types0I'Ue`wq]Ѡ)Debuginfo0PtJ=^w/#Env0J=,Wu)Export_id0Qh: ".09L@jmƠ'Flambda01Ux|ՍCb- `08Jn8I:*Format_doc0]mWϓ:Mݠ*Freshening0$1\MmAʳ%Ident0ki8' x%+Š,Identifiable0~ܽǞ+,0WtC --Inlining_cost0,30`JD:G2P͠4Inlining_stats_types0|Ca~T E~O-0ixjx-{`͡;7Internal_variable_names0HdeՄL ԩ&Lambda0.Vu$ ^3,Linkage_name0h AEa.C1 R)Load_path0I@18 ~(Location0a7cK_H%9)Longident0s `7mɕc$Misc0Z1X=_c0Mutable_variable0_ ?.+L'Numbers00$ PS6?nu.+Outcometree0euWS~d栠)Parameter0Kb"Qjʑǭ@uYu)Parsetree0Uҩ=p>*%"e$Path0(|r>8۠dwx)Primitive0²~$xzT෠*Projection0n訥(2Set_of_closures_id0pi|ny6Set_of_closures_origin0{HO/Pؠ%Shape0mA;HXߠ-P0P*+ K`#4MK0Static_exception0wBߝܔd3B&Stdlib0-i8Q"L{v;-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__List0eXԶ4r+Stdlib__Map0hؤ5O8% By.Stdlib__Result06 ]/J+Stdlib__Seq0nwzG&amg+Stdlib__Set0kb'G|PIF(.Stdlib__String0s&Symbol0_)Ӷӥ!h#Tag0 %XC}{3.Type_immediacy0A^abOhՠ%Types0R.z78m)Unit_info0ڀh%(2Var_within_closure0H6ʤ(fc2ӉrH(Variable0]Eè0=(Warnings0mJɒkgr