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;@@#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@@#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@S3BAABBBBB@YxAp@Xs@@@࣠FF$AJgbhb@tCA@@N3TSSTTTTT@]obpJ@@@@@rb @LL%AP{b|b@DA@@T3hgghhhhh@ e@@@@@@b@KK&AObb @EA@@S3yxxyyyyy@h@@@@@@b@@డ*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] dNX dN\@GA@@(Variable!t@@@I@X3@4+b@@@S@%@&@@@డ/projecting_from*Projection,dN_-dNi@ 0dNj1dNy@@@!t@@@*@@@@@@qM  rM  @@W@@@@@@@\7@@@[@@Z2@@ఐa*projectionUdNzVdN@<@@@@@B@@0@@KC@A@]dNT@@@ఠ)outer_var|heie@uHA@@(Variable!t@@@ I@J3_^^_____@^qj@k@l@@@డ(Variable#Map$find(Variableff@ ff@@ff@ @@^#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@@@@@ ภ%false g g@;@@@M@@@@B@@A@@@ @@@@@@g @@@ఠ)outer_var"h#h@/IA@@@@@k@гᠡ'Flambda4h5h$@8h%9h3@@@@@@ @@@hAh4@@@@@@డ*Freshening.apply_variable*FresheningQi8BRi8L@ Ui8MVi8[@@@*Freshening!t@@@ @!t@@@ @@@ @@ @@ @ !middle_end/flambda/freshening.mliP  P  @@L@#@@@@@@ @@@@ @@@ @@ @@ 3jiijjjjj@ e^@_@`@@@@డ*freshening!Ei8]i8^@ 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@@@@@A f4@@@A@"e6@@@ఠ&approx-k.k@:JA@@3Simple_value_approx!t@@@)I@%~3$##$$$$$@@@@@@డa(find_exn!EKkLk@ OkPk@@@6@@@"6@(Variable!t@@@"5/@@@"4@@"3@@"2@C  C  J@@I@@@@M@@@%@@@@%A@@@%@@%@@%<@@ఐ#envkk@@@gI@@ఐ&)outer_varkk@S@@;@@@)J@)J@)]@@N @@f^@A@k @@ఐ*projectionll@@@@@@)3@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@.@@:@@*@@@-@Ġ"Ok5o / 96o / ;@;"Ok;@@@-@E-value_closure@@@-&optionL(Variable!t@@@-@@@-&Symbol!t@@@-@@@-i5value_set_of_closures@@@-@D@AA@Ad@@e@0@c@@@c@ఠ._value_closureBro / =so / 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@@@.@@@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_var q  !q  @@@f@@@1@1@#var,q  -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_closureslr  mr  @[@@@@@6a@6^i@*bound_varsxr  yr  @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@Ġ%Wrong]s  ^s  @;%Wrong(@@@@AA@A_??`?@@@@^@@@  @@i@@@.X@@l@@@.[@@@ภirs  ss  @h@@@%c@@@Avnwt  @@@@@)3dccddddd@i@@@Ġ/Project_closureu  u  -@;/Project_closure@]/project_closure@@@@AA@D@AF  F  !@@@bS@ఠ/project_closureu  .u  =@LA@@@@@)3@@@@@@@@@@@)@@@@@)@@@డ '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 1w   2w  @ >TA@@@@@6_@@@= 9w  @@s@@@6d@@v@@@6g@@@డ#Set#mem(Variable Qx   Rx  @  Ux   Vx  @@ Zx   [x  @ @@!#Set#elt@@@8A@ !t@@@8@$boolE@@@8?@@8>@@8=@ll@@+Stdlib__Setd@)@@@@@@8@@@@8@@@8@@8@@83 p o o p p p p p@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 3}   4}  @  7}   8}  @@E@@@E@@@= B@@@= @@= 3 , + + , , , , ,@4-@.@/@@@@ఐ#&approx P}   Q}  @@@]@@@=L@=@@&@@[@@@=@Ġ"Ok f~   g~  @1ఠ-value_closure o~   p~  @ |UA@@6@@@=)3@ఠ+_approx_var }~   ~~  @ VA@@>;@@@=+@@@=*E@ఠ+_approx_sym ~   ~  @ 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 HB   IB  @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 C   C  $@)@@@@@@@=4I@@@@@=5L@@@ภ C  ( C  -@@@@T@@@A }   D . 9@@"3        @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@@@=@@@ภ ; DG   EG  @ :@@@ @@@=@Ġ"Ok TH   UH  @;"Ok)@#Tag!t@@@-y%arrayJp@@@-{@@@-z@B@AA@Aj9g9ik9g9@@@i@ఠ$_tag xH   yH  @ YA@@#@@@=w@ఠ&fields H   H  @ ZA@@(@@@=@@@=@@@> H  @@@@@=@@@@@=@@@డ "&& 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_indexI  I  @@@7@@@=N@=N@=P@@@'I  (I  @@?@@@=N@=N@=`@@ @@@@@=@=N@=h@@డ !<DI  EI  @@c@@@@i@@@a@@@@@@@@_CBB`CBb@@^B@@@@@@@=@@@@=@@@=@@=@@=@@ఐ+field_indexsI  tI  @k@@1@@@>N@> N@> @@డ %Array&lengthI  I  @ I  I  @@@%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 @@ఐ +projections J  @ { @@  (@@ f @@  @  A@ C@AY @A@ @  @ Aఠ,analyse_exprL!L-@+[A@@/which_variables  .specialised_to@@@SC@A@@@AC@A[@'Flambda!t@@@VC@A^@ @@@W@@@࣠33A7]L/^L>@j\A@@;3JIIJJJJJ@IDB@6@.@)@@AcD@A_@@A`D@A\@@A]D@AZ@S@T@@@@uL.@@$exprAL?LC@]A@@M3lkklllll@#.`@&@'@@@@@@@ఠ+projectionsMFLMFW@^A@@ #ref r@@@A}F@Aw@@@A|F@As3@!-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(Variable2Nv3Nv@ 6Nv7Nv@@;Nv<Nv@ @@@@7@@E@@@=9@@. @@C:@A@FNvx @@@ఠ3check_free_variableQORO@^`A@@@ @@@AF@A@@@BF@A@@AF@A3MLLMMMMM@Zng@h@i@@@࣠@#varArOsO@aA@@3_^^_____@*zO{RMT@@@@@  @@డ #Map#mem(VariablePP@ PP@@PP@ @@ @@@@f!a@@@@$boolE@@@@@@@@ @ e@$@@@ @@@A@}@@@A@@@A@@A@@A3@NZm@Q@R@@@@ఐa#varPP@ @@z@@ఐ/which_variablesPP@Z@@@@P@@@@@AH@A$@డF":=QQ!@@]!a@@@@m@$unitF@@@l@@k@@j*%setfield0BAN@@@@MN@@ @@@@y@@@AG@A@@@A@@@@A@@A@@A\@@ఐ-4used_which_variables)Q *Q@Ű@@@@@AH@AH@Aq@@డ #Set#add(VariableHQ"IQ*@ LQ+MQ.@@QQ/RQ2@ @@@@@7@@@@7@@@7@@7@@7@@F@@@@@@@A@@@@A@@@A@@A@@A@@ఐ #var{Q3|Q6@@@%@@డ!!Q7Q8@@!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 @@!TZi"TZ~@@@@"@@@@ఐ5$expr.U/U@3@6@(@@O@@@B 3@5B@@@Ġ#VarCVDV@;#Var g!t@@@@ Z!t@@@@A@AN@A G]AC H]AV@@@ si@ఠ#var_V`V@ldA@@ r!t@@@B4K@B)3TSSTTTTT@6@@@@@* @@@@@B*@@@Ġ+Let_mutablexWyW@;+Let_mutable5@ +let_mutable@@@@ABAN@A v_km w_k@@@ k@ঠ-initial_valueWW@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@@@ภ"()5]6]@;@@@N@@@@A@@A@@@ @@U@Ġ$SendH^I^"@;$Send@m$send@@@@ADAN@AFaGa@@@rm@ঠ$meth`^%a^)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$iterZa|[a|@ ^a|_a|@@@@!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_variable*c+c@<@@@@@@G+@@@G*@@G)3@-*@,@+@@@@ఐ4)new_valueBcCc@ @@@@@G8J@G7@@!@@b@Ġ,If_then_elseYdZd@;,If_then_else@k!t@@@@@@"@@@@CFAN@A`cac@@@o@ఠ#varxdyd@jA@@!t@@@BM@B|3mllmmmmm@O@@@@dd@@C@@@B} @@dd@@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@#var f4f7@lA@@@@f9f:@@1@0@@@B@@@@B@@B@@@B@@)f<*f=@@1@@@B@@@B@@@W3f>@@Q@@@B@@@@@@U@@@B@@@ఐ3check_free_variableDgBHEgB[@V@@@@@@GD@@@GC@@GB387788888@@@@@@@ఐ䠐#var\gB\]gB_@ @@@@@GQJ@GP@@!@@|@Ġ,Static_raiseoh`fph`r@;,Static_raise,@0Static_exception!t@@@!t@@@@@@@BIAN@A|g}g@@@r@@h`th`u@@@@@B3~}}~~~~~@`@@@ఠ$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_valuezj{jA8ఠ@oA@<@@@BP@@Ajj@@s@@@BJ@BX@@@|@@@@@B\@@@@@B_@@@ ఐN3check_free_variablekk@@@@@@@GG@@@G@@G3@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@@Ym6Zm7@@0@@@B)@@@.@-@@@Bݠ@*@@@B@@B@@@B;@@@+@@@B@@@@0@@@BE@@@U!@@@@@BI@@I@@|%@@@@@BM@Ġ%Whilem:m?@;%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@@@@!@@@A U@@#3@@@@A@1F@L@A@ @@ఠ)for_namedpsyps@'rA@@@%named@@@LF@L-@@@NF@L@@LF@L3@B\U@V@W@@@࣠@%namedA@=ps>ps@@@@@L3+**+++++@-FpsuGew@@@@  @UsA'г*'FlambdaVpsWps@1Zps[ps@@@9@@@L @@bpscps@@@@"@@@@ఐ5%namedoqpq@3@6@(@@O@@@L3_^^_____@5B@@@Ġ+Project_varrr@;+Project_var%named@@@@+project_var@@@ @AH@K@A@@@@@ఠ+project_varrr@tA@@@@@L3@.@@@@@$@@@@@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 3 t'!t)@ 0@@@ @@@NI@N@@@N@ 1@@@N@@N@@NO@@ఐ +projections=t>t&@ 2@@ @@@NJ@NJ@Nd@@డ#Set#add*Projection\u*2]u*<@ `u*=au*@@@eu*Afu*D@ @@@@@@C@@@F@@@@@@@@@F@@@@@@@N@R@@@NU@@@N@@N@@N@@ภ+Project_varu*Fu*Q@נఐ+project_varu*Ru*]@@@@@@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@  w!w@@%w&w@ @  @@@@@@N@\@@@N @@@N@@N@@N3      @B;@<@=@@@@ఐK/project_closureFwGw@@@_@@@O@/set_of_closuresPwQw@e @@@@@OJ@O!@@ఐ /which_variablesbxcx@ ߰@@ ?.@@J@@ @@@O1J@O4@డ  syty@ @@@ P@@@OCI@O6@@@O7@ @@@O5@@O4@@O3O@@ఐ +projectionsyy@ @@ @@@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@LvA@@@@@M 3/../////@@@@@@@@$@@@M @@'@@@M @@డ#Map#mem(Variable`|sa|s@ d|se|s@@i|sj|s@ @ ϰ @@@@@@O@5@@@O @@@O@@O@@O3dccddddd@B;@<@=@@@@ఐK$move|s|s@@@_@@@O@'closure|s|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@@డ  9~:~@ @@@ @@@OK@PK@P@@@P@@P@@ఐ +projectionsS~@ G@@ @@@PL@PL@P@@% @@@@l @@2@@@O@@@@9@Ġ$Primmn@;$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;:MJ@@U@@@@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@  Ady Bd|@@ Fd} Gd@ @ @@@@@@P@w@@@P@@@P@@P@@P3 A @ @ A A A A A@XP@S@K@@@@ఐa'spec_to gd hd@@@@@@Q @Q @#var sd td@@@@@@QN@Q #@@ఐ*/which_variables d d@@@b0@@L@@@@@Q*N@Q6@ 7 d@@@@@@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!;!<@ !?!@@@!D!E @ @ @@@@@@@Qg@3@@@Qf@@Qe@@Qd@;@@@Qc?@@@Qa@@Q`@@Q_3!G!F!F!G!G!G!G!G@7@@@@࣠@qA@!j!k@@@@@QH@@@@'spec_toA@!y!z@@[@@@QW@  @!AAa гd'Flambda!!&@k!'!5@@@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@"2 @@@ఠ-aliasing_varsӠ"=">@"JBA@@ @@@RVJ@R @@@R:J@R3"5"4"4"5"5"5"5"5@&=6@7@8@@@డ#Map.disjoint_union(Variable"`"a@ "d"e@@"i"j@ @"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@#2 @@డ!#not#>&/#?&2@@@@@F@@@E@@D(%boolnotAA@@@LLLt@@\\@@@@@@@R@@@R@@R3#E#D#D#E#E#E#E#E@%@@ @@@@డ#Map(is_empty(Variable#s&4#t&<@ #w&=#x&@@@#|&A#}&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@$4d$5d@@/@@@R@  @$FCA5 г8'Flambda$Gd$Hd@?$Kd$Ld@@@G@@@R( @@$Sd$Td@@@N,@@@@@@@$a $b @@C@R3$M$L$L$M$M$M$M$M@ 91@4@,@@@@ఠ$usedՠ$o$p@$|DA@@*C@SC@R@@@@@@ @@R@ఐh,analyse_expr$!$-@%@@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@%`@@డ!#Set$iter(Variable%rhr%shz@ %vh{%wh~@@%{h%|h@ @@@#@@@8$unitF@@@8@@8 @%@@@8  @@@8 @@8 @@8 @!@[@%@@@@;@@@S@@@S@@S@:@@@S@@@S@@S@@S3%%%%%%%%@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&9&:@"/@@@"/@@@Sz@&@@@@@@Sv@ఠ'spec_toנ&N &O@&[FA@@%@@@Sra@@(@@@Ssd@@@ఐ3check_free_variable&a&b)@s@@@"@@@S @@@S@@S~3&U&T&T&U&U&U&U&U@y$@@@@@@ఐ-'spec_to&{*&|1@@@!@@@S@S@#var&2&5@!@@"@@@SQ@S#@@/@@O$@@@A& @@ @@@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@@'5&^'6w@@@SJ@R@@'<&,@@@ @@@  @@@6 @@@Ġ$Prim'J'K@ ݠ@'O'P@@ @@@N @ఠ$vars̠'['\@'h}A@@  @@@N@@@N @@'i'j@@ @@@N @@@%'o@@L@@@N @@O@@@N@@@డ%$List$iter''@ ''@@)@@@@#@@@SI@S*@@@S@@S@' @@@S$@@@S@@S@@S3''''''''@+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(3(4@;/Allocated_const@/Allocated_const!t@@@@AB@K@A#4s#5s<@@@#`z@@(H(I@@@@@N)@@@@@*@@@N*@@@@j @@.@@@N+@Ġ,Read_mutable(](^@;,Read_mutable@!t@@@@AC@K@A#\t=?#]t=c@@@#{@@(p(q@@@@@N/@@@@@R@@@N0@@@@ @@V@@@N1@Ġ1Read_symbol_field( (@;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)B})C}@ )F})G}@@@@!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)})|)|)})})})})}@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@@@డ(*0*1@@@@F@W.@@@W/@@W-@@ఐI4used_which_variables*E@@@@@@W4G@W7G@W5*@@  @@+@A@*Q @@@ఐ+projections*]*^@8@@3*I*H*H*I*I*I*I*I@<JC@D@E@@@@ఐP4used_which_variables*l!*m5@ @@$E@W=@@@@@0@ @@W>@( @@T@i @@@9@@ @6@@ M@x@@ @@@ @9@@ t@@@@ A@a_@Q@G@B@@WJ@@WI@@WHC@WE,@@@*L"@@#@@@ఠ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+2+3@+?MA@@) @@@W{G@W`3+$+#+#+$+$+$+$+$@9E>@A@6@@@@ఠ4used_which_variables+F+G@+SNA@@!@@@W|G@Wa@@ @@@@ @@Wd@ఐA,analyse_expr+_+`@@@@)%:@@@Wm@@@Wl@5@@@Wk@)G@@@Wi@"@@@Wj@@Wh@@Wg@@WfA@Zఐ/which_variables++@@@N@@ఐ-function_decl++@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,2 h j,3 h t@ ,6 h u,7 h x@@,; h y,< h @ @) @@@@)@@@W)@@@W@@W@*@@@W*!@@@W@@W@@W3,:,9,9,:,:,:,:,:@@@@@@@࣠@*projectionA,b h ,c h @,oPA@@)@@@X3,R,Q,Q,R,R,R,R,R@@@@@ @@@ఠ/projecting_from,v  ,w  @,QA@@)k@@@XI@X3,h,g,g,h,h,h,h,h@/&)@@@X@ @!@@@డ)/projecting_from*Projection,  ,  @ ,  ,  @@)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@}@@@-2 h -3 !@@@*@@@W*~@@@W@@WG@XNG@XK@@ఐ+projections-J!!i@j@@+#@@@WG@XVG@XU@@"r@@@5s@@@t@@@suA@C@X\|@A@y@yx@@+A+@++@@+|A+`@+[+v@@+S@J@@@@@3-P-O-O-P-P-P-P-P@@@@α3Extract_projections@@@ H************************************************************************-qA@@-rA@L@ H -wBMM-xBM@ H OCaml -}C-~C@ H -D-D3@ H Pierre Chambart, OCamlPro -E44-E4@ H Mark Shinwell and Leo White, Jane Street Europe -F-F@ H -G-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@@*./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.'.( J/home/ci/builds/workspace/precheck/flambda/false/label/ocaml-ubuntu-latest ?>3210/.-,+*)('&%$#"! @@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- b08Jn8I:*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ߠ-R0P*+ 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