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@@@)KC@T+projections*Projection#Set!t@@@0C@Y/which_variables(Variable#Map!t'Flambda.specialised_to@@@{C@=@@@C@^)@@@/C@_@@`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@@@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@@@@@ @@@ఠ$fromW dNX dN\@GA@@(Variable!t@@@I@=3@4+b@@@8@%@&@@@డ/projecting_from*Projection,dN_-dNi@ 0dNj1dNy@@@!t@@@*@@@@@@qM  rM  @@W@@@@@@@A7@@@@@@?2@@ఐa*projectionUdNzVdN@<@@@@@B@@0@@KC@A@]dNT@@@ఠ)outer_varvheie@uHA@@(Variable!t@@@ I@/3_^^_____@^qj@k@l@@@డ(Variable#Map$find(Variableff@ ff@@ff@ @@^#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@@@@@ ภ%false g g@;@@@M@@@@B@@A@@@ @@@@@@g @@@ఠ)outer_var"h#h@/IA@@@@@|k@гᠡ'Flambda4h5h$@8h%9h3@@@@@@y @@@hAh4@@@@@@డ*Freshening.apply_variable*FresheningQi8BRi8L@ Ui8MVi8[@@@*Freshening!t@@@ S@!t@@@ R@@@ Q@@ P@@ O@ !middle_end/flambda/freshening.mliP  P  @@L@#@@@@@@ @@@@ @@@ @@ @@ 3jiijjjjj@ e^@_@`@@@@డ*freshening!Ei8]i8^@ 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@@@@@A f4@@@A@"e6@@@ఠ&approxs-k.k@:JA@@3Simple_value_approx!t@@@)II@%E3$##$$$$$@@@@@@డa(find_exn!EKkLk@ OkPk@@@6@@@!@(Variable!t@@@!/@@@!@@!@@!@C  C  J@@I@@@@M@@@%K@@@@%JA@@@%I@@%H@@%G<@@ఐ#envkk@@@gI@@ఐ&)outer_varkk@S@@;@@@)JJ@)PJ@)O]@@N @@f^@A@k @@ఐ*projectionll@@@@@@)R3@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@-@@:@@*@@@-@Ġ"Ok5o / 96o / ;@;"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_closure6ro / =so / K@OA@@9@@@-g@ఠ+_approx_var7o / Mo / X@PA@@A>@@@-@@@-y@ఠ+_approx_sym8o / Zo / 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_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  @[@@@@@6@6i@*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@@@+@@@+@@@+@@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@Ġ%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_closureԠu  .u  =@LA@@@@@)n3@@@@@@@@@@@)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 1w   2w  @ >TA@@@@@6S_@@@= 9w  @@s@@@6Td@@v@@@6Ug@@@డ#Set#mem(Variable Qx   Rx  @  Ux   Vx  @@ Zx   [x  @ @@!#Set#elt@@@7@ !t@@@7$boolE@@@7@@7@@7@ll@@+Stdlib__Setc@)@@@@@@8E@@@@8D@@@8C@@8B@@8A3 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@!@@@@@@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 3}   4}  @  7}   8}  @@E@@@E@@@<B@@@<@@<3 , + + , , , , ,@4-@.@/@@@@ఐ#&approx P}   Q}  @@@]@@@;@@@<@@@<E@ఠ+_approx_sym ~   ~  @ 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 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*@@@@@=1M@=/@@0@@ @@@<@Ġ%Wrong C   C  $@)@@@@@@@<I@@@@@<L@@@ภ 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 \ @@@@@@-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@@@=\@@@ภ ; DG   EG  @ :@@@ @@@=k@Ġ"Ok TH   UH  @;"Ok)@#Tag!t@@@-@%arrayJp@@@-B@@@-A@B@AA@Aj9g9ik9g9@@@i@ఠ$_tag xH   yH  @ YA@@#@@@=cw@ఠ&fields H   H  @ ZA@@(@@@=e@@@=d@@@> H  @@@@@=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_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@'"@@@@@@@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@@ @@ఐ +projections J  @ { @@  (@@ 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@@A398899999@  C <@ =@ >@@@࣠33A7]L/^L>@j\A@@;3JIIJJJJJ@IDB@6@.@)@@AD@A@@AD@@@@@D@@@S@T@@@@uL.@@$exprAL?LC@]A@@M3lkklllll@#.`@&@'@@@@@@@ఠ+projectionsԠMFLMFW@^A@@ #ref r@@@AF@A@@@AF@A3@!-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(Variable2Nv3Nv@ 6Nv7Nv@@;Nv<Nv@ @@@@7S@@E@@@=9@@. @@C:@A@FNvx @@@ఠ3check_free_variable֠QORO@^`A@@@ @@@ACF@A,@@@AF@A-@@A.F@A+3MLLMMMMM@Zng@h@i@@@࣠@#varArOsO@aA@@3_^^_____@*zO{RMT@@@@@  @@డ #Map#mem(VariablePP@ PP@@PP@ @@ @@@@f!a@@@@$boolE@@@@@@@@ @ d@$@@@ @@@A7@}@@@A5@@@A4@@A3@@A23@NZm@Q@R@@@@ఐa#varPP@ @@z@@ఐ/which_variablesPP@Z@@@@P@@@@@A\H@AA$@డF":=QQ!@@]!a@@@@m@$unitF@@@l@@k@@j*%setfield0BAN@@@@MN@@ @@@@y@@@AnG@Aa@@@Ab@@@@A`@@A_@@A^\@@ఐ-4used_which_variables)Q *Q@Ű@@@@@AlH@AoH@Amq@@డ #Set#add(VariableHQ"IQ*@ LQ+MQ.@@QQ/RQ2@ @@@@@7X@@@@7W@@@7V@@7U@@7T@@F@@@@@@@Ay@@@@Ax@@@Aw@@Av@@Au@@ఐ #var{Q3|Q6@@@%@@డ!!Q7Q8@@!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 @@!TZi"TZ~@@@@"@@@@ఐ5$expr.U/U@3@6@(@@O@@@A3@5B@@@Ġ#VarCVDV@;#Var g!t@@@@ Z!t@@@@A@AN@A G]AC H]AV@@@ si@ఠ#varܠ_V`V@ldA@@ r!t@@@AK@A3TSSTTTTT@6@@@@@* @@@@@A@@@Ġ+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@@@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@@@ภ"()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@ఠ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$iterZa|[a|@ ^a|_a|@@@@!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_variable*c+c@<@@@@@@F@@@F@@F3@-*@,@+@@@@ఐ4)new_valueBcCc@ @@@@@FJ@F@@!@@b@Ġ,If_then_elseYdZd@;,If_then_else@k!t@@@@@@"@@@@CFAN@A`cac@@@o@ఠ#varxdyd@jA@@!t@@@B8M@B3mllmmmmm@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 @@@@@B)G@@@*e @@@@@B*L@@L@@x@@@@@B,P@Ġ-String_switchf%f2@;-String_switch@c@@@]@&stringQ@@@@@@@@@@@@@@@@@@@CHAN@Ae e J@@@"q@#var f4f7@lA@@@@f9f:@@1@0@@@B;@@@@B<@@B:@@@B9@@)f<*f=@@1@@@B>@@@B=@@@W3f>@@Q@@@B?@@@@@@U@@@BB@@@ఐ3check_free_variableDgBHEgB[@V@@@@@@F@@@F@@F387788888@@@@@@@ఐ䠐#var\gB\]gB_@ @@@@@FJ@F@@!@@|@Ġ,Static_raiseoh`fph`r@;,Static_raise,@0Static_exception!t@@@!t@@@@@@@BIAN@A|g}g@@@r@@h`th`u@@@@@BM3~}}~~~~~@`@@@ఠ$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_valuezj{jA8ఠ@oA@<@@@BbP@@Ajj@@s@@@BdJ@BcX@@@|@@@@@Be\@@@@@Bf_@@@ ఐN3check_free_variablekk@@@@@@@G'G@@@G&@@G%3@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@@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-@@@NLF@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@@@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 3 t'!t)@ 0@@@ @@@NOI@NB@@@NC@ 1@@@NA@@N@@@N?O@@ఐ +projections=t>t&@ 2@@ @@@NMJ@NPJ@NNd@@డ#Set#add*Projection\u*2]u*<@ `u*=au*@@@eu*Afu*D@ @@@@@@C@@@F@@@@@@@@@F@@@@@@@NZ@R@@@NYU@@@NX@@NW@@NV@@ภ+Project_varu*Fu*Q@נఐ+project_varu*Ru*]@@@@@@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@  w!w@@%w&w@ @  @@@@@@N@\@@@N @@@N@@N@@N3      @B;@<@=@@@@ఐK/project_closureFwGw@@@_@@@N@/set_of_closuresPwQw@e @@@@@NJ@N!@@ఐ /which_variablesbxcx@ ߰@@ ?.@@J@@ @@@NJ@N4@డ  syty@ @@@ P@@@NI@N@@@N@ @@@N@@N@@NO@@ఐ +projectionsyy@ @@ @@@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@LvA@@@@@L3/../////@@@@@@@@$@@@L@@'@@@L@@డ#Map#mem(Variable`|sa|s@ d|se|s@@i|sj|s@ @ ϰ @@@@@@O6@5@@@O4 @@@O3@@O2@@O13dccddddd@B;@<@=@@@@ఐK$move|s|s@@@_@@@OH@'closure|s|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@@డ  9~:~@ @@@ @@@OK@OK@O@@@O@@O@@ఐ +projectionsS~@ G@@ @@@OL@OL@O@@% @@@@l @@2@@@O@@@@9@Ġ$Primmn@;$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;:MJ@@U@@@@@_@@@P+K@P9@@డ~  '(@ @@@@@@P*K@PTK@PJ@@@PK@@PI@@ఐ+projectionsA@5@@@@@PPL@PSL@PQ@@% @@@@ @@ @@@P)@@@@'@Ġ/Set_of_closures[\@;/Set_of_closures@/set_of_closures@@@@AE@K@AYDFZDj@@@}@ఠ/set_of_closuresqr@~|A@@@@@M3a``aaaaa@@@@@@@@V@@@M@@Y@@@M@@@@ఠ2aliasing_free_vars@~A@@Qh@@@PJ@P^@@@P|J@PY3@$.'@(@)@@@డ!#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@  Ady Bd|@@ Fd} Gd@ @ @@@@@@P@w@@@P@@@P@@P@@P3 A @ @ A A A A A@XP@S@K@@@@ఐa'spec_to gd hd@@@@@@P@P@#var sd td@@@@@@PN@P#@@ఐ*/which_variables d d@@@b0@@L@@@@@PN@P6@ 7 d@@@@@@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!;!<@ !?!@@@!D!E @ @ @@@@@@@Q @3@@@Q@@Q@@Q@;@@@Q?@@@Q@@Q@@Q3!G!F!F!G!G!G!G!G@7@@@@࣠@qA@!j!k@@@@@Q.H@@@@'spec_toA@!y!z@@[@@@Q7W@  @!AAa гd'Flambda!!&@k!'!5@@@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@"2 @@@ఠ-aliasing_vars"=">@"JBA@@ @@@QJ@Q@@@QJ@Q3"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;@@@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@#2 @@డ!#not#>&/#?&2@@@@@F@@@E@@D(%boolnotAA@@@LLLt@@\\@@@@@@@R0@@@R/@@R.3#E#D#D#E#E#E#E#E@%@@ @@@@డ#Map(is_empty(Variable#s&4#t&<@ #w&=#x&@@@#|&A#}&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@$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@SIC@R@@@@@@ @@R@ఐh,analyse_expr$!$-@%@@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@%`@@డ!#Set$iter(Variable%rhr%shz@ %vh{%wh~@@%{h%|h@ @@@#@@@7$unitF@@@7@@7@%@@@7 @@@7@@7@@7@!@[@%@@@@;@@@R@@@R@@R@:@@@R@@@R@@R@@R3%%%%%%%%@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&9&:@"/@@@"/@@@S@&@@@@@@S@ఠ'spec_toŠ&N &O@&[FA@@%@@@Sa@@(@@@Sd@@@ఐ3check_free_variable&a&b)@s@@@"@@@S" @@@S!@@S 3&U&T&T&U&U&U&U&U@y$@@@@@@ఐ-'spec_to&{*&|1@@@!@@@S1@S/@#var&2&5@!@@"@@@S2Q@S0#@@/@@O$@@@A& @@ @@@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@@'5&^'6w@@@SzJ@Rw@@'<&,@@@ @@@  @@@6 @@@Ġ$Prim'J'K@ ݠ@'O'P@@ @@@M @ఠ$vars'['\@'h}A@@  @@@M@@@M @@'i'j@@ @@@M @@@%'o@@L@@@M @@O@@@M@@@డ%$List$iter''@ ''@@)@@@@#@@@SI@S*@@@S@@S@' @@@S$@@@S~@@S}@@S|3''''''''@+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(3(4@;/Allocated_const@/Allocated_const!t@@@@AB@K@A#4s#5s<@@@#`z@@(H(I@@@@@M@@@@@*@@@M@@@@j @@.@@@M@Ġ,Read_mutable(](^@;,Read_mutable@!t@@@@AC@K@A#\t=?#]t=c@@@#{@@(p(q@@@@@M@@@@@R@@@M@@@@ @@V@@@M@Ġ1Read_symbol_field( (@;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)B})C}@ )F})G}@@@@!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)})|)|)})})})})}@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@@@డ(*0*1@@@@F@V@@@V@@V@@ఐI4used_which_variables*E@@@@@@VG@VG@V*@@  @@+@A@*Q @@@ఐ+projections*]*^@8@@3*I*H*H*I*I*I*I*I@<JC@D@E@@@@ఐP4used_which_variables*l!*m5@ @@$E@V@@@@@0@ @@V@( @@T@i @@@9@@ @6@@ M@x@@ @@@ @9@@ t@@@@ A@a_@Q@G@B@@V@@V@@VC@V,@@@*L"@@#@@@ఠ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+2+3@+?MA@@) @@@WG@W3+$+#+#+$+$+$+$+$@9E>@A@6@@@@ఠ4used_which_variables+F+G@+SNA@@!@@@WG@W@@ @@@@ @@W@ఐA,analyse_expr+_+`@@@@)%:@@@W@@@W@5@@@W @)G@@@W @"@@@W @@W @@W @@WA@Zఐ/which_variables++@@@N@@ఐ-function_decl++@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,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@@)@@@W3,R,Q,Q,R,R,R,R,R@@@@@ @@@ఠ/projecting_from,v  ,w  @,QA@@)k@@@WI@W3,h,g,g,h,h,h,h,h@/&)@@@W@ @!@@@డ)/projecting_from*Projection,  ,  @ ,  ,  @@)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@}@@@-2 h -3 !@@@*@@@W*~@@@W@@WG@WG@W@@ఐ+projections-J!!i@j@@+#@@@WG@WG@W@@"r@@@5s@@@t@@@suA@C@W|@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.'.( F/home/ci/builds/workspace/main/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_element0YWZ̡Q.hV&*Closure_id05:z[ކ.Closure_origin0vˆtT{(}z*Cmi_format0c˯7͗ԩmݠ0Compilation_unit0 {p-Vg_*Data_types0I'Ue`wq]Ѡ)Debuginfo0PtJ=^w/#Env0zV L{YWI)Export_id0-bw+LO.0kX7WCD'Flambda0Idvu "b08Jn8I:*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$Misc0ob]6>Vê>0Mutable_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-R03 "ߨMi0Static_exception0e6Z@F<jiޢ2_&Stdlib0Lku]8_٠-Stdlib__Array0?3$( Q&.Stdlib__Buffer08APF< t..Stdlib__Digest0l!LHgErζ .Stdlib__Domain0Hݶ/m.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