Caml1999T031ź}Q]<1Inlining_decision-ocaml.warning 'middle_end/flambda/inlining_decision.mlQQ@5+a-4-9-30-40-41-42-66 Q Q@@QQ@@@@@QQ@@0@@@@@@%arrayH8@@M@A@A@@@@@@&_none_@@A@@@ $boolE8@@%false^@@ @$true_@@@@@A@@@@@@A@$charB8@@@A@@@@@@A@#exnG8@@AA@@@@@@@@5extension_constructorP8@@@A@@@@@ @@@%floatD8@@@A@@@@@$@@@*floatarrayQ8@@@A@@@@@(@@@#intA8@@@A@@@@@,@A@%int32L8@@@A@@@@@0@@@%int64M8@@@A@@@@@4@@@&lazy_tN8@@O@A@A@Y@@@@@=@@@$listI8@@P@A"[]a@@J@"::b@@@Q@@W@ @@A@Y@@@@@Z@@@)nativeintK8@@@A@@@@@^@@@&optionJ8@@S@A$Nonec@@k@$Somed@@r@@@A@Y@@@@@u@@@&stringO8@@@A@@@@@y@@@$unitF8@@"()`@@@@@A@@@@@@A@ .Assert_failure\ p@@@@Jm@@@@@@V@@A=ocaml.warn_on_literal_pattern@@0Division_by_zeroY @@@A  @+End_of_fileX !@@@A@'FailureU )@%@@A@0Invalid_argumentT 2@.@@A$#@-Match_failureR ;@:67@@\@@Aʠ21@ )Not_foundV I@@@AҠ:9@-Out_of_memoryS Q@@@AڠBA@.Stack_overflowZ Y@@@A⠰JI@.Sys_blocked_io[ a@@@A꠰RQ@)Sys_errorW i@e@@A󠰠[Z@:Undefined_recursive_module] r@qmn@@c@@Aih@ %bytesC8@@@A@@@@@@@@&Stdlib@@Р?Int_replace_polymorphic_compare?Int_replace_polymorphic_compareWRXR@@ 0FEEFFFFF@D@@@@@0GFFGGGGG@F@@_R@@ @L!AAkTlT@AР3Simple_value_approx3Simple_value_approxvTwT@@ 0eddeeeee@@@@@|T@@!EBUU@AР7Inline_and_simplify_aux#Env7Inline_and_simplify_auxUU@@0@?6A/@#@@@@@U @ @!RCV#V$@AР$&Result7Inline_and_simplify_auxV'VE@@ 0@#;A4@!A@@@@V @ @!W'DWFMWFN@AР-Inlining_cost:Whether_sufficient_benefit-Inlining_costWFQWFy@@0@%;A4@#B@@@@WFF @ @!T(EXzXz@AР$)Threshold-Inlining_costXzXz@@ 0@#;A4@!C@@@@Xzz @ @!S)FYY@AР4Inlining_stats_types4Inlining_stats_typesY Y@@ 0  @"8A1@ 2D@@@@)Y @ @!D0G5Z6Z@AР,(Decision!SAZBZ@@ 00//00000@#8A1@!TE@@@@KZ @ @@ࠠ1get_function_body1X\Y\@@@@4function_declaration@@@ H@-function_body@@@ H@@@H@0ZYYZZZZZ@+AA:@)~F@@@@-function_decl@~\\@@@@@ 0nmmnnnnn@0\_W~@@@@  @г-!A/\\@@6@@@ @@\\@@@=@@ఐ/-function_decl]]*@,@/@H@@G4function_declaration@@I@ @ 0@3A @@@-function_body]+]8@,-function_body@@@&optionJ_@@@@@@@B,.closure_origin.Closure_origin!t@@@@@ @@ *middle_end/flambda/simple_value_approx.mlihjh@@3Simple_value_approxx,¶ms $listI)Parameter!t@@@@@@@A"@@@@y5@@@@zN;@@5@@@ @@@ I@Ġ$None^>B ^>F@8dqn@@T@@@@AA@A@@g@@ @@O@@K@ @@K@ 0@c@@@ @@@ภ%false!^>Q"^>V@8@@@N@@@@B@@A@@@ @@@@I@ @.^>J @@H@ H@ @Ġ$Some=_W[>_W_@85@A@AA@A@@ࠠ-function_bodyH_W`I_Wm@@@@@@ @@@@@@@K@ @@K@ @@@@ఐ-function_body]_Wq@@@jI@@H@ 0NMMNNNNN@!@@@@Af]@@6O@@AA@@ @@%0UTTUUUUU@@@@@@@A(/inlining_resultWHuava@А!a@%0jiijjjjj@.(@)@G8@@%@@%@B@A@GG@BB@@@ac@@@@L@@aa@@BAА!b@% aa@@ @8( @B'ChangedX'Flambda!t@@@%!t@@@&@@&EJ@&@@bb@@M(Originalk1J@&!@@c>@@N@@A@YY@@@@@@E@@@B@//bb@@Вг1'Flambda1bb@@:j@@г3!R5bb@@<u@@@Iv@@А!a;{b9@@@@;@77cc@@А!b<cx@@@@<@@A@z@@zy@0@@@A()good_idealIee@А!b@&20      @8@@&1@A@A@G@B@@@(e)g@@@@5O@@,e-e@@@8@A&Try_itm@@7f8f@@DP,Don't_try_itn'K@&3@@Cg@@OQ@@A@Y@@@@@ @@@@Lf@@@@@RgSg @@А!b;Zg 2@@@@@@A@4@@43@0GFFGGGGG@=@@@ࠠ&inlineohiii@@@@!t@@@DJ@&>@!t@@@? J@&D2lhs_of_application(Variable!t@@@@ J@&J8closure_id_being_applied*Closure_id!t@@@@J@&P-function_declI4function_declaration@@@&[J@&V-function_bodyW-function_body@@@&eJ@&`5value_set_of_closures^5value_set_of_closures@@@W +Not_inlined!t@@@>[J@>X@@@>YJ@&@@&J@&@@&J@&@@&J@&@@&J@&@@&J@&@@&J@&@@&J@&@@&J@&@@&J@&@@&J@&@@&J@&}@@&~J@&w@@&xJ@&q@@&rJ@&k@@&lJ@&a@@&bJ@&W@@&XJ@&Q@@&RJ@&K@@&LJ@&E@@&FJ@&?@@&@J@&=0@@@@@#envqii@@@k0@wi+11@@@@@@!rri i!@@@r0@ @@S@@@@llsqi#i5@@@t0@@@ T@@@@lltq j6; j6S@@@t0@@@U@@@@llu@kTZkTg@@q@@@&\0        @@@-V@@@|  @ г}!A/kTj0kT@@@@@&Y@@@@@@@v@?l@l@@@@@&f0/../////@&3+@.@RW@@@  @ г!ATlUl@@@@@&c@@@@@@@wdmem@@@0RQQRRRRR@$1)@,@uX@@@@xtmum@@@0baabbbbb@@@Y@@@@ymm@@@0rqqrrrrr@@@Z@@@@zmm@@@0@@@[@@@@{@nn@@@@@&@@@&0@"@@\@@@@г$listnn @г(Variablenn@@@@@&@@@@@@&# @@.@@@%@@|nn%@@@0@2C;@>@]@@@@}n'n*@@@0@@@^@@@@~n,n4@@@0@@@ _@@@@@ o5; o5K@@@@@&0@@@`@@@İ  @ гŠ&LambdaŰ o5N!o5e@@@@@&@@@@@@@ɠ@0pgm1pg@@@@@&0      @&3+@.@Ca@@@ٰ  @ гڠ&LambdaܰEpgFpg@@@@@&@@@@@@@UqVq@@@0CBBCCCCC@$1)@,@fb@@@@eqfq@@@0SRRSSSSS@@@vc@@@@urvr@@@0cbbccccc@@@d@@@@rr@@@0srrsssss@@@e@@@@rr@@@0@@@f@@@@@ࠠ(toplevelss @@@$boolE@@@)%K@&0@%@@g@@@డ8+at_toplevel!Es s @@U@@@(@@@(@@(@ .middle_end/flambda/inline_and_simplify_aux.mli|~|@@7Inline_and_simplify_auxa@@@d@@K@)-@@K@)@K@)*@@ఐ#envs s @@@y7@@(@@>8@@s@@@ࠠ,branch_deptht  "t  .@@@#intA@@@+wK@+m0@P`Z@[@h@@@డ,branch_depth!Et  1t  ?@@@@@(@@@(@@(@OP@@Nc@@@@@K@+q+@@K@+p@K@+o(@@ఐ_#env2t  @3t  C@E@@5@@&@@<6@@7t  @@@ࠠ)unrollingEu G MFu G V@@@&@@@,;K@+~087788888@N^X@Y@[i@@@ࠠ-always_inlineXu G XYu G e@@@9@@@,>K@+@ࠠ,never_inlinegu G ghu G s@@@H@@@,AK@+"@ࠠ#envvu G uwu G x@@@ J@DK@+/@@8@@8& @@+6@@ࠠ)unrollingv { v { @@@&optionJ@@@+@@@+L@+P@డ 2actively_unrolling!Ev { v { @@=@@@(@1!t@@@('$@@@(@@@(@@(@@(@4@@n@@@V@@L@+@@@L@+=:@@L@+@@L@+@L@+@L@+@@ఐ #envv { v { @@@t@@ఐ6set_of_closures_originv { v { @u@@p@@H@@_@@v { @@ఐo)unrollingw  w  @o@p@ n@@ol@@@+@@@+0@ @@@Ġ$Some x   x  @נࠠ%count x   x  @@@@@@+0        @@@@@@@@@@N@+@@N@+ @@ @@డ!> 7y   8y  @@#intA@@@@@@@$boolE@@@@@@@@ )utils/int_replace_polymorphic_compare.mliDccDc@@?Int_replace_polymorphic_compareC@@@@@L@,@@@L@,@@L@,@L@,@L@,0 M L L M M M M M@[KE@F@ po@@@@ఐS%count py   qy  @@@;@@M@,M@,M@,@@@ y   y  @@C@@M@,M@,M@,(@@ @@@@L@,M@,.@@ࠠ#env z   z  @@@.@@@,+M@,0        @@@@@డ&;continue_actively_unrolling!E z   z  6@@C@@@(@7!t@@@(N@@@(@@(@@(@D@@p@@@X@@M@,@@@M@,`@@M@,@M@,@M@,2@@ఐ #env z  7 z  :@@@r?@@ఐ6set_of_closures_origin z  ; z  Q@s@@nL@@@@@PM@@ z  @@ภ$true { U ] { U a@8 @@@AB@@A @@ @@@@@L@,<0        @nh@i@ p@@@ภ { U c { U g@@@@@@L@,?@ภ { U i { U n@@@@@@L@,B@ఐ#env &{ U p '{ U s@$@@J@CJ@CJ@CJ@CJ@CzJ@C}J@BWJ@B\J@AJ@AJ@=J@=J@=J@=J@=J@=J@@L@,De@xA@@@ภQ q| t  r| t @P@@@wL@,L@ภ\ || t  }| t @[@@@rL@,O@ภ | t  | t @@@@qL@,R@ఐ#env | t  | t @@@(@@'@@9L@,S@ y  @@#K@,9K@+@Ġ$None }   }  @@@@@@@N@+@@N@+@@@@@ࠠ1inline_annotation ~   ~  @@@o@@@,tM@,U@ఐǠ0inline_requested A F W A F g@@г0inline_attribute&Lambda A F j A F @@ @@@,W@@ A F V A F @@@@@@,X@Ġ-Always_inline B   B  @8-Always_inline&Lambda0inline_attribute@@@ @@@@DA@A1lambda/lambda.mli~~@@@ @@@@9@@S@,_@@@Ġ+Hint_inline B   B  @8+Hint_inline@@@BDA@A@@@@@  @@N@@S@,b@@@@, @@R@@R@,c@Ġ,Never_inline 2B   3B  @8,Never_inline7@@@ADA@A/0@@@7@@  @@g@@R@,f@@@@E @@k@@Q@,g @Ġ&Unroll KB   LB  @8&UnrollP@#intA@@@ @A@DA@AOP@@@WР@ ^B   _B  @@@@Q@,k@@@@@@@@Q@,lD@@D@@m @@@@P@,mH@@ఐj0inline_requested rC   sC  @=@@M@,sT@Ġ.Default_inline D   D  @8.Default_inline@@@CDA@A~$&$6@@@@@  @@@@P@,qk@@k@@ఐ[-function_body D   D  @0@@ 3@@N@,y@,w|@&inline D   D  @,&inline >@@@&Lambda0inline_attribute@@@@D$,.free_variables(Variable#Set!t@@@@@ @@@B@b@@o,,free_symbols&Symbol#Set!t@@@@A@@cec@@p,$stub.$boolE@@@@B)@@  @@ q,#dbg:)Debuginfo!t@@@@C7@@  @@ rH,*specialiseHE4specialise_attribute@@@@EC@@  @@ t,,is_a_functorT&@@@@FM@@ ( ) @@ 'u,$body^'Flambda!t@@@@G[@@ 6  7  @@ 5v,$pollli.poll_attribute@@@@Hg@@ B!# C!?@@ Aw@@ F G@@ Es~@@cM@,xM@,u@@A 'A F P@@g@@ )~  @@ఐu1inline_annotation 3F * 8 4F * I@u@v@ Aq@@@@@,0 & % % & & & & &@4@@@Ġ-Always_inline IG O Y JG O f@N@@@@@@P@,0 : 9 9 : : : : :@@@@@@Ġ+Hint_inline XG O i YG O t@?@@@@@@P@,@@@@@@ @@O@,@@ภ J jG O x kG O }@ I@@@ I@@M@,!@ภ} vG O  wG O @|@@@ U@@M@,-@ภ b G O  G O @ a@@@ a@@M@,9@ఐ#env G O  G O @@@$D@@*@@K@,K@,I@Ġ,Never_inline H   H  @p@@@@Q@@O@,Y@@Y@@ภ  H   H  @ @@@ @@M@,g@ภ  H   H  @ @@@ @@M@,s@ภϰ H   H  @@@@ @@M@,@ఐ#env H   H  @@@j@@*@@HK@,K@,@Ġ.Default_inline I   I  @g@@@@@@O@,@@@@ภ ְ I   I  @ @@@ @@M@,@ภ  I   I  @ @@@ @@M@,@ภ  I   I  @ @@@ @@M@,@ఐI#env I   I  @/@@@@*@@K@,K@,@Ġ&Unroll .J   /J  @ࠠ%count 7J   8J  @@@@@@,@@@@@@@O@,@@@@డ  KK  $ LK  %@@@@@@M@,@@@M@,@@M@,@M@,@M@,0 F E E F F F F F@!*$@%@ ir@@@@ఐ2%count iK   jK  #@@@4@@N@,N@,N@,@@@ zK  & {K  '@@<@@N@,N@,N@,(@@ @@@@M@,N@,.@@ࠠ#env L - = L - @@@@ '@@@,N@,0        @@@@@డ 8start_actively_unrolling!E M C Q M C k@@ <@@@(@0!t@@@(@@@@( M@@@(@@(@@(@@(@tvt@@o@@@ W@@N@,@@@N@,@@@N@, d@@N@,@N@,@N@,@N@,=@@ఐ#env N l | N l @@@ vJ@@ఐ6set_of_closures_origin N l  N l @w@@rW@@డ !- N l  N l @@#intA@@@@@@@ @@@@@@@'%subintBA @@@@*stdlib.mli`55`55@@ (q! @@@@@O@- @@@O@- @@O@-@O@-@O@-@@ఐ%count6N l 7N l @۰@@:@@P@-P@-P@-@@AGN l HN l @@B@@P@-P@-P@-@@QN l RN l @@@@O@,O@-P@-@@ @@@@\L - 9 @@ภleP  fP  @k@@@ D@@M@-%0VUUVVVVV@@@ys@@@ภ|uP  vP  @{@@@ T@@M@-(@ภ aP  P  @ `@@@ `@@M@-+@ఐ#envP  P  @$@@c'@@.@@.j@M@--.@> @@@ภ Q  Q  @ @@@@M@-5 @ภ Q  Q  @ @@@;M@-8@ภQ  Q  @@@@:M@-;#@ఐ#envQ  Q  @ٰ@@ Z.@@'@@9M@-<1@K  @@@ภ,Don't_try_it\\@8 @ A@AA@A @@ ภ!S+Not_inlined)Self_call\\@8)Self_call $@@@.*@@@DEC@A +middle_end/flambda/inlining_stats_types.mlihh@@@4Inlining_stats_typesM@@@^K@.-B@@!@@gK@.D@డ#not]%](@@ @@@F @@@E@@D(%boolnotAA@@@""""@@ !\@@@@@K@.1@@K@.0@K@./n@@డ0inlining_allowed!E/]*0]<@@ @@@(@.Closure_origin!t@@@(@@@(@@(@@(@y!!z!!L@@xs@@@ @@L@.>@@@L@.=@@L@.<@L@.;@L@.:@@ఐ렐#enva]=b]@@U@@@@ఐ Y-function_declp]Aq]N@ ,@@ @@M@.@.@.closure_origin|]O}]]@ @@J@@M@.IM@.M@.@@])]^@@@@L@.8L@.M@.H@@ @@ @@K@.L@.7@ภ,Don't_try_it^dj^dv@Ƞภ!S+Not_inlined8Unrolling_depth_exceeded^dw^d@88Unrolling_depth_exceeded@@@CEC@Agg@@@L@  @@K@.@@ @@K@.@డy"||__@@ @@@U@ @@@T @@@S@@R@@Q'%sequorBAĠ@@@@%%%%F@@ _@@@@@K@.@@@K@.@@K@.@K@.@K@.<@@ఐ 4only_use_of_function__@ q@@ )I@@ఐ-always_inline__@@@=@@L@.L@.L@.]@@ @@ >@@K@.L@.c@ภ&Try_it``@b@@@jK@.n@ఐà,never_inline*a+a@ @@ [@@K@.K@.@ภ,Don't_try_it8b9b@dภ!S+Not_inlined*AnnotationEbFb+@8*Annotationb@@@AEC@A_ey}`ey@@@^J@  @@K@.@@ @@6K@.@డ"&&`dmvadmx@@ i@@@K@ o@@@J r@@@I@@H@@G(%sequandBA_@@@@^##_##3@@ ]@@@@@K@.@ @@K@.@@K@.@K@.@K@.@@డJ#notc,8c,;@@@@@@L@.@@L@.@L@.@@డ&1unrolling_allowed!Ec,=c,P@@ C@@@(@ 7!t@@@( @@@(@@(@@(@  @@ q@@@ Y@@M@.@@@M@.@@M@.@M@.@M@.#@@ఐ i#envc,Qc,T@Ӱ@@ i0@@ఐ 6set_of_closures_originc,Uc,k@ t@@ o=@@c,<c,l@@@@M@.M@.N@.G@@e @@@@L@.L@.M@.O@@డ$Lazy%forcedmzdm@ΰ@@@ % @@L@. @L@.g@@ఐ )recursive#dm$dm@ v@@ 8t@@'dmy(dm@@ /w@@@@ X@@K@/L@.}@ภ,Don't_try_it5e6e@aภ!S+Not_inlined8Unrolling_depth_exceededBeCe@@@@K@/"@@@@K@/@డf%equal!TYfZf@@ @@@/P@ @@@/O$boolE@@@/N@@/M@@/L@ $middle_end/flambda/inlining_cost.mliaCEaC_@@-Inlining_costF@@@ @@K@/U@ @@K@/T@@K@/S@K@/R@K@/Q@@ఐ@ఐ77size_from_approximation~~@!@@J@Ġ$Some@ߠࠠ)body_sizeK%&@@@`@@@ @@ a@@ a@@@ࠠ#wsbL34@@@s!t@@@=M@00)(()))))@@@Lx@@@@ࠠ'benefitMLM@@@'Benefit!t@@@0N@0 @డ'Benefit$zero-Inlining_costgh@@@@0j@E 0 2E 0 >@@K  @@!4@@s @@@ࠠ'benefit`~  @@@2@@@0N@00qppqqqqq@I@:@;@z@@@డ'Benefit+remove_call-Inlining_cost ! B@@M@@@0yP@@@0x@@0w@8I } 9I } @@7N@@@Z@@N@0]@@N@0@N@0+@@ఐo'benefit C J@5@@q@@O@0O@0O@0?@@- @@C@@@  @@@ࠠ'benefitaN\Nc@@@@@@@@1=@ 1middle_end/flambda/base_types/closure_element.mliUU@@/Closure_element@@@@@@Q@4@@Q@4@Q@4t@@ఐ!v  @@@@@R@4@@ @@o@@Q@4Q@4@@ఐ5value_set_of_closures " 7@@@:@!A*bound_vars 8 D@,*bound_varsB@@@ 2Var_within_closure#Map!t@@@@@@@A$,.function_decls5function_declarations@@@@@@@KL@@J{,)free_vars s#Map!t +.specialised_to@@@@@@@B@@`a4@@_},0invariant_params4&Stdlib$Lazy!t #Map!t #Set!t@@@@@@@@@@C?@@575o@@~,)recursiveV"$Lazy!t #Set!t@@@@@@@DU@@prp@@,$sizel8$Lazy!t #Map!t #intA@@@ @@@ @@@ @@@ @Ew@@@@@,0specialised_args #Map!t .specialised_to@@@ @@@ @F@@"$"]@@A,*freshening*Freshening+Project_var!t@@@ @G@@@@B,6direct_call_surrogates*Closure_id#Map!t !t@@@ @@@ @H@@@@C@@@@|@@ʠx@@Q@<`v@@b@@6w@@@@ఐ!tZrZs@@@@@@@P@<|@v@@@@Q@<@@M@=?;9@@M@=>8@@M@==64@@M@=<1/@@M@=;.,@@M@=:@@M@=9@M@=8@M@=7@M@=6@M@=5@M@=4@M@=3@M@=20@;HB@C@"|@@@kడK0direct_call_size-Inlining_cost%&@@@@@@@f  @@@@N@=N@=N@=$@డ+at_toplevel!EGH+@@@@@@N@=@@N@=@N@=>@@ఐ栐#env\,]/@ P@@K@@`a0@@@@N@=N@=O@=U@డ,branch_depth!Ex1Ly1Z@h@@@ @@N@=@@N@=@N@=o@@ఐ#env1[1^@ @@|@@1K1_@@@@N@=N@=O@=@Րఐ)body_size@f@@@ېఐߠ'benefit@@@@@N@=N@=N@=@ఐ-function_body`u`@`@@c@@N@=@=@!A,is_a_functor``@ް@@@@N@=N@=N@=@డe%round!E@@@@@(@@@( @@( @.q  /q  0@@-D@@@@@N@=@@N@=@N@=@@ఐ#env@ @@@@@@9@@N@=N@=O@= @@um@@ @n@@F@Zo@@@p@@@@#r@@డ#not/0@ -@@@ -@@L@> ,@@L@=@L@=0%$$%%%%%@ @@Hy@@@@డ~(evaluate!WMN@@@@@='@@@=&@@=%@x,.x,F@@`@@@(@@M@> @@M@> @M@> ,@@ఐ=#wsbpq@6@@?@@N@>N@>N@>@@@{|@@ z@@M@>M@>N@>J@@@@@@L@>M@>R@ภ,Don't_try_it @ ภ!S+Not_inlined4Without_subfunctions$F@84Without_subfunctions @-Inlining_cost:Whether_sufficient_benefit!t@@@.'@AAEC@A i j(@@@ Nఐ#wsbGJ@@@@@L@>$@@#K@@ 2K@>!L@>"@@LW@@ ; K@>@@L@>@ภ&Try_itL]Lc@ @@@L@>+@@@@@@vK@.K@>K@0@Ġ$Nonedldp@@@@@ +@@ +@@ภ,Don't_try_it@ %ภ!S+Not_inlined8No_useful_approximations@88No_useful_approximations #@@@BEC@A f !f@@@ K@  @@ ~K@>2L@>3 L@@@@5K@>/K@>, Q@@A~@@  @ภ&Try_it"QW#Q]@ i@%&^e@@EK@>> @*m@@  @,f@@ @.c,5 @@  @0a @@  @2_ @@  @4]"@@  @6[@@ B @8Y@@  @@:X@@ఐ ,try_inliningDksEk@ @ @Ru@@ @@@>A@@@>@0;::;;;;;@   @@@Ġ,Don't_try_it\]@ ࠠ(decisionef@@@@@@>H0VUUVVVVV@@@@@@@@ ݠ@@M@>J@@M@>I @@ @@ภ(Originalz{@8ܐ@@&0@AA@B@A@@ఐ$(decision@$@%@A@@0yxxyyyyy@?/@@@@@@J@>U@Ġ&Try_it@ @@@@ @@M@>R@@M@>QW@@W@@@ࠠ!r@@@9@@@? L@>]N@డ6set_inlining_threshold!R@@M@@@&@=-Inlining_cost)Threshold!t@@@&@@@&a@@@&@@&@@&@C33D34 @@K! @@@k@@L@>d@@@L@>c@@L@>bw@@L@>a@L@>`@L@>_@@ఐ!r@@@@@ภ$Some @Рఐ.@@M@@@+ఐ-function_body@@@@@@M@@@1ఐ(fun_vars@@@@7ఐr$args@5@@DA@@M@@@@M@@M@@M@@@>ఐC#dbg+,@-@@@Dఐ@(simplify89@(@@@@@@L@?@@?@@@ࠠ@N@@+@@N@AFN@AEY@@    ?@@@@M@A7M@ALN@AAc@@డ7num_direct_applications!R  C  \@D@@@L@@M@APD@@M@AO@M@AN}@@ఐ(!r  ]  ^@@@c@@N@AWN@A[N@AZ@@  B  _@@@@M@A6M@A]N@AV@@B @@@@ @@డ">= g  g @@@@@@@@@@@@@@@@@FF@@E@@@@@L@Ae@@@L@Ad@@L@Ac@L@Ab@L@Aa0        @@@ 0E@@@@ఐ栐 @@c`@ఐ)r_inlined"##"##@@@pM@Am@" ""@@ro@@" !!@@@ࠠ!rԠ"##"##@@@@@@BM@A0" " " " " " " " @@@".H@@@డ +map_benefit!R"0##"1##@q@@@@@M@B@@q@@M@Bl@@M@A@M@A@@M@A@M@A@M@A%@@ఐ)r_inlined"O##"P##@/@@@@N@BN@BN@B9@@డ 'Benefit!+-Inlining_cost"k##"l#$ @@ @@@0o@ $@@@0n '@@@0m@@0l@@0k@F ? AF ? V@@L@@@ 1@@O@B"@ 6@@O@B! 9@@O@B @O@B@O@Bm@@డ 'benefit!R"#$ "#$@@$@@@%'Benefit!t@@@%@@%@211211@@G@@@6@@P@B2@@P@B1@P@B0@@ఐ!r"#$"#$@z@@M@@Q@B9Q@B=Q@B<@@"#$ "#$@@ @@P@B.P@B?Q@B8@@"##"#$@@@ @@N@BC @@N@BB@N@BA@@ @@@@"## @@@ࠠ#envՠ"$$$."$$$1@@@@@@BVM@BH0""""""""@@@#I@@@డ!~5note_entering_inlined!E#$$$4#$$$K@@@@@(@@@(@@(@F%%G%%@@Ew@@@@@M@BL@@M@BK@M@BJ(@@ఐ#env#)$$$L#*$$$O@@@5@@&@@96@@#.$$$*@@@ࠠ#env֠#9$S$]#:$S$`@@@@@@BrM@B^0#,#+#+#,#,#,#,#,@KXR@S@#OJ@@@డ!8inside_unrolled_function!E#Q$%#R$%@@@@@(@@@@(@@@(@@(@@(@ o q o @@r@@@@@M@Bd@@@M@Bc@@M@Bb@M@Ba@M@B`2@@ఐ#env#}$%#~$%!@<@@@@N@BtN@BzN@ByF@@ఐ/6set_of_closures_origin#$%"#$%8@@@S@@D@@WT@@#$S$Y@@@ࠠ#envנ#%B%L#%B%O@@@5@@@BM@B}0########@ivp@q@#K@@@డ"07inside_inlined_function!E#%B%R#%B%k@@M@@@(@!t@@@(X@@@(@@(@@(@!!!!@@t@@@b@@M@B@@@M@Bj@@M@B@M@B@M@B5@@ఐ#env#%B%l#%B%o@?@@~@@N@BN@BN@BI@@ఐ砐-function_decl#%B%p#%B%}@@@!S@@N@B@B]@.closure_origin$ %B%~$ %B%@!?@@N@@N@BN@BN@Bk@@\ @@ol@@$%B%H @@@ࠠ#envؠ$!%%$"%%@@@@@@BM@B0$$$$$$$$@@@$7L@@@డ"XZ$7%%$8%%@W@@@W@@M@B@V@@M@BU@@M@B@M@B@M@B@@డ".inlining_level!E$V%%$W%%@@@@@(d@@@(@@(@@@l@@@@@N@B@@N@B@N@BF@@ఐؠ#env$y%%$z%%@P@@ @@O@BO@BO@BZ@@. @@@@N@BN@BO@Bb@@@$%%$%%@@@@N@BN@BN@Br@@F @@@@M@BN@Bx@ఐ#env$&&$&&@@@@డ#/1inlining_level_up!E$&&$&&@@ L@@@( O@@@(@@(@@@m@@@ Y@@M@B \@@M@B@M@B@@ఐ9#env$&&$&&@@@ p@@N@BN@BN@B@@- @@ t@@M@B@$%%@@@@$%%@@ภ'Changed$&&$&&@8!Lx@!JB@@B@A!5@@!2ఐ(simplify%&&%&&@@@0$$$$$$$$@@@%M@@@@ఐ#env%&&%&&@@@ @@J@B@@ఐ !r%!&&%"&&@*@@ @@J@B$@@ఐ$body%1&'%2&'@ް@@'Flambda!t@J@BM@C<@@%@&&%A&'@@!@@J@B!@@J@B@J@BJ@CJ@BM@ఐڠ(decision%X&'%Y&'@@@X@@j@@@@L@B^@w@@9@M@@@@@#@7@@ n@@@ F@Z@@L@A@@AA@@@@C 0%W%V%V%W%W%W%W%W@@@@@@ఐ-always_inline%v''%w'',@n@@ @@K@C K@C 0%i%h%h%i%i%i%i%i@] @@%F@@@ఐ'4keep_inlined_version%'2'8%'2'L@ @@@K@CJ@DJ@C@@K@C@K@C@@ภ!S'Inlined*Annotation%'2'M%'2'a@8*Annotation@@@C@@@ACB@AXX+@@@B@  @@L@C"9@@-@@ J@C<@ఐS4only_use_of_function%'b'n%'b'@=@@ I@ఐl4keep_inlined_version%''%''@R@@@ !J@C0K@C( 'IJ@C)@@K@C'@K@C&b@@ภ!S'Inlined9Decl_local_to_application%''%''@89Decl_local_to_applicationE@@@BCB@AY,0Y,K@@@C@  @@"L@C1{@@* @@DJ@C.~@@ࠠ#wsbڠ&''&''@@@@@@CeL@C30%%%%%%%%@@@@డ$M&create!W&''&''@(original!C@@@=(toplevel@@@=,branch_depth! @@@=@!X!t@@@='benefit!t@@@='lifting@@@=%round!/@@@= @@@=@@= @@= @@= @@= @@= @@=@@=@dliq@@^DC@@A!@@L@CC?=@@L@CB<:@@L@CA@9@@L@C@64@@L@C?1/@@L@C>.,@@L@C=K@@L@C<@L@C;@L@C:@L@C9@L@C8@L@C7@L@C6@L@C5w@gఐ (original&''&'(@@@!@mడ%+at_toplevel!E&((&(((@@@@"6@@M@Cs@@M@Cr@M@Cq@@ఐA#env&(()&((,@@@A@@&((&((-@@@@M@CkM@CN@Cy@డ%J,branch_depth!E&(.(G&(.(U@ð@@@"g@@M@C@@M@C@M@C@@ఐr#env&(.(V&(.(Y@ܰ@@r@@&(.(F&(.(Z@@@@M@CjM@CN@C@@ఐ à$body&'(''(@@@@@M@CiM@CM@C@ːడ%k'benefit!R'(('((@|@@@"@@M@C|@@M@C@M@C@@ఐ ٠)r_inlined'-(('.((@ذ@@"@@N@CN@C&@@'6(('7((@@@@M@ChM@CN@C0@ఐ!-function_body'K([(n'L([({@ @@$@@M@C@CD@,is_a_functor'W([(|'X([(@`@@@@M@CgM@CM@CR@డ%%round!E'p(('q((@ @@@#@@M@C @@M@C@M@Cl@@ఐ#env'(('((@y@@y@@'(('((@@;@@M@CfM@CN@C@@w\@@@@'''^@@డ%(evaluate!W'(('((@ V@@@p@@K@C V@@K@C@K@C0''''''''@1@@'N@@@@ఐ#wsb'(('((@@@@@L@CL@CL@C@@$ @@"@@K@CL@C@ఐq4keep_inlined_version'(('()@W@@@"&J@CK@C",NJ@C@@K@C@K@C7@@ภ!S'Inlined4Without_subfunctions'()'()3@84Without_subfunctionsJ@ S:Whether_sufficient_benefit!t@@@C@A@CB@AZLP[j@@@Dఐ#wsb( ()4( ()7@^@@@@L@Cd@@(()(()8@@;L@Ci@@C@@bJ@Cl@డ&!<(&)9)d(')9)e@@@@@@@@@@@@@@@@@CBBCBb@@B@@@@@K@C@@@K@C@@K@C@K@C@K@C@@ఐ @˰@@ a%@@@@)&@@(++@@@ࠠ#envܠ(+B+N(+B+Q@@@${@@@D,L@D0((((((((@BHB@C@(O@@@డ'v5note_entering_inlined!E(+B+T)+B+k@@@@$@@L@D"$@@L@D!@L@D @@ఐg#env)+B+l)+B+o@%@@$@@M@D-M@D3M@D2/@@  @@30@@) +B+J @@@ࠠ#envݠ)++s+),+s+@@@$@@@DIL@D50))))))))@ERL@M@)AP@@@డ'8inside_unrolled_function!E)C ,,')D ,,A@@@@$@@L@D;@#@@L@D:$@@L@D9@L@D8@L@D7 @@ఐv#env)] ,,B)^ ,,E@*@@$@@M@DKM@DQM@DP4@@ఐ"6set_of_closures_origin)q ,,F)r ,,\@!@@#A@@2@@EB@@)v+s+{@@@ࠠ$bodyޠ) ,h,t) ,h,x@@@%@@J@EuJ@EzJ@DJ@DU0){)z)z){){){){){@^ke@f@)Q@@@ࠠ)r_inlinedߠ) ,h,z) ,h,@@@%%@@J@E)J@E.J@DV@@" @@" @J@DY@ఐ"(simplify) ,h,) ,h,@"@@$t&@@ఐ#env) ,h,) ,h,@0@@%R@@J@Dh6@@ఐ |)r_inlined) ,h,) ,h,@ {@@7Inline_and_simplify_aux&Result!t@$J@DcM@DkP@@ఐ $body) ,h,) ,h,@ @@@$J@DbM@Dlc@@A @@PJ@D_f@@) ,h,p @@@ࠠ5wsb_with_subfunctions* ,,* ,,@@@@@@DL@Dn0))))))))@|@@*Rxr@s@*S@@@డ(N&create!W* ,,* ,,@@@%B@@L@D~@@L@D}@@L@D|@@@L@D{@@L@Dz@@L@Dy@@L@Dx @@L@Dw@L@Dv@L@Du@L@Dt@L@Ds@L@Dr@L@Dq@L@Dp<@'ఐ#Ϡ(original*P ,,*Q ,,@#@@%uI@-డ(+at_toplevel!E*b,-*c,-@"@@@%@@M@D"@@M@D@M@Dc@@ఐL#env*w,-*x,-@@@& @@N@DN@DN@Dw@@*,-*,-@@^@@M@DM@DN@D@]డ),branch_depth!E*--0*-->@"@@@&.@@M@D"@@M@D@M@D@@ఐ#env*--?*--B@@@&E@@N@DN@DN@D@@*--/*--C@@@@M@DM@DN@D@@ఐI$body* ,,* ,,@°@@I@డ)2'benefit!R*--*--@C@@@&g@@M@DC@@M@D@M@D@@ఐY)r_inlined*--*--@@@Y@@*--*--@@@@M@DM@DN@D@ఐ$Ѡ-function_body+ -D-Y+-D-f@$@@(@@M@D@D @,is_a_functor+-D-g+-D-s@"@@@@M@DM@DM@D@Ӑడ)%round!E+2-t-+3-t-@D@@@&@@M@DD@@M@D@M@D3@@ఐ#env+G-t-+H-t-@@@&@@N@DN@DN@DG@@+R-t-+S-t-@@@@M@DM@DN@DQ@@?c@@UR@@+] ,,e@@డ)(evaluate!W+l--+m--@@@@9@@K@D@@K@D@K@D0+b+a+a+b+b+b+b+b@n{u@v@+T@@@@ఐ5wsb_with_subfunctions+--+--@@@T@@L@EL@EL@E@@$ @@&@@K@E L@E@@ࠠ#res+..+..@@@ L@E '/@@@E%L@E @@E L@E 0++++++++@8@@@ఐ6$body+..#+..'@@@6@డ*+map_benefit!R+..)+..6@ @@@'R@@L@E@@ @@L@E @@L@E@L@E'_@@L@E@L@E@L@E0@@ఐN)r_inlined+..7+..@@ܰ@@N=@@డ*"'Benefit -Inlining_cost +.A.W+.A.p@ @@@@@N@E5@@@N@E4@@N@E3@N@E2@N@E1^@@డ*o'benefit!R,.A.r,.A.{@ @@@'@@O@EE @@O@ED@O@ECx@@ఐ!r,1.A.|,2.A.}@@@'@@P@ELP@EPP@EO@@,<.A.q,=.A.~@@@@O@EAO@ERP@EK@@,F.A.V,G.A.@@@@@M@EV@@M@EU@M@ET@@ @@@@,R..",S.A.@@Р@@E[@@,Y.. @@@ࠠ(decision,d..,e..@@@&@@@E`L@E\0,W,V,V,W,W,W,W,W@@@,zU@@@ภ!S'Inlined1With_subfunctions,z..,{..@81With_subfunctions@:Whether_sufficient_benefit!t@@@C:Whether_sufficient_benefit!t@@@C@BACB@A\^@@@Eఐ#wsb,..,..@@@h@@L@Ed7@ఐ5wsb_with_subfunctions,..,..@4@@v@@L@EhE@@8,..@@&@@@EaJ@@,..@@ภ'Changed,./,./ @̠ఐ)#res,./ ,./@\@@E)@@K@Ev@K@EtK@EyK@Ew0,,,,,,,,@kxr@s@,V@@@ఐ~(decision,./,./@ @@'-@@J@E@@+,./@@LK@Es@6@@@,--,//&@@A@@ࠠ(decision,%00,%00@@@'=@@@EL@E0,,,,,,,,@@@@ภ!S+Not_inlined1With_subfunctions-&11-&11-@81With_subfunctions+@o:Whether_sufficient_benefit!t@@@.(x:Whether_sufficient_benefit!t@@@.)@BBEC@A:k)-;mw@@@9Oఐ*#wsb-1&11/-2&112@@@@@L@E4@ఐ=5wsb_with_subfunctions-?&114-@&11I@Ȱ@@ @@L@EB@@8-F&11J@@'@@@EG@@-K%00@@ภ(Original-R(1X1b-S(1X1j@ؠఐa(decision-\(1X1k-](1X1s@a@b@-jW@@'@@J@E0-O-N-N-O-O-O-O-O@o@@@@ @@K@E@-j/'/4-k)1t1@@i@-m--@@k@@@e@y@@@@@>@R@@@-s++-t*11@@@-v)9)D@@@-x((@@a@-z'''@@cl@-|'b'k'@@n@-~'''@@p@ '@@ @ .'@@ @ '@@0@D'@@:@V'@@J@>\@@A-km'@@'J@&0-u-t-t-u-u-u-u-u@:@@@R'@@@ '@@@'@@%A@%X'@@%@%'@@%@@A-r'A@'J@&0--~-~-----@%@@@@A-r'A@(J@&0--------@&@@@@A-r'A@(J@&0--------@&&@@@@A-q'A@('J@&0--------@&;@@@@A-q'A@(@@/g[@@@3  @ г4!A6/i.11/j.11@@=@@@E@@@@@B@@::렰@/y/11/z/12@@?@@@E0/i/h/h/i/i/i/i/i@&3+@.@/\@@@J  @ гK!AM//12//12@@T@@@E@@@@@Y@@QQ젰V/022%/022=@@@Y0////////@$1)@,@/]@@@@SS@/12>2F/12>2[@@X@@@F0////////@n@@/^@@@c  @ гd!Af/12>2^/12>2u@@m@@@F@@@@@r@@jjo/22w2~/22w2@@@r0////////@$1)@,@/_@@@@ggl/22w2/22w2@@@o0////////@@@/`@@@@eej/22w2/22w2@@@m0////////@@@0a@@@@ggl022w2022w2@@@o0////////@@@0b@@@@iin022w2022w2@@@q000000000@@@0$c@@@@nns0#22w20$22w2@@@v000000000@@@04d@@@@mmr0322w20422w2@@@u00!0 0 0!0!0!0!0!@@@0De@@@@rrw0C3220D322@@@z00100000101010101@@@0Tf@@@@ww|0S3220T322@@@00A0@0@0A0A0A0A0A@@@0dg@@@@zz0c4220d422@@@00Q0P0P0Q0Q0Q0Q0Q@@@0th@@@@||0s4220t423@@@00a0`0`0a0a0a0a0a@@@0i@@@@@ࠠ0invariant_params05330533*@@@LE@@@@FQ@@@FP@@@FOK@FL000~0~00000@*@"@0j@@@ఐ5value_set_of_closures0533-0533B@˰@@+@@K@FR@FN@0invariant_params0533C0533S@t@@'@@0533@@@ࠠ)free_vars1063W3]063W3f@@@@@@ID@@@ICK@I@000000000@5JD@E@0k@@@ఐ*5value_set_of_closures063W3i063W3~@@@,@@K@IE@IB@)free_vars063W3063W3@@@#@@063W3Y@@@ࠠ6has_no_useful_approxes207330733@@@0$boolE@@@LK@IG@@@IHK@IF000000000@;LF@G@1l@@@డ/$List(for_all219331933@@@!a@J @!b@J*@@@K@@K@@K@$listI@@@K@ @@@K>@@@K@@K@@K@@K@(list.mli%G%G%G%@@,Stdlib__Listd/.@@@@U#Map#key@@K@MK@L@K@L/@@K@L@K@L@K@L@.@@K@L@+@@K@Lh@@K@L@K@L@K@L@K@L01Q1P1P1Q1Q1Q1Q1Q@d@@@@@"idr1t:331u:33@@@0@@@&approxs1:331:33@@@K@L01q1p1p1q1q1q1q1q@B@@1n@@@@డ0H#not1;331;33@!@@@!@@L@L!@@L@L@L@L011111111@'@@1o@@@@డ0c N P1<441<44@ M@@@ M@@M@L@,@@M@L L@@M@L@M@L@M@L@@డ0`&useful!A1;331;33@@v@@@ %@@@ @@ @/B0h0h/B0h0~@@/t@@@@@N@L@@N@L@N@LG@@ఐr&approx1;331;34@Q@@nT@@1;331;34@@ @@N@LN@LO@L^@@డ,#Map#mem(Variable2<442<44+@@@@@G@!t!a@G@@@G$boolE@@@G@@G@@G@mm@@+Stdlib__MapG @@@@@N@L@@@N@Q4N@L@@N@L@@N@L@N@L@N@L@@ఐ۠"id2K<44,2L<44.@Ű@@@@డ1$Lazy%force2]<4402^<44:@#@@@-r 0@@O@Q3O@Q%@@O@Q&@O@Q$@@ఐ0invariant_params2v<44;2w<44K@@@<@@P@Q2@@2~<44/2<44L@@@@s@@-@@N@LN@Q]O@L@@2;332<44M@@"@@M@LM@Q_N@L@@ @@p@@L@QcL@Qb@@AA@@Kx@@L@Qj@L@QiL@Qg022222222@@@@@A2:332<44N@@@a@X@@L@L@L@L@L@LL@Ql@@డ)Parameter$List$vars)Parameter2=4O4Y2=4O4l@@$listI)Parameter!t@@@Q@@@Q(Variable!t@@@Q@@@Q@@Q@ middle_end/flambda/parameter.mliss)@@K'&@@@$!@@L@Q@@L@Q@@L@Q@@L@Q@L@Q@@ఐ-function_decl3=4O4m3=4O4z@c@@0Y@@M@Q@Q@¶ms3=4O4{3=4O4@05@@QN@@M@Q@@M@QM@QM@Q@@3=4O4X3 =4O4@@@@L@LL@QL@Q@@ఐS,args_approxs33=4O434=4O4@=@@@@3793338=4O4@@>7@3:833@@H9@@3<733@@@ࠠ1always_specialise٠3J?443K?44@@@0+@@@R K@Q03=3<3<3=3=3=3=3=@Qhb@c@3`m@@@ࠠ0never_specialiseڠ3]?443^?44@@@0>@@@RK@Q@@@@ @@Q@ఐ4specialise_requested3sB515<3tB515P@߰@г&Lambda3B515S3B515n@@@@@Q03p3o3o3p3p3p3p3p@3@@@@3B515;3B515o@@@@@@Q@Ġ1Always_specialise3C5u5{3C5u5@81Always_specialise(4specialise_attribute@@@ @@@@C@@A((@@@(@@@@@@N@QW@@W@@ภ)3C5u53C5u5@)@@@0@@L@R e@ภ03C5u53C5u5@0@@@0@@L@Rq@@@@bK@R K@Rv@Ġ0Never_specialise3D553D55@80Never_specialise;@@@AC@@A((@@@(@@  @@@@N@R@@@@ภ0ǰ3D553D55@0@@@0@@L@R@ภ)3D553D55@)@@@0@@L@R@@@@K@RK@R@Ġ2Default_specialise4E554 E55@82Default_specialiseq@@@BC@@A)-/)-C@@@) @@  @@@@N@R@@@@ఐ-function_decl4 F554!F55@@@1u@@M@R#@R @-function_body4,F564-F56 @1q@@1m1@@@R"@@@R!@Ġ$None4@G664AG66!@18@@@@11@@O@R+@@O@R*@@@@ภ124RG66%4SG66*@11@@@11@@M@RC@ภ*e4^G66,4_G660@*d@@@1=@@M@RF@@@@K@R@K@R=@Ġ$Some4sH616;4tH616?@16ঠ*specialise4~H616B4H616LA(ࠠ۠@@(@@@R6@@@4H616@4H616N@@2$@@O@R8O@R7 @@@@@1Ϡ2+@@O@R:@@O@R9@@@@ఐ*specialise4I6R6c4I6R6m@@ @4r@г/U4specialise_attribute&Lambda4I6R6p4I6R6@@ @@@RJ044444444@g8@@@@4I6R6b4I6R6@@@@@@RK @Ġ1Always_specialise4J664J66@4@@@@%@@P@RR@@@@ภ*4J664J66@*@@@1@@N@Rb'@ภ1Ű4J664J66@1@@@1@@N@Re3@@@@K@R_K@R\8@Ġ0Never_specialise4K664K66@(@@@@T@@P@RVH@@H@@ภ15K665 K66@1@@@1@@N@RmV@ภ+5K665K66@+@@@1@@N@Rpb@@@@1K@RjK@Rgg@Ġ2Default_specialise5)L665*L67 @!@@@@@@P@RZw@@w@@ภ257L67 58L67@2@@@2@@N@Rx@ภ2#5CL675DL67@2"@@@2"@@N@R{@@@@`K@RuK@Rr@@A5OI6R6\ @@dK@RH@@A5SE555TM77#@@K@R@@A5XB5155@@@@5Z?44@@@ࠠ@@1@@K@RK@RI@ภ,Don't_try_it6bZ886cZ89@&ภ!S/Not_specialised,Classic_mode6oZ896pZ89"@8,Classic_modeh@@@R@@@@GB@A&|&|@@@&W@  @@K@Rk@@@@&@@@Rp@ఐ])self_call6[9#9/6[9#98@G@@}@ภ,Don't_try_it6\9>9D6\9>9P@& ภ!S/Not_specialised)Self_call6\9>9Q6\9>9l@8)Self_call4@@@FGB@A&C  &C  @@@&^@  @@K@R@@ @@3K@R@డ5s%^%`6]9m96]9m9@%]@@@%]@@K@R@1@@K@R%\@@K@R@K@R@K@R@@ఐ1always_specialise6]9m9y6]9m9@W@@%y@@L@SL@SL@S@@డ5#not6]9m96]9m9@&@@@&@@L@S&@@L@S@L@S@@డ5$Lazy%force7]9m97]9m9@'Ű@@@2' @@M@S M@S-M@S@@M@S@M@S@@ఐ16has_no_useful_approxes7!]9m97"]9m9@ϰ@@26@@N@SN@S@@7+]9m97,]9m9@@@@A@@26@@L@RL@S/M@S "@@_ @@2d@@K@S1L@R(@ภ&Try_it7A^997B^99@'@@@K@S53@ఐ0never_specialise7P_997Q_99@ΰ@@2@@K@S7K@S6E@ภ,Don't_try_it7^`997_`99@'ภ!S/Not_specialised*Annotation7k`997l`9:@8*Annotation@@@AGB@A'~  '~  '@@@'Y@  @@K@S>d@@ @@6K@S;g@డ5%equal!T7a::&7a::-@%0@@@1@@K@SD@1@@K@SC%0@@K@SB@K@SA@K@S@@@ఐ>j;;@@ F@@4@@4n@@K@SL@SL@ภ,Don't_try_it9Kk;;9Lk;;@)wภ!S/Not_specialised-Not_recursive9Xk;;9Yk;<@8-Not_recursive@@@BGB@A)r ( ,)s ( ;@@@)qZ@  @@oK@Sk@@ @@iK@Sn@డ4^#Map(is_empty(Variable9yl<< 9zl<<5@ݰ@@@f"4@@K@TK@S@@K@S@@K@S@K@S@@డ8L$Lazy%force9l<<79l<:{s=:=J@*ࠠ(decision:s=:=K:s=:=S@@@ {@@@Tx0:t:s:s:t:t:t:t:t@@@@@@@@* @@M@Tz@@M@Ty @@ @@ภ(Original:s=:=W:s=:=_@ఐ(decision:s=:=`:s=:=h@@ @:w@@ 0::::::::@:*@@@@@@ J@T@Ġ&Try_it:t=i=m:t=i=s@*@@@@+) @@M@T@@M@TR@@R@@@ࠠ!r:u=}=:u=}=@@@6R@@@TL@TI@డ916set_inlining_threshold!R:v==:v==@@@@6f@@L@T@@@L@T@@L@T6r@@L@T@L@T@L@Ti@@ఐ ̠!r:v==:v==@ @@ v@@ภ$Some;v==; v==@7ˠఐ@@@&optionJ!t@@@X&Result!t@@@X@@X@@@XL@T0;=;<;<;=;=;=;=;=@@@;`x@@@డ &inline_by_copying_function_declaration3Inlining_transforms;by>> ;cy>>E@#env#Env!t@@@?!r&Result!t@@@?.function_decls5function_declarations@@@?2lhs_of_application k@@@?0inline_requested @@@?8closure_id_being_applied O@@@?-function_decl4function_declaration@@@?$args D C@@@?@@@?,args_approxs <!t@@@?@@@?0invariant_params&lazy_tN7?#Map!t7G#Set!t@@@?@@@?@@@?0specialised_args7U#Map!t.specialised_to@@@?@@@?)free_vars7h#Map!t.specialised_to@@@?@@@?6direct_call_surrogates7k#Map!t7r!t@@@?@@@?#dbg @@@?(simplify @@@?@@@?@@@?@@?@@@?@@?@@?@@?@@?@@?@@?@@?@@?@@?@@?@@?@@?@@?@@?@@?@5Yhh6iH@@4C@@@@L@T@@L@T@@L@T&@@L@T e@@L@T@@L@T@@L@T  @@L@T@@L@T @@L@T@@L@T@@L@T@@L@T@@L@T@@L@T@@L@T@@L@T@@L@T@@L@T@@L@T~ @@L@T|@@L@Tc`@@L@Tɠ]@@L@T@L@T@@L@T@L@T@L@T@L@T@L@T@L@T@L@T@L@T@L@T@L@T@L@T@L@T@L@T@L@T@L@T@L@TX@Eఐ #env<y>>G<y>>J@ }@@e@Fడ;-reset_benefit!R<z>K>Y<z>K>h@^@@@8N@@M@X38Q@@M@X2@M@X1@@ఐ!r<z>K>i<z>K>j@@@8e@@N@X>N@XDN@XC@@<z>K>X<z>K>k@@8k@@M@X=@nఐ .function_decls<{>><{>>@ w@@@@M@XG@tఐ Ġ2lhs_of_application=z>K>m=z>K>@ @@@zఐ 0inline_requested=??=??@ @@1@ఐ 8closure_id_being_applied={>>= {>>@ l@@@ఐ -function_decl=,{>>=-{>>@ @@@@M@XN@ఐ l$args=<|>>==|>>@ V@@@ఐ i,args_approxs=I|>>=J|>>@ S@@@ఐ Ҡ0invariant_params=V}>>=W}>? @ @@&&&@@M@XZ@@M@XY@@M@XX@ఐ Š5value_set_of_closures=p~??*=q~???@ @@8@@M@X@X}&@0specialised_args=|~??@=}~??P@%@@%@@M@X M@XM@X@@M@X~8@ఐ 렐5value_set_of_closures=?Q?f=?Q?{@ @@8@@M@X@XL@)free_vars=?Q?|=?Q?@&~@@&}@@M@XM@XM@X@@M@X^@ఐ5value_set_of_closures=??=??@ @@8@@M@\@\r@6direct_call_surrogates=??=??@&@@&@@M@XM@\M@\@@M@\@ఐ #dbg=??=??@ ڰ@@Z@Ȑఐ (simplify=??=??@ װ@@Y@@@@@@=x==@@ఐȠ;copied_function_declaration=@ @=@ @0@@@> y@@Ƞ@@@\@@@\@@\@@@\0========@@@@Ġ$Some>@6@>>@6@B@:ޠࠠ$exprp>'@6@D>(@6@H@@@@@@]0>>>>>>>>@@@@ࠠ)r_inlinedq>5@6@J>6@6@S@@@@@@]@@><@6@C>=@6@T@@ @N@]@@@(@@ @@N@]@@N@]@N@]@@N@]$@@$@@@ࠠ#wsbr>[@X@d>\@X@g@@@)(@@@]YM@]'0>N>M>M>N>N>N>N>N@VC=@>@>rz71@2@>t{@@@డ<&create!W>v@j@t>w@j@|@Z@@Z9@@M@]7XV@@M@]6US@@M@]5@R@@M@]4OM@@M@]3JH@@M@]2GE@@M@]1)d@@M@]0@M@]/@M@].@M@]-@M@],@M@]+@M@]*@M@])<@ఐ(original>@j@~>@j@@@@I@ภ;>@@>@@@;@@@@@N@]_N@]gY@డ=B,branch_depth!E>@@>@@@6@@@:_@@N@]k6@@N@]j@N@]is@@ఐà#env>@@>@@@@@@@>@@>@@@@@@N@]^N@]{O@]q@@ఐР$expr>@j@>@j@@@@@@N@]]N@]}N@]|@Ðడ=c'benefit!R?AA)?AA2@t@@@:@@N@]t@@N@]@N@]@@ఐ)r_inlined?%AA3?&AA<@@@:@@O@]O@]@@?.AA(?/AA=@@@@N@]\N@]O@]@ภ<??@@?@@@@<@@@@@N@][N@]@డ=%round!E?V@A?W@A @$h@@@:@@N@]$h@@N@]@N@]@@ఐN#env?k@A?l@A@4@@d @@?o@A?p@A@@!@@N@]ZN@]O@]@@J@@@@?z@X@`L@@@ࠠ#envs?AIAU?AIAX@@@;@@@cM@]0?x?w?w?x?x?x?x?x@+82@3@?|@@@@ࠠ+closure_idst?AA?AA@@@*Closure_id#Set!t@@@cN@]@డ*Closure_id#Set'of_list*Closure_id?AA?AA@@$listI&#elt@@@_@@@_,@@@_~@@_}@6utils/identifiable.mlill@@,IdentifiableP@@@@@N@_@@N@_?@@N@_@N@_U@@డ>$List#map?BB?BB@@@!a@J!b@J@@K@נ@@@K~ܠ@@@K}@@K|@@K{@@@U @@@@*#@@O@cEO@c!X@@O@cO@c7O@c@O@c"@!@@O@c  @@O@c@O@c@O@c@@డ$wrap*Closure_id@8BB@9BB&@@(Variable!t@@@@y!t@@@@x@@@w@ 1middle_end/flambda/base_types/closure_element.mliUU@@/Closure_element@@@@@@P@c5@@P@c4@P@c3@@డ;P#Set(elements(Variable@kB'B8@lB'BM@@*j@@@$listI*@@@@@@@@@*p@*l[@@@*{@@P@c=*@@P@c<@@P@c;@P@c:@@డ;#Map$keys(Variable@B'BO@B'B`@@!a@Fv@@@I"&Stdlib#Set$Make*!T!t@@@I!@@I @@,Identifiable]@@@>@@Q@cfQ@cO@@Q@cN@@Q@cM@Q@cL=@@ఐ.function_decls@B'Ba@B'Bo@X@@)@@R@cg@cdQ@$funs@B'Bp@B'Bt@ @@ %@@R@ce\@@@B'BN@B'Bu@@B@@Q@cYb@@@B'B7@B'Bv@@@@P@c-P@cP@cDm@@@AA@B'Bw@@A>@@O@c@@O@cO@cO@c,{@@N @@i|@@A AA@@డ?9note_entering_specialised!EABBABB@@<@@@(+closure_ids*Closure_id#Set!t@@@(<@@@(@@(@@(@9d&&9e&&@@9cx@@@<@@M@c@@M@c<@@M@c@M@c@M@c0A-A,A,A-A-A-A-A-@@@AP~@@@@ఐ3#envAPBBAQBB@@@I@4ఐ +closure_idsA]BBA^BB@@@A@@N@cN@cN@c%@@Q @@&@_ @@@@AjAIAQ @@డ@+00AuBBAvBB@0@@@0@@L@c@0@@L@c0@@L@c@L@c@L@c0ApAoAoApApApApAp@@@A}@@@@ఐI1always_specialiseABBABB@ @@0@@M@cM@cM@c@@డ?(evaluate!WABBABB@&_@@@,y@@M@d&_@@M@c@M@c2@@ఐf#wsbABBABB@4@@,@@N@dN@d N@d F@@  @@1@@M@cM@d N@dN@@A@@=@@L@dM@cT@@ࠠ)r_inlined ACCACC@@@=k@@@d*M@d0AAAAAAAA@f@@@ఐ1always_specialiseACC*ACC;@ u@@=&@@M@dM@d0AAAAAAAA@x@@@డ@]+map_benefit!RB CACOB CAC\@!K@@@=@@M@d@@!K@@M@d!F@@M@d@M@d=@@M@d@M@d@M@d"@@ఐ)r_inlinedB)CAC]B*CACf@ð@@=@@N@d4N@d3F@@డ@g'Benefit#max-Inlining_costBCCgCxBDCgC@!*@@!*!(@@O@dA@,@@O@d@@-@@O@d?-@@O@d>@O@d=@O@d<@O@d;[@!<డ@%round!EBgCgCBhCgC@'y@@@=@@P@dV'y@@P@dU@P@dT@@ఐ#envB|CgCB}CgC@@@>@@Q@d]Q@daQ@d`@@BCgCBCgC@@!m@@P@dRP@dcQ@d\@@Р@'Benefit-Inlining_costBCCBCC@@ @@A0BBBBBBBB@ @@@డ0requested_inlineBCCBCC@!@@@-c@@P@dj!!@@P@di-k@@P@dh@P@dg@P@df@@డ-$zeroBCCBCC@-b@@-@@Q@dvQ@dxQ@dw/@!3ఐ$exprBCCBCC@y@@!@@@Q@duQ@dzQ@dyC@@9@@-@@P@dQP@d|Q@dtK@PBCC@@ @@BCgCwBCC@@@-@@N@d-@@N@d@N@d~@@ @@@ఐР)r_inlinedCCDCCD@@@"M@d@C CC'@@$!@@C CC @@@ࠠ!r CDD-CDD.@@@>@@@dM@d0C C C C C C C C @C=@>@C.@@@డA+map_benefit!RC0D1D=C1D1DJ@"q@@@>@@M@d@@"q@@M@d"l@@M@d@M@d>@@M@d@M@d@M@d%@@ఐl)r_inlinedCOD1DKCPD1DT@/@@>@@N@dN@dN@d9@@డA'Benefit!-Inlining_cost!CjD1DVCkD1Do@ @@@.@@O@d@.#@@O@d.&@@O@d@O@d@O@dZ@@డA'benefit!RCD1DqCD1Dz@ @@@?@@P@d @@P@d@P@dt@@ఐԠ!rCD1D{CD1D|@L@@?(@@Q@dQ@dQ@d@@CD1DpCD1D}@@.^@@P@dP@dQ@d@@CD1DUCD1D~@@@.f@@N@d.i@@N@d@N@d@@ @@@@CDD) @@@ࠠ+closure_env CDDCDD@@@?^@@@e&M@d0CCCCCCCC@@@C@@@@ࠠ#env CDDCDD@@@?t@@@eN@d@డB00CDDCDD@0@@@0@@N@d@0@@N@d0@@N@d@N@d@N@d0@@డB.inlining_level!EDDDDDD@@@@?@@O@d@@O@d@O@dJ@@ఐ#envD&DDD'DD@@@?@@P@dP@dP@d^@@  @@0P@@O@dO@dP@df@@@D?DDD@DD@@0Z@@O@dO@dO@dv@@8 @@?w@@N@dO@d|@ఐР#envDUEEDVEE@а@@s@డB1inlining_level_up!EDeEFDfEF%@@@@?@@N@e?@@N@e@N@e@@ఐ#envDzEF&D{EF)@@@@@@O@eO@eO@e@@  @@@@@N@e@DDD@@@@DDD@@డC !set_never_inline_outside_closures!EDF9FGDF9Fj@@@,@@@(@/@@@(@@(@<hj<h@@N@eDN@eC<@@- @@@=@@EF|F @@@ࠠ$expr E*FFE+FF@@@@J@ekJ@eG0EEEEEEEE@Vc]@^@EA@@@ࠠ!r E>FFE?FF@@@n@J@elJ@eH@@ @@ @J@eK@ఐU(simplifyEUFFEVFF@?@@%@@ఐ+closure_envEbFFEcFF@@@@@@J@eZ5@@ఐZ!rErFFEsFF@@@@@@J@e]E@@ఐ[$exprEFFEFF@@@ Q@J@eTN@e`X@@7 @@FJ@eQ[@@EFF @@@ࠠ#res EFG EFG@@@A@@J@eA@@J@e@J@eJ@eM@eb0EEEEEEEE@z@@Evp@q@E@@@ఐ(simplifyEFGEFG@@@'@@ఐ/application_envEFGEFG)@@@AZ@@J@eq#@@ఐ!rEFG*EFG+@*@@0@@ఐ$exprEFG,EFG0@9@@=@@.@@LJ@eh?@@EFG@@@ࠠ(decision EG4GBEG4GJ@@@@@@eM@eu0EEEEEEEE@Tjd@e@F @@@ఐ1always_specialiseF GMG\F GMGm@@@A<@@M@ewM@ev@ภ!S+Specialised*AnnotationFGMGsFGMG@8*Annotation @@@e@@@@AB@A6:r6;r@@@69R@  @@)@@@e/@ภ!S+Specialised4Without_subfunctionsF8GGF9GG@84Without_subfunctions@*:Whether_sufficient_benefit!t@@@e}@A@AB@A6[s6\t6@@@6ZSఐ#wsbFRGGFSGG@Ű@@1@@M@eZ@@!@@1M@e]@F\GMGY @@3_@@F^G4G> @@ภ'ChangedFeGGFfGG@!sఐՠ#resFoGGFpGG@q@@0F]F\F\F]F]F]F]F]@u|@}@F@@@ఐ(decisionF~GGFGG@ @@@@FGG@@@ѠJ@eJ@g4J@e@@L@e@1 @@ @@@ @@@^@v@@@@@@@@t@FBBFGG@@@@ࠠ+closure_env FH HFH H#@@@B6@@@eM@e0FFFFFFFF@%@@@@ࠠ#env FH&H6FH&H9@@@BI@@@eN@e@డE@1inlining_level_up!EFH&H<FH&HO@"@@@B]@@N@eB`@@N@e@N@e*@@ఐY#envFH&HPFH&HS@Y@@Bt@@O@eO@eO@e>@@  @@/?@@FH&H2 @@డEn !set_never_inline_outside_closures!EFHWHcFHWH@_@@@B@@M@eB@@M@e@M@e0FFFFFFFF@~SM@N@G@@@@ఐ[#envGHWHGHWH@@@B@@N@eN@eN@e@@$ @@t@2 @@ur@@GH H @@@ࠠ$expr G+HHG,HH@@@!@J@fJ@e0GGGGGGGG@@@GB@@@ࠠ)r_inlined G?HHG@HH@@@B@@J@fJ@fJ@e@@ @@ @J@e@ఐW(simplifyGWHHGXHH@A@@&@@ఐ +closure_envGdHHGeHH@0@@B@@J@e6@@ఐ ?)r_inlinedGtHHGuHH@ @@@J@eN@eI@@ఐ `$exprGHHGHH@ #@@"V@J@eN@e\@@: @@IJ@e_@@GHH @@@ࠠ5wsb_with_subfunctions GHHGHI@@@2l@@@f!M@e0GGGGGGGG@u}@~@Gqk@l@G@@@డE&create!WGIIGII@!@@!B@@M@e!!@@M@e!!@@M@e@!@@M@e!!@@M@e!!@@M@e!!@@M@e2@@M@e@M@e@M@e@M@e@M@e@M@e@M@e@M@e<@!Đఐݠ(originalGIIGII#@ǰ@@KI@!ʐภDذGI)IAGI)IF@D@@@!@@N@f'N@f/Y@!ҐడF,branch_depth!EHIGIdHIGIr@?@@@C@@N@f3@@@N@f2@N@f1s@@ఐ#envH$IGIsH%IGIv@@@C@@O@f:O@f>O@f=@@H/IGIcH0IGIw@@"@@N@f&N@f@O@f9@@ఐ$exprHBII$HCII(@@@@"డF'benefit!RHTIIHUII@%@@@C@@N@fE%@@N@fD@N@fC@@ఐ*)r_inlinedHiIIHjII@@@*@@HmIIHnII@@"1@@N@f$N@fUO@fK@".ภE^H~IxIHIxI@E]@@@"7@@N@f#N@fY@"6డG %round!EHIIHII@-@@@D)@@N@f]-@@N@f\@N@f[@@ఐ %#envHIIHII@%@@D@@@O@fdO@fhO@fg @@HIIHII@@"g@@N@f"N@fjO@fc@@Q@@@@HHHS@@డG(evaluate!WHIIHIJ @-@@@3@@L@fo-@@L@fn@L@fm0HHHHHHHH@4A;@<@H@@@@ఐI5wsb_with_subfunctionsHIJ HIJ@@@3@@M@fvM@fzM@fy@@$ @@D!@@L@f|M@fu@@ࠠ!r IJ+J<IJ+J=@@@D@@@fM@f}0HHHHHHHH@0@@@డGj+map_benefit!RIJ@JOIJ@J\@(X@@@D@@M@f@@(X@@M@f(S@@M@f@M@fD@@M@f@M@f@M@f"@@ఐ)r_inlinedI6J@J]I7J@Jf@@@/@@డGo'Benefit&ࠡ-Inlining_cost&IJJgJIKJgJ@&߰@@@3@@O@f@4@@O@f4@@O@f@O@f@O@fP@@డG'benefit!RIiJgJIjJgJ@&Ͱ@@@D@@P@f&@@P@f@P@fj@@ఐ!rI~JgJIJgJ@,@@E@@Q@fQ@fQ@f~@@IJgJIJgJ@@4>@@P@fP@fQ@f@@IJgJIJgJ@@@4F@@N@f4I@@N@f@N@f@@ @@@@IJ+J8 @@@ࠠ/application_env IJJIJJ@@@E>@@@fM@f0IIIIIIII@@@I@@@డH9 set_never_inline_inside_closures!EIJJIJJ@԰@@@EV@@M@fEY@@M@f@M@f@@ఐ R#envIJJIJK@R@@Em@@N@fN@fN@f/@@  @@30@@IJJ @@@ࠠ#res IKKIKK@@@FI@@J@gFD@@J@g@J@gJ@gM@f0IIIIIIII@N[U@V@J @@@ఐ (simplifyJ KKJ KK%@@@x@@ఐo/application_envJKK&JKK5@@@E@@J@f @@ఐ'!rJ)KK6J*KK7@w@@E@@J@f0@@ఐ$exprJ9KK8J:KK<@@@=@@1@@LJ@f?@@J?KK@@@ࠠ(decision JJK@KQJKK@KY@@@N@@@fM@f0J=J<J<J=J=J=J=J=@Tjd@e@J`@@@ภ!S+Specialised1With_subfunctionsJ`K\KkJaK\K@81With_subfunctionsC@.:Whether_sufficient_benefit!t@@@e~.:Whether_sufficient_benefit!t@@@e@BAAB@A:u7;:w@@@:Tఐ (#wsbJK\KJK\K@ @@5N@@M@g7@ఐ5wsb_with_subfunctionsJK\KJK\K@@@5\@@M@gE@@8JK\K@@@@@fJ@@JK@KM@@ภ'ChangedJKKJKK@%ఐ#resJKKJKK@\@@0JJJJJJJJ@`mg@h@J@@@ఐs(decisionJKKJKK@ @@@@J@g@@ JKK@@DL@g@+@@v@@@@@@@JIJ%JKK@@@@ࠠ(decision JKLJKL@@@@@@g#M@g0JJJJJJJJ@@@@ภ!S/Not_specialised.Not_beneficialJLLJLL?@8.Not_beneficial|@/L:Whether_sufficient_benefit!t@@@Rڠ/U:Whether_sufficient_benefit!t@@@R@BAGB@A;D  ;F  @@@;_ఐ #wsbKLLAKLLD@ @@5@@M@g'4@ఐ}5wsb_with_subfunctionsKLLFKLL[@B@@5@@M@g+B@@8K#LL\@@@@@g$G@@K(KL@@ภ(OriginalK/LlLxK0LlL@.ఐa(decisionK9LlLK:LlL@a@b@KG@@0K)K(K(K)K)K)K)K)@el@@@@@@~L@g3@KDKKKELL@@f@KGII@@h@@@@@@@KKGHKLLL@@@KNBB@@@ @@ @ @@YJ@eJ@]& @Ġ$NoneK_LLK`LL@HW@@@@)&@@N@]!#@@N@]"@N@] @@N@] a@@ a@@@ࠠ(decision KzLLK{LL@@@t@@@g8M@g6 U@ภ!S/Not_specialised8No_useful_approximationsKLLKLL@b@@@@@@g9 e@@KLL@@ภ(OriginalKLMKLM @/ ఐ*(decisionKLM KLM@*@+@K@@ J@g?0KKKKKKKK@ 7@@@@ @@EJ@g; J@g<@@L@g> @%@@iJ@g=J@g5 @@AK@ @@@mJ@T0KKKKKKKK@ @@@ @@p@Kt=i=w@@;@@AKr==@@J@FK0KKKKKKKK@Z@@@r@@@@@L@r@@z@@@@@@@@@ ;@@AK422A@J@FE0KKKKKKKK@]@@@@AK422A@J@F?0KKKKKKKK@r@@@@AK322A@ J@F90KKKKKKKK@@@@@AK322A@J@F30KKKKKKKK@@@@@AK22w2A@*J@F-0KKKKKKKK@@@@@AK22w2A@@J@F'0KKKKKKKK@@@@@AK22w2A@PJ@F!0KKKKKKKK@@@@@AK22w2A@cJ@F0KKKKKKKK@@@@@AK22w2A@vJ@F0KKKKKKKK@@@@@AK22w2A@J@F0KKKKKKKK@@@@@AL22w2}A@J@F 0KKKKKKKK@/@@@@AL12>2DA@J@E0KKKKKKKK@W@@@@AL 022$A@J@E0KKKKKKKK@n@@@@AL/11A@J@E0KKKKKKKK@@@@@AL.11A@J@E0LLLLLLLL@@@@@AL-11A@J@E0L LLL L L L L @@@@@AA@J@E0L L L L L L L L @@@@@AA@@@@gu0LLLLLLLL@@@@@@@@ࠠ-for_call_site L3MM L4MM-@@@#envG@@@qJ@gw!rG@@@J@g}.function_declsJ5function_declarations@@@gJ@g2lhs_of_applicationG@@@J@g8closure_id_being_appliedG@@@J@g-function_declK4function_declaration@@@gJ@g5value_set_of_closuresK$5value_set_of_closures@@@gJ@g$argsGG@@@@@@J@g,args_approxs*8K@@@x@@@xJ@g#dbgG~@@@ J@g(simplifyGy@@@ltJ@g0inline_requestedGt0inline_attribute@@@k J@g4specialise_requestedGr@@@ J@g'Flambda!t@@@kJ@kȠHn@@@kJ@k@@kJ@g@@gJ@g@@gJ@g@@gJ@g@@gJ@g@@gJ@g@@gJ@g@@gJ@g@@gJ@g@@gJ@g@@gJ@g@@gJ@g~@@gJ@gx@@gyJ@gv0LLLLLLLL@@@LX@@@ LMM/LMM2@@@0LLLLLLLL@АMMMMvv@@@@@ ưM MM4MMM5@@@0LLLLLLLL@@@M@@@@Ơ @MMM8MMMF@@@@@g0M M M M M M M M @@@M0@@@ְ  @ гנ!AٰM2MMIM3MM`@@@@@g@@@@@@@ݠ MBMbMiMCMbM{@@@0M0M/M/M0M0M0M0M0@$1)@,@MS@@@@ MRMbM}MSMbM@@@0M@M?M?M@M@M@M@M@@@@Mc@@@@ @MbMMMcMM@@@@@g0MRMQMQMRMRMRMRMR@@@Mu@@@  @ г!AMwMMMxMM@@@@@g@@@@@@@ @MMMMMM@@@@@g0MwMvMvMwMwMwMwMw@&3+@.@M@@@  @ г!AMMMMMM@@@@@g@@@@@@@ !MMNMMN @@@0MMMMMMMM@$1)@,@M@@@@ "MMN MMN@@@0MMMMMMMM@0@@M@@@@ #MMNMMN@@@0MMMMMMMM@1@@M@@@@ $!MMNMMN'@@@$0MMMMMMMM@2@@M@@@@!! %&MMN)MMN9@@@)0MMMMMMMM@7@@M@@@@## &(MN:NAMN:NU@@@+0MMMMMMMM@<@@N @@@@డL"<>NNXNnNNXNp@@D@@@@D@@@D@@@@@@@@DBaaDBaA@@DA@@@@@K@g@@@K@g@@K@g@K@g@K@g0N NNN N N N N @7Bd@:@NC@@@@డL$List&lengthNHNXN]NINXNh@@"!a@K@@@K##intA@@@K"@@K!@ k!k @@C@@@J@LJ@x J@x>J@n@@>@@9@@N@@N@jB@@ఐ0inline_requestedPQ=QEPQ=QU@@@[L@k N@@APOO@г@@@@j@@@@|K@j@@POO@@@ࠠ(original lPQ[QaPQ[Qi@@@@@@kK@k0PPPPPPPP@@@@j@@P@@@ภ'Flambda%ApplyPQlQpPQlQ}@8%Apply@@@#@%apply@@@#@ADAO@A>middle_end/flambda/flambda.mlibb @@@ m,$func@@@#(Variable!t@@@#@@,$args$listI!t@@@#@@@#@A@A'f=?(f=V@@1J,$kind!8)call_kind@@@#@B@A2gWY3gWj@@RNRy@@M@@@&M@@@&@@&@J|K44J}K45@@J{O@@@M@@L@kyM@@L@kx@L@kw\@@ఐU!rR_RNRzR`RNR{@=@@i@@RcRNR_RdRNR|@@M@@L@ko@@డQ -value_unknown!ARwRNR~RxRNR@@P2unknown_because_of@@@ V>&@@@ U@@ T@O##O##@@OQ@@@@@L@k>3@@L@k@L@k@@ภ%OtherRRNRRRNR@8%Other"@@@@@@@AA@AOgOg@@@OL@  @@-@@M@kM@k@@RRNR}RRNR@@>T@@L@k@@@@@@RR;R=@@ఐa-function_declRRRRRR@4@@P@@K@k@k0RRRRRRRR@@@R@@@-function_bodyRRRRRR@P@@PPm@@@k@@@k@Ġ$NoneRRRRRR@O@@@@P%P@@M@k@@M@k0RRRRRRRR@&@@@ @@@ఐ3(originalRRRRRR@@@@ఐ*original_rSRRSRR@<@@@@@@/J@k@Ġ$SomeSRRSRR@Oנঠ$stubSRRS RRAGNࠠ n@@GQ@@@ka@@AS*RRS+RR@@P@@M@kM@ki@@@@@PpP@@M@k@@M@kq@@q@@ఐ$stubSBRSSCRS@@ @SP@@Nu@@K@kK@k0S7S6S6S7S7S7S7S7@+ @@@@ࠠ(fun_vars oSXSSSYSS%@@@@@@kL@k0SKSJSJSKSKSKSKSK@@@@డNU#Map$keys(VariableSpSS(SqSS9@Ӱ@@@!]P@@L@kL@k@@L@k@@L@k@L@k!@@ఐs.function_declsSSS:SSSH@H@@ @@J@lJ@l?@M@@n@@@@UiRS UjTT@@  @డS,never_inline!EUzTTU{TT@@Q@@@(M@@@(@@(@MxzMx@@Mk@@@Q@@K@l@@K@l@K@l3@@ఐ#envUTTUTT@@@ d@@@'@@P@@K@lL@lF@ఐꠐ(originalUUUUUU@@@J@lK@lW@ఐΠ*original_rUUUUUU@@@J@ld@@@@ae@ఐ.function_declsUUUUUU@@@>@@K@l@ly@/is_classic_modeUUUUUU@Ű@@Q@@K@lK@l@@ࠠ#env sUVVUVV@@@Q@@@mL@l0UUUUUUUU@@@@డT{2note_entering_call!EVVVVVV3@@Q@@@(*closure_id!t@@@(#dbg)Debuginfo!t@@@(Q@@@(@@(@@(@@(@NY$^$`NZ$$@@NXv&%@@@Q@@L@l#!@@L@l@@L@lQ@@L@l@L@l@L@l@L@lE@@ఐ N#envVFVV4VGVV7@ 6@@ R@=ఐ 8closure_id_being_appliedVSV8VNVTV8Vf@@@ _@@ఐ#dbgV`V8VlVaV8Vo@@@ l@@`@@pm@@VeVV @@@ࠠ%simpl tVpVyVVqVyV@@@PàP@@@oL@m+P@@@m0L@m,@@@m-L@m0VoVnVnVoVoVoVoVo@9@@V@@@ఐ 4-function_declVVVVVV@ @@S@@M@m@m0VVVVVVVV@@@@-function_bodyVVVVVV@S@@ST=@@@m@@@m@Ġ$NoneVVVVVV@S@@@@STQ@@O@m@@O@m:@@:@@ภ(OriginalVVVVVV@:Jภ!S+Not_inlined,Classic_modeVVVVVV@8,Classic_modeF@@@@EC@AFcIMFcI[@@@FH@  @@]M@m1Y@@ @@kL@m)\@Ġ$SomeVVVVVV@Sࠠ-function_body uVVVVVW @@@T@@@m$^@@@@@T8T@@O@m&@@O@m%f@@f@@@ࠠ)self_call vW WWW WW'@@@Oe@@@mCN@m30VVVVVVVV@'!@"@W"@@@డU "inside_set_of_closures_declaration!EW$W*W6W%W*WZ@@Q!t@@@(@R@@@($@@@(@@(@@(@OkOl@@Oj`@@@@@N@m9@R@@N@m86@@N@m7@N@m6@N@m55@@ఐ ;.function_declsWUW[WiWVW[Ww@ @@@=@@O@mI@mGI@6set_of_closures_originWaW[WxWbW[W@!1@@?@@O@mEO@mJO@mHW@@ఐ#envWuW[WWvW[W@@@S @@O@mDO@mNO@mMk@@\ @@pl@@WWW @@@ࠠ,try_inlining wW WWW WW@@@HQ@@@mXN@mT@@@mUN@mP0WWWWWWWW@@@W@@@ఐ)self_callW!WWW!WW@ @@R@@N@mRN@mQ@ภ,Don't_try_itW"WWW"WW@Gภ!S+Not_inlined)Self_callW"WWW"WX @G@@@1N@mY-@@@@H87@@@mV2@డV#notW$XX0W$XX3@Gְ@@@G@@N@m]G@@N@m\@N@m[I@@డVi0inlining_allowed!EW$XX5W$XXG@Gð@@@S@@O@mj@G@@O@miG@@O@mh@O@mg@O@mfh@@ఐ#envX $XXHX $XXK@@@S@@P@mvP@mzP@my|@@ఐ à-function_declX"$XXLX#$XXY@ @@Uw@@P@m~@m|@.closure_originX.$XXZX/$XXh@Uc@@G@@P@muP@mP@m}@@X9$XX4X:$XXi@@H8@@O@mdO@mP@mt@@k @@Sq@@N@mO@mc@ภ,Don't_try_itXN%XoXXO%XoX@Hzภ!S+Not_inlined8Unrolling_depth_exceededX[%XoXX\%XoX@G@@@N@m@@@@N@m@ภ&Try_itXj'XXXk'XX@H@@@N@m@Xp$XX-@@@Xr!WW@@@@Xt WW @@ఐ,try_inliningX~)XXX)XY@@@X@@HR@@@m@@@m0XuXtXtXuXuXuXuXu@ @@@Ġ,Don't_try_itX*Y YX*Y Y$@H ࠠ(decision xX*Y Y%X*Y Y-@@@R@@@m0XXXXXXXX@@@@@@@@IR@@P@m@@P@m @@ @@ภ(OriginalX*Y Y1X*Y Y9@<:ఐ(decisionX*Y Y:X*Y YB@@ @X@@EL@m0XXXXXXXX@<,@@@@ @@WL@mL@m@Ġ&Try_itX+YCYOX+YCYU@I@@@@IIS@@P@m@@P@mV@@V@@@ࠠ(fun_vars yX,YYYiX,YYYq@@@E@@@mO@mM@డS#Map$keys(VariableY,YYYtY,YYY@d@@@&V[@@O@mO@m@@O@me@@O@m@O@mm@@ఐ .function_declsY,YYYY,YYY@ ٰ@@B@@P@m@m@$funsY*,YYYY+,YYY@"@@"%@@P@m@@1@@C@@Y3,YYYe @@@ࠠ$body zYA-YYYB-YY@@@<@@@n7O@m0Y4Y3Y3Y4Y4Y4Y4Y4@e_@`@YW@@@ࠠ!r {YT-YYYU-YY@@@<@@@n8O@m@@@@ @@m@డ;?inline_by_copying_function_body3Inlining_transformsYm.YYYn.YY@;@@;;@@O@n;;@@O@n;T@@O@m;;@@O@m;;@@O@m;T@@O@m;;@@O@m;;@@O@m;T(@@O@m;;ɠ;@@O@m@@O@m;Tt@@O@m;Ti@@O@m@@P@nP@nP@n2@@  @@63@@Z3ZZ @@@ࠠ#env }Z4[[Z4[[@@@VS@@@nO@n0ZZZZZZZZ@HUO@P@Z@@@డYN8inside_unrolled_function!EZ8[[Z8[[@7@@@Vk@@O@n@U_@@O@nVs@@O@n@O@n@O@n @@ఐy#envZ8[[Z8[[@*@@V@@P@nP@nP@n4@@ఐ .function_decls[9\\)[9\\7@ °@@C@@P@n@nH@6set_of_closures_origin[9\\8[9\\N@$@@U@@P@nP@nP@nV@@G @@ZW@@[4[[ @@@ࠠ#env ~[*;\^\n[+;\^\q@@@V@@@nO@n0[[[[[[[[@lys@t@[@@@@డY7inside_inlined_function!E[B<\t\[C<\t\@7@@@V@@O@n@7@@O@nV@@O@n@O@n@O@n @@ఐ#env[\<\t\[]<\t\@*@@V@@P@nP@nP@n4@@ఐ-function_decl[r<\t\[s<\t\@ @@X@@P@n@nH@.closure_origin[~<\t\[<\t\@X@@7@@P@nP@nP@nV@@G @@ZW@@[;\^\j @@ภ'Changed[>\\[>\\@6ఐ Ġ(simplify[>\\[>\\@ @@0[[[[[[[[@o|v@w@[@@@@ఐ#env[>\\[>\\@@@W@@@J@o@@ఐj!r[>\\[>\\@;@@1@J@oO@o '@@ఐ$body[>\\[>\\@P@@6@J@oO@o :@@[>\\[>\\@@X5@@J@nX0@@J@n@J@nJ@o J@nK@ภ!S'Inlined,Classic_mode[>\\[>\]@8,Classic_mode6N@@@@CB@ALW LW@@@LA@  @@N@ob@@r\>\]@@VRL@nIL@n@@N@nm@ @@ @ @@ H@\ @@ @@@ @@@LL@nL@mq@@A\)XX@@PL@m20\\\\\\\\@@@@@@@@@ @@A\VV@@@@\ VyV@@@ࠠ#res \.@]]#\/@]]&@@@X@@@oL@oޠW@@@oL@o@@oL@ok0\,\+\+\,\,\,\,\,@@@\O@@@ࠠ(decision \L@]](\M@]]0@@@V(Decision!t@@@oL@ol@@+ @@+@@oo@ఐ%simpl\fA]3]A\gA]3]F@%@@VV@@@orV@@@os@@@oq0\_\^\^\_\_\_\_\_@3@@@Ġ(Original\B]L]V\B]L]^@@ࠠ(decision \B]L]_\B]L]g@@@V@@@o}0\y\x\x\y\y\y\y\y@M@@@@@@@VޠV@@O@oV@@O@o@@O@o~ @ @  @@@ࠠ(decision \C]k]y\C]k]@@@Y@@@oN@o0\\\\\\\\@m+%@&@\@@@ภ!S(Decision)Unchanged\D]]\D]]@8)Unchangedn@@@o@L-!t@@@o W !t@@@o@BC@D@ALU  LU  I@@@Liภ!S/Not_specialised,Classic_mode\D]]\D]]@&s@@@-@@N@o;@ఐh(decision\D]]\D]]@C@@W0@@N@oI@@<\D]]@@@@@oN@@\C]k]u@@ఐ D(original] F]]] F]]@ @@0\\\\\\\\@anh@i@]@@@ఐ (*original_r]F]]]F]]@ Q@@@@]F]]]F]]@@@M@o@ఐ(decision]+F]]],F]^@@@!@@@@@M@o&@8@@L@oL@o@Ġ'Changed]BG^^]CG^^@8Pࠠ$expr ]NG^^]OG^^ @@@Y@@@o@ࠠ!r ][G^^"]\G^^#@@@Y@@@o@@]bG^^]cG^^$@@ @O@o@ࠠ(decision ]oG^^&]pG^^.@@@W@@@o@@@4]vG^^/@@WŠW@@O@oW@@O@o@@O@o@ @ @@@ࠠ6max_inlining_threshold ]H^3^A]H^3^W@@@@)Threshold!t@@@pN@o0]]]]]]]]@[SM@N@]HB@C@]60@1@]@@@డ\(+at_toplevel!E]I^Z^i]I^Z^v@U@@@YE@@N@oV@@N@o@N@o#@@ఐנ#env]I^Z^w]I^Z^z@B@@Y\@@O@oO@oO@o7@@  @@X@@N@oO@o=@డ\N #initial_inlining_toplevel_threshold7Inline_and_simplify_aux]J^^]J^^@%roundU@@@'\@@@&@@%@V$S55V%T56 @@V#S@@@@N@oi@@N@o@N@od@డ\%round!E^ K^^^ K^^@C@@@Y@@O@pC@@O@p@O@p~@@ఐ2#env^!K^^^"K^^@@@Y@@P@pP@pP@p@@^,K^^^-K^^@@I@@O@pO@pP@p @@T @@@డ\:initial_inlining_threshold7Inline_and_simplify_aux^CM__^DM__@@%roundVP@@@$A{)Threshold!t@@@#@@"@VP5W5WVP5W5@@VR@@@@N@p@@N@p@N@p@డ\%round!E^rN_A_Y^sN_A_`@C@@@Z@@O@p$C@@O@p#@O@p"@@ఐ#env^N_A_a^N_A_d@@@Z@@P@p+P@p/P@p.@@^N_A_X^N_A_e@@N@@O@p O@p1P@p*@@Y @@ O@p@^I^Z^f @@@@^H^3^=@@@ࠠ6raw_inlining_threshold ^P_s_^P_s_@@@VA)Threshold!t@@@p@@@@p?N@p30^^^^^^^^@&82@3@^@@@డ]!2inlining_threshold!R^P_s_^P_s_@@ZV@@@&%$@@@&@@@&@@&@WI44WI44@@WN@@@Zg@@N@p865@@N@p7@@N@p6@N@p50@@ఐ!r^P_s_^P_s_@[@@Z@@O@pAO@pEO@pDD@@5 @@RE@@_P_s_} @@@ࠠ>unthrottled_inlining_threshold _Q___Q__@@@@@@p_N@pG0________@Zqk@l@_%@@@ఐx6raw_inlining_threshold_$R___%R_` @ @@vu@@@pJ@@@pI0________@@@@Ġ$None_9S``_:S``#@\1@@@@@@Q@pR@@Q@pQ,@@,@@ఐ6max_inlining_threshold_JS``'_KS``=@@@;N@p^8@Ġ$Some_YT`>`L_ZT`>`P@\ࠠ2inlining_threshold _bT`>`Q_cT`>`c@@@@@@pY:@@@@@@@Q@p[@@Q@pZB@@B@@ఐ2inlining_threshold_wT`>`g_xT`>`y@@@_@@lN@paN@p`0_k_j_j_k_k_k_k_k@j$ @@@@A_R__ @@rm@@_Q__@@@ࠠ2inlining_threshold _V``_V``@@@Y@@@p~N@pj0________@@@_@@@డ]#min!T_W``_W``@@Z @@@/K@Z@@@/JZ@@@/I@@/H@@/G@ML`+-MM`+B@@MKE@@@Z@@N@pp@Z"@@N@poZ%@@N@pn@N@pm@N@pl2@@ఐŠ>unthrottled_inlining_threshold_W``_W``@<@@Z7@@O@pO@pD@@ఐZ6max_inlining_threshold_W``_W``@(@@ZI@@O@pO@pV@@G@@ZW@@_V`` @@@ࠠ7inlining_threshold_diff _Y`a _Y`a$@@@Z^@@@pN@p0________@lys@t@`@@@డ^ #sub!T`Za'a3`Za'a8@@Zv@@@/F@Z{@@@/EZ~@@@/D@@/C@@/B@M_M_*@@MD@@@Z@@N@p@Z@@N@pZ@@N@p@N@p@N@p2@@ఐ0>unthrottled_inlining_threshold`?Za'a9`@Za'aW@@@Z@@O@pO@pD@@ఐ2inlining_threshold`QZa'aX`RZa'aj@N@@Z@@O@pO@pO@pX@@I @@\Y@@`]Y`a  @@@ࠠ#res `h\axa`i\axa@@@\@@@pN@p[@@@pN@p@@pN@p0`f`e`e`f`f`f`f`f@y@@`@@@డ_6LL`]aa`]aa@L@@@L@@N@p@L@@N@pL@@N@p@N@p@N@p@@డ_.inlining_level!E`]aa`]aa@@z@@\@~@@ @bUVbebb@@ @@ࠠ-function_body bfbbbfbc@@@`H@@@qL@q0bbbbbbbb@h@@@ఐ`f1get_function_bodybfbcbfbc@_>@@@`b@@L@q`]@@L@q@L@q@@ఐt-function_declbfbcbfbc&@G@@`y@@M@qM@qM@q)@@  @@-*@@bfbb @@@ࠠ#env bgc*c4bgc*c7@@@^~@@@qL@q0bbbbbbbb@LF@G@c@@@డay "unset_never_inline_inside_closures!Ecgc*c:cgc*c^@@^@@@(^@@@(@@(@[A[B@@[@h@@@^@@L@q^@@L@q@L@q(@@ఐ,#envc$gc*c_c%gc*cb@@@5@@&@@96@@c)gc*c0@@@ࠠ#env c4hcfcpc5hcfcs@@@^@@@qL@q0c'c&c&c'c'c'c'c'@KXR@S@cJ@@@డa2note_entering_call!EcLicvc~cMicvc@ H@@@^@@L@q H F@@L@q C A@@L@q^@@L@q@L@q@L@q@L@q%@@ఐ#envckicvcclicvc@/@@_@@M@qM@qM@q9@ iఐ08closure_id_being_appliedcjcccjcc@@@F@ lఐà#dbgcjcccjcc@@@S@@D@@WT@@chcfcl@@@ࠠ)max_level clccclcc@@@#intA@@@ucL@r0cccccccc@lys@t@c@@@డ'Clflags.Int_arg_helper#get'Clflagscmcccmcd@#key"@@@uT@'Clflags.Int_arg_helper&parsed@@@uS2@@@uR@@uQ@@uP@1utils/clflags.mli_wy_w@@ F @@@@L@uY@@@L@uXE@@L@uW@L@uV@L@uUB@*డbo%round!Ecmcdcmcd@I @@@_@@M@uiI @@M@uh@M@ug\@@ఐ٠#envd mcddmcd"@f@@_@@N@upN@utN@usp@@dmcddmcd#@@[@@M@ueM@uvN@uoz@@డb!!d-mcd$d.mcd%@@_A#ref!a@~@@@s@@r'%field0AAV)@@@V'V(@@_NӰ@@@@@M@udM@uM@uy@@M@uz@M@ux@@డ0inline_max_depth'Clflags1d_mcd=@&Stdlib#ref&parsed@@@t@@@t@(@@F@@F1@@N@uN@uN@u@@P@@3@@@@@@dlcc!@@@ࠠ6raw_inlining_threshold JdodGdQdodGdg@@@ޠ@@@u@@@uL@u0dddddddd@@@d@@@డb2inlining_threshold!RdodGdjdodGd~@ذ@@@`.@@L@u@@L@u@@L@u@L@u@@ఐ!rdodGddodGd@@@{,@@@@4-@@dodGdM@@@ࠠ6max_inlining_threshold Kdpdddpdd@@@C@@@uL@u0dddddddd@BSM@N@d@@@డc`+at_toplevel!Edqdddqdd@](@@@`}@@L@u]F@@L@u@L@u@@ఐʠ#envdqdddqdd@W@@`@@M@uM@uM@u1@@  @@`7@@L@uM@u7@డc #initial_inlining_toplevel_threshold7Inline_and_simplify_auxerdderde@8@@86@@L@u@@L@u@L@uN@@డc%round!Ee4see#e5see*@JF@@@`@@M@uJF@@M@u@M@uh@@ఐ#enveIsee+eJsee.@@@`@@N@uN@uN@u|@@eTsee"eUsee/@@q@@M@uM@uN@u@@D @@@డc:initial_inlining_threshold7Inline_and_simplify_auxekue=eGelue=ey@(@@(&@@L@u%@@L@u@L@u@0డc%round!Eevezeeveze@J@@@a@@M@uJ@@M@u@M@u@@ఐf#envevezeeveze@@@a0@@N@uN@uN@u@@evezeeveze@@a@@M@uM@uN@u@@D @@M@u@eqdd @@@@epdd@@@ࠠ>unthrottled_inlining_threshold Lexeeexee@@@3@@@uL@u0eeeeeeee@@@e@@@ఐJ6raw_inlining_thresholdeyeeeyee@@@&%@@@u@@@u0eeeeeeee@@@@Ġ$Noneezefezef@b@@@@;:@@O@u@@O@u,@@,@@ఐ+6max_inlining_thresholdezef ezef!@3@@;L@u8@Ġ$Somef {f"f,f {f"f0@b̠ࠠ2inlining_threshold Mf{f"f1f{f"fC@@@`@@@u:@@@@@hg@@O@u@@O@uB@@B@@ఐ2inlining_thresholdf'{f"fGf({f"fY@@@f5˰@@lL@uL@u0ffffffff@j$ @@@@Af3yee @@rm@@f5xee@@@ࠠ2inlining_threshold Nf@}fcfmfA}fcf@@@`@@@vL@v0f3f2f2f3f3f3f3f3@@@fV@@@డde#min!TfX~fffY~ff@@@@`@@L@v@`@@L@v `@@L@v @L@v @L@v  @@ఐ>unthrottled_inlining_thresholdfr~fffs~ff@*@@`@@M@v$M@v#2@@ఐ6max_inlining_thresholdf~fff~ff@@@`@@M@v,M@v+D@@5@@HE@@f}fcfi @@@ࠠ7inlining_threshold_diff Offffff@@@`@@@vFL@v20ffffffff@Zga@b@f@@@డd#sub!Tfffffg@@@@a@@L@v8@a@@L@v7a@@L@v6@L@v5@L@v4 @@ఐ >unthrottled_inlining_thresholdffgffg@@@a.@@M@vNM@vM2@@ఐ2inlining_thresholdffg ffg2@<@@aB@@M@vGM@vVM@vUF@@7 @@JG@@fff @@@ࠠ2inlining_prevented Pfg<gFfg<gX@@@c@@@vhL@vX0ffffffff@\ic@d@g @@@ఐɠ2inlining_thresholdg g[gig g[g{@h@@aj@@@vZ@Ġ,Never_inlinegggggg@T|@@@@az@@O@v^#@@#@@ภ]+g$ggg%gg@]*@@@0L@vf-@Ġ=ghRhwghRhy@Gݰ@@@G@@L@v@G@@L@vG@@L@v@L@v@L@vd@@డfp.inlining_level!EghRhbghRhr@C@@@c@@M@vC@@M@v@M@v~@@ఐڠ#envhhRhshhRhv@g@@c@@N@vN@vN@v@@  @@H@@M@vM@vN@v@@ఐ)max_levelh*hRhzh+hRh@@@H)@@M@vM@vM@v@@< @@cc@@L@vM@v@ภ(Originalh@hhhAhh@KƠภ!D)PreventedhKhhhLhh@ภ.Level_exceededhThhhUhh@8.Level_exceeded@@@AB@@AXnL h lXoL h |@@@Xmc@  @@@@L@vL@v@@hdhhhehh@@L@v@@)@@ L@v@@ࠠ)self_call Shuhhhvhh@@@j@@@vM@v @డg "inside_set_of_closures_declaration!Ehhhhhi@e@@@e@@M@v@d"@@M@v@@M@v@M@v@M@v(@@ఐ.function_declshii%hii3@`@@Q@@N@v@v<@6set_of_closures_originhii4hiiJ@2@@@@N@vN@vN@vJ@@ఐ#envhiiKhiiN@@@d[@@N@vN@vN@v^@@G @@V_@@hhh @@@ࠠ(fun_cost Thi\ijhi\ir@@@7S)Threshold!t@@@w M@v@@@vM@v0hhhhhhhh@~y@z@h@@@డg&0can_try_inlining-Inlining_costiiiiii@@d%!t@@@@'!t@@@3number_of_argumentsc@@@7size_from_approximation&optionJc@@@@@@C@@@@@@@@@@@@Vv  V{  @@VI10@@@.@@M@v@+@@M@v)'@@M@v&$!@@M@v@@M@vc@@M@v@M@v@M@v@M@v@M@v^@@ఐ-function_bodyiXiiiYii@f@@f@@N@w@wr@$bodyidiiieii@]c@@f@@N@wN@wN@w@@ఐ82inlining_thresholdixiiiyii@װ@@c@@N@w@lడh@$List&lengthiijiij@E@@@Ef@@N@w+N@w @@N@wE@@N@w@N@w@@ఐK-function_decliijiij+@@@f@@O@w,@w)@¶msiij,iij2@f۰@@p+@@O@w'O@w-O@w*@@iijiij3@@@@N@wN@w/O@w&@ภ$NoneikkCikkG@f@@@@@N@w@@N@wN@w5@@iiiikkH@@@iiui@@@@ii\if@@@ࠠ)recursive UikVkdikVkm@@@9$boolE@@@wWM@w8@@@w9M@w70iiiiiiii@,&@'@j@@@@ࠠ'fun_var Vjkkjkk@@@)!t@@@wDN@w:@డ*r&unwrap*Closure_idj)kkj*kk@@)@@@@|@@@@{@@@z@)V)V@@)A@@@)@@N@w>'@@N@w=@N@w<?@@ఐ8closure_id_being_appliedjKkkjLkk@@@L@@&@@8M@@jPkk@@డeE#Set#mem(Variablej`kkjakk@@Tq@@@@Td@@@r@@@@@@@@Tc@T_G@@@T@@M@wM@Ts@@M@wL@@M@wK@M@wJ@M@wI0jjjijijjjjjjjjjj@~sm@n@j@@@@ఐ{'fun_varjkkjkk@@@T@@N@w_N@w^@@డiW$Lazy%forcejkljkl@[b@@@eT@@N@wXN@wN@wn@@N@wo@N@wm5@@ఐ<5value_set_of_closuresjkljkl&@@@e@@O@w@w|I@)recursivejkl'jkl0@Sq@@Sp&N@w~@@O@w}U@@jkljkl1@@+X@@x@@Y@jkkjkl2@@@jkpk|@@@@jkVk`@@@ࠠ1specialise_result Wjl@lNjl@l_@@@e<;@@@x;@@@x@@@xM@w0jjjjjjjj@@ @k@@@ఐ=*specialiseklblnklblx@@@@f@@M@w@f@@M@w<<@@M@w<<@@M@w<<@@M@w<<@@M@w<<@@M@w<<Ƞ<@@M@w@@M@w<<V@@M@w@@M@w<<@@M@w<<@@M@w<fj@@M@w<f_[K@@M@w@@M@w<f@@M@w<e@@M@w<fr@@M@w<<@@M@w<}@@O@x=@@O@x@@O@x@ @ @@ภ'Changedmnnmnn#@Hఐ8#resmnn%mnn(@8@9@m(հ@@iw@@M@xҠir@@M@x@M@xM@xM@x0mmmmmmmm@bR=7@8@m<@@@ภ!D+Specialisedm;nn*m<nn7@8+Specialised@}>?!t@@@v@AA@D@A]\S  ]]S  @@@][gఐ\+spec_reasonmSnn8mTnnC@%@@>U@@M@x,@@@@M@x/@@Mm]nnD@@L@vzL@xL@x7@Ġ(OriginalmnnEnQmonEnY@Pࠠ+spec_reason ZmwnEnZmxnEne@@@>o@@@x@@@@@g̠>@@O@x >z@@O@x@@O@x@ @ @@@ࠠ4only_use_of_function [mninymnin@@@jt@@@xN@x0mmmmmmmm@*$@%@m@@@ภjmninmnin@j@@@j@@@x@@mninu@@@ࠠ7size_from_approximation \mnnmnn@@@V7V6@@@yk@@@yjN@x0mmmmmmmm@(5/@0@m@@@@ࠠ'fun_var ]mnomno@@@@@@xO@x@డ.-&unwrap*Closure_idmnomno,@@@@-@@O@x@@O@x@O@x-@@ఐ 8closure_id_being_appliedmno-mnoE@ @@!:@@@@(;@@mno @@డh#Map$find(Variableno]omno]o~@@<@@@H@<!a@G@@@H@@H@@H@;@;`@@@<@@O@x@<VV@@@y0@@@y/O@x@@O@x @O@x@O@x0n#n"n"n#n#n#n#n#@wnh@i@nF@@@@ఐv'fun_varnFo]onGo]o@@@=@@P@y P@y @@డm$Lazy%forcen]oon^oo@_@@@irV:@@P@y.P@y@@P@y@P@y4@@ఐ 5value_set_of_closuresnxoonyoo@ ɰ@@i@@Q@y1@y,H@$sizenoonoo@W@@W#@@Q@y-S@@noonoo@@)V@@@@aW@ࠠ$size ^noonoo@@@WW@@@y]@@@y\k@@WW@@P@y_@@P@y^r@@ఐ$sizenoonop@@@n۰@@N@yi0nnnnnnnn@%@@@Ġ)Not_foundnppnpp$@U@@@@n@@Q@yd@npp@@WHWG@@P@yf@@P@ye@@డ ,fatal_errorf$Miscnp(p8np(pI@@&Stdlib'format4!a@iX&Format)formatter@@@id$unitF@@@ie!b@i\@@@ic@@ib@ X X@@ A+*@@@(@@(@@O@y{O@~@.n!t@@O@1O@~.@@O@y|O@~@O@~@O@~O@y}@O@y@@ O@@ju@@O@9O@O@@O@@O@O@y@ O@yN@ylO@ysO@y@O@yO@y@O@yO@y@O@yO@y~@O@yO@yo_@@O@yq[@@O@yr@@O@ypJ@O@yn!@@ภ8CamlinternalFormatBasics&Formatodp(pJoeppA8&Format8CamlinternalFormatBasics'format6!a@yɠ!b@yʠ!c@yˠ!d@y̠!e@y͠!f@y@@@~@'#fmt$ @@@~&stringO@@@~@B@@A@A$}$}?$%@@@wk CApproximation does not give a size for the function having fun_var @@@@P@~P@~P@~@ภ%Alpha8%Alphai@@!b@{@!x@{ !c@{@@~@@~@ !a@{ @@~@@~ !d@{!e@{!f@{@@@~@+"@@@~@AOAYAA''(.(j@@@oภ:. value_set_of_closures: @@q@@P@~P@~P@~ @ภUTภ-End_of_format8-End_of_formatà!f@{y!b@{z!c@{{!e@{|@@@~;@@@@AYAA.../!@@@y@ @0O@@9ZO@~O@~O@~Q@Q@?Q@@@P@P@O@@$@]Q@~~O@~O@~O@~Q@~Q@~!Q@~$Q@~[Q@~@@P@~P@k@@@@yO@~ՠ2Q@~۠4Q@~ܠlQ@~@@P@~P@~|@@Q@'Q@~)@AB{Q@~@@P@~P@~@@`@6Q@~6MNOQ@~@@P@~P@~@ aApproximation does not give a size for the function having fun_var %a. value_set_of_closures: %at@t@@@@P@~P@P@@@{z@@ՠ̠@@P@yzP@~@@డk%print(Variableppq ppq@@0N&Format)formatter@@@P@@@@O$unitF@@@N@@M@@L@Zjcm[jc@@0VD@@O@.@@ఐM'fun_varqpqqpq @@@O@3@@డo;print_value_set_of_closures!Aq/q!q3q0q!qP@@Y&Format)formatter@@@ (@lv@@@ '$unitF@@@ &@@ %@@ $@nonp  @@nnL@@O@6@@ఐ#Ӡ5value_set_of_closuresqWq!qQqXq!qf@#@@ P@;$@@~@@%@@Aq^oIoW@@0qJqIqIqJqJqJqJqJ@'@@@c @@@@qbnn @@@ࠠ(fun_vars vqmqvqqnqvq@@@0@@@MN@>0q`q_q_q`q`q`q`q`@@@q@@@డlm#Map$keys(Variableqqvqqqvq@0@@@?un@@N@ZN@C@@N@B0@@N@A@N@@$@@ఐ$.function_declsqqvqqqvq@$`@@Z@@O@[@X8@$funsqqvqqqvq@;s@@;r%@@O@YC@@1@@GD@@qqvq @@@ࠠ6set_of_closures_origin wqqqqqq@@@;@@@sN@p0qqqqqqqq@Yf`@a@q@@@ఐ$.function_declsqqqqqq@$@@Z@@N@t@r@6set_of_closures_originqqrqqr@;@@@@qqq@@@ࠠ-inline_result xqr&r6qr&rC@@@lHlE@@@l>@@@@@@N@u0qqqqqqqq@9F@@A@r@@@ఐm&inlinerrFrTrrFrZ@B@@@m@@N@@m@@N@mm@@N@mm@@N@mm@@N@m{mw@@N@mrmn@@N@mjmf@@N@mcm_@@N@mXmTmK@@N@@@N@mFmBmA@@N@@@N@m:oKm4@@N@@@N@m/m+@@N@m$m @@N@mm@@N@mm @@N@mm@@N@ll@@N@lm@@N@lml@@N@@@N@ll٠l@@N@l@@N@@@N@@N@@N@@N@@N@@N@@N@@N@@N@@N@@N@@N@@N@@N@@N@~@N@}@N@|@N@{@N@z@N@y@N@x@N@w@@ఐl#envrrFr[rrFr^@@@n6@@O@O@O@@@ఐ%!rrrFr_rrFr`@%@@&p@n2ఐ%2lhs_of_applicationrrFrbrrFrt@%l@@&d@n/ఐ%8closure_id_being_appliedrrurrrur@%g@@&f@n,ఐ%|-function_declrrurrrur@%O@@n7@@O@O@(O@'@n2ఐC-function_bodyrssrss@@@n=@@O@O@,O@+@n8ఐ%5value_set_of_closuressrursrur@%T@@nC@@O@O@0O@/@n?ఐ4only_use_of_functionsrrsrr@U@@nJ@@O@O@2O@1@nGఐ"e(originals+rrs,rr@!2@@nR@@O@O@4O@30@nKఐ N)recursives?rrs@rr@F@@nTnM@@O@O@>@@O@=O@;H@nHఐ%$argssWs8sksXs8so@%@@&U@n@ఐ7size_from_approximationsdspssesps@@@p`nI@@O@@@O@ O@OO@Mm@nDఐ%#dbgs|spss}sps@%@@&z@nAఐ%(simplifysspsssps@%@@&@n>ఐ$v0inline_requestedssssss!@"Ȱ@@nI@@O@ O@uO@t@nBఐ%4specialise_requestedsss#sss7@%u@@&@nAఐJ(fun_varsss8sIss8sQ@@@3@@O@{@nAఐ6set_of_closures_originss8sSss8si@°@@nL@@O@O@O@@nEఐ f)self_callsspsssps@ @@o@@O@O@O@@nNఐ (fun_costsspsssps@ @@onU@@O@@@O@O@@nPఐ Š2inlining_thresholdtsstss@ d@@nh@@O@O@@@@@ @@tr&r2 @@ఐ$-inline_resulttsttst@$@%@t'ް@@nlni@@@nb@@@@@@0tttttttt@%:@@@Ġ'Changedt5t$t2t6t$t9@OCࠠ#res yt>t$t;t?t$t>@@@p@@@p@@@@@0t6t5t5t6t6t6t6t6@"@@@ࠠ*inl_reason ztSt$t@tTt$tJ@@@n@@@@@@%tZt$tK@@nn@@P@n@@P@@@P@@ @ @@ภ'ChangedtltOt]tmtOtd@Ozఐ8#restvtOtftwtOti@8@9@t߰@@p@@N@ޠp@@N@@N@N@N@0tttststttttttttt@bR=7@8@t@@@ภ!D'InlinedttOtkttOtt@8 @E@@@vn@@@v@BB@D@A@@ఐ8+spec_reasonttOtvttOt@@@E@@N@,@ఐj*inl_reasonttOtttOt@3@@o@@N@:@@-ttOt@@ dL@N@@@@^ttOt@@mL@L@F@Ġ(Originaltttttt@X_ࠠ*inl_reason {tttttt@@@o"@@@@@@@@o7o4@@P@Πo-@@P@@@P@@ @ @@ภ(Originaltttttt@Xภ!D)Unchangeduttutt@8J l@FED@@@vLoLC@@@v@BC@D@AB@@?ఐ+spec_reasonuttutt@@@F@@N@0uu u uuuuu@GA@B@u1@@@ఐM*inl_reasonu/ttu0tt@ @@oo@@N@@@u6ttu7tt@@ L@N@@@C@@tL@L@@@AuBst  @@xL@x0u0u/u/u0u0u0u0u0@@@@8@@B@^@@{@@@@@@@@@@@AuLmm@@ 0u8u7u7u8u8u8u8u8@@@@@@  V@ r@@  N@ k@@  c@uRhhuStt@@  @uUhRh_@@  @uWgg@@  @@uYgg@@@ࠠ#res |ugu uuhu u@@@(@@@`L@]p@@@aL@^@@_L@%0ueududueueueueue@ %@ @u@@@ࠠ(decision }uu uuu u @@@%@@@cL@&@@'@@' @@)@ఐ@%simpluu#u1uu#u6@!@@o<@@@,@@@@-@@@+0uuuuuuuu@/@@@Ġ(Originaluu<uFuu<uN@Y:ࠠ(decision ~uu<uOuu<uW@@@[@@@70uuuuuuuu@I@@@@@@@pc@@O@9g@@O@:@@O@8 @ @  @@ఐ%(originaluu<u\uu<ud@#@@o0uuuuuuuu@g)#@$@u@@@ఐ#*original_ruu<ufuu<up@#$@@x@@uu<u[uu<uq@@@M@b@ఐA(decisionuu<usuu<u{@@@w!@@@@xL@\L@Y&@Ġ'Changedvu|uvu|u@Qࠠ$expr vu|uvu|u@@@rp@@@My@ࠠ!r v)u|uv*u|u@@@rt@@@N@@v0u|uv1u|u@@ @O@O@ࠠ(decision v=u|uv>u|u@@@@@@P@@@4vDu|u@@p@@O@R@@O@S@@O@Q@ @ @@@ࠠ#res vZuuv[uu@@@r@@@N@q@@@N@@@N@f0vXvWvWvXvXvXvXvX@YS@T@v}NH@I@v<6@7@v@@@డu.bbvuuvuu@b@@@b@@N@l@b@@N@kb@@N@j@N@i@N@h$@@డu.inlining_level!Evuuvuu@RJ@@@r4@@O@|RJ@@O@{@O@z>@@ఐ#envvuuvuu@@@rK@@P@P@P@R@@  @@b@@O@xO@P@Z@@@vuuvuu@@b@@O@wO@O@j@@8 @@r@@N@O@vp@ఐˠ$exprvuuvuu@x@@}@డuJ6set_inlining_threshold!Rvuuvuv@Z2@@@r@@N@@Z2Z1@@N@@@N@r@@N@@N@@N@@@ఐ점!rwuvwuv@@@r@@O@O@O@@@ఐ6raw_inlining_thresholdw)uvw*uv+@R@@ZaZ`@@O@@@O@O@O@@@A@@@@R@@ؠ@@@ఐ,$exprwHv,v=wIv,vA@ٰ@@N@@డu6add_inlining_threshold!RwZv,vCw[v,v[@@@@r@@N@@@@N@r@@N@@N@@N@@@ఐK!rwtv,v\wuv,v]@@@r@@O@O@O@@@ఐ7inlining_threshold_diffwv,v^wv,vu@@@q@@O@!@@5@@s@@N@%@@K @@\N@(@wuu@@^*@@wuu@@ఐI#reswvvwvv@I@J@w@@>L@0wwwwwwww@>V@@@ఐw(decisionwvvwvv@A@@/L@@@@@@M@@' @@5L@L@eV@@Awu#u+@@7K@@wu u@@డvL/record_decision!Ewvvwvv@@@@si@@L@@@@L@@@L@@L@@L@0wwwwwwww@m@@wic@d@w@@@@ఐ #envwvvwvv@O@@s@@M@M@M@@@ఐ(decisionx vvx vv@"@@@@M@+@@<@@W@@K@L@1@ఐ#resxvvxvv@7@@"J@=@N@@>@^@@@@@@@@*@> @@@ @@@ @@ b@v @@ S@g @@ @@@ @@@ @@@<@x/ebb+-@@|@x1UU+/@@~@x3TT+1@@"@x5RS+3@@"J@k@@Ax8RR+6@@+`J@g%M@%+9@@&C@&W+:@@'o@'+;@@)@)*+<@@) @@Ax@N:N@+>A@+sJ@g0x.x-x-x.x.x.x.x.@*D@@@@AxEMN(+CA@+J@g0x3x2x2x3x3x3x3x3@*Y@@@@AxJMN+HA@+J@g0x8x7x7x8x8x8x8x8@*n@@@@AxOMN+MA@+J@g0x=x<x<x=x=x=x=x=@*@@@@AxTMN +RA@+J@g0xBxAxAxBxBxBxBxB@*@@@@AxYMN+WA@+J@g0xGxFxFxGxGxGxGxG@*@@@@Ax^MM+\A@+J@g0xLxKxKxLxLxLxLxL@*@@@@AxcMM+aA@+J@g0xQxPxPxQxQxQxQxQ@*@@@@AxhMbM|+fA@,J@g0xVxUxUxVxVxVxVxV@+@@@@AxmMbMh+kA@,J@g0x[xZxZx[x[x[x[x[@++@@@@AxrMM6+pA@,'J@g0x`x_x_x`x`x`x`x`@+S@@@@AxwMM3+uA@,7J@g|0xexdxdxexexexexe@+j@@@@Ax|MM.+zA@,E,C,>@@H0xjxixixjxjxjxjxj@+@@@@+@++~@+@ࠠ should_inline_inside_declaration xwwxwx@@@@t4function_declaration@@@OJ@Jh@@@]J@K@@LJ@I0xxxxxxxx@+,s,m@,n@x@@@@$decl @xwxxwx @@@@@P0xxxxxxxx@,xwwxx,x;@@@@  @г)'Flambda+xwx xwx(@@2@@@M@@xwxxwx)@@@9@@డw#notxx,x.xx,x1@hհ@@@h@@J@Wh@@J@V@J@U0xxxxxxxx@0>5@8@x@@@@ఐH$declxx,x2xx,x6@@@,4function_declaration@@K@b@`@$stubyx,x7I@,$stub @@@#$boolE@@@#@E,,.closure_origin .Closure_origin!t@@@#@@ @@(,.8c8e(-.8c8@@,6W,¶ms()Parameter!t@@@#@@@#@A@@(?/88(@/88@@,IX,$body-,P@@@#@B'@@(H088(I088@@,RY,.free_variables6(@#Set!t@@@#@C5@@(V39 9(W39 9.@@,`Z,,free_symbolsD&Symbol#Set!t@@@#@DE@@(f7::(g7::.@@,p[T,#dbgT(4!t@@@#@FQ@@(r@<(<*(s@<(<<@@,|],&inline`(20inline_attribute@@@#@G]@@(~B4specialise_attribute@@@#@Hi@@(D<<(D<<@@,_,,is_a_functorxu@@@#@Is@@(F=-=/(F=-=C@@,`,$poll(T.poll_attribute@@@#@J@@(H==(H==@@,a@@(;::(;::@@,\@@i@@K@^K@cK@a@@@@J@S@@AA@@@@f0yyyyyyyy@@@@@@@@x?Ax-@x+x@@x%Ax@x w@@xAw@ww@@wAw@ww@@wAw@ww@@wAw@wwl@@wAwt@wnwE@@wfv8@vKvA@uuA@u\J@K,@-"@>8@9@y@@0yyyyyyyy@)B@@@'Flambda4function_declaration@@@i$boolE@@@h@@g@ (middle_end/flambda/inlining_decision.mlikk /@@1Inlining_decisionCC#env7Inline_and_simplify_aux#Env!t@@@!r&Result!t@@@.function_decls3Simple_value_approx5function_declarations@@@2lhs_of_application(Variable!t@@@8closure_id_being_applied*Closure_id!t@@@-function_decl$4function_declaration@@@5value_set_of_closures.5value_set_of_closures@@@$args$listI2!t@@@@@@,args_approxsM!t@@@@@@~#dbg)Debuginfo!t@@@}(simplify6Inlining_decision_intf(simplify@@@|0inline_requested&Lambda0inline_attribute@@@{4specialise_requested 4specialise_attribute@@@z!t@@@x&Result!t@@@y@@w@@v@@u@@t@@s@@r@@q@@p@@o@@n@@m@@l@@k@@j@Xwwf@@B@ H************************************************************************zA@@zA@L@ H zBMMzBM@ H OCaml zCzC@ H zDzD3@ H Pierre Chambart, OCamlPro zE44zE4@ H Mark Shinwell and Leo White, Jane Street Europe zFzF@ H zGzG@ H Copyright 2013--2016 OCamlPro SAS zHzHg@ H Copyright 2014--2016 Jane Street Group LLC zIhhzIh@ H zJzJ@ H All rights reserved. This file is distributed under the terms of zKzKN@ H the GNU Lesser General Public License version 2.1, with the zLOOzLO@ H special exception on linking described in the file LICENSE. zMzM@ H zNzN5@ H************************************************************************zO66zO6@ l Merge call site annotation and function annotation. The call site annotation takes precedence z  z@  E@  When all of the arguments to the function being inlined are unknown, then we cannot materially simplify the function. As such, we know what the benefit of inlining it would be: just removing the call. In this case we may be able to prove the function cannot be inlined without traversing its body. Note that if the function is sufficiently small, we still have to call [simplify], because the body needs freshening before substitution. {okq{v_g@  CR-someday mshinwell: (from GPR#8): pchambart writes: We may need to think a bit about that. I can't see a lot of meaningful examples right now, but there are some cases where some optimization can happen even if we don't know anything about the shape of the arguments. For instance let f x y = x let g x = let y = (x,x) in f x y let f x y = if x = y then ... else ... let g x = f x x {whn{u}@ A The function is definitely too large to inline given that we don't have any approximations for its arguments. Further, the body should already have been simplified (inside its declaration), so we also expect no gain from the code below that permits inlining inside the body. { t|{ @ 9 There are useful approximations, so we should simplify. { { P@ First we construct the code that would result from copying the body of the function, without doing any further inlining upon it, to the call site. {4:{@ Inlining the body of the function was sufficiently beneficial that we will keep it, replacing the call site. We continue by allowing further inlining within the inlined copy of the body. {  {!W!@  The meaning of requesting inlining is that the user ensure that the function has a benefit of at least its size. It is not added to the benefit exposed by the inlining because the user should have taken that into account before annotating the function. {$!!{%""@ We decrement the unrolling count even if the function is not recursive to avoid having to check whether or not it is recursive {*$c$k{+$$@ If the function was considered for inlining without considering its sub-functions, and it is not below another inlining choice, then we are certain that this code will be kept. {0%%{1&`&@ H Inlining the body of the function did not appear sufficiently beneficial; however, it may become so if we inline within the body first. We try that next, unless it is known that there were no direct applications in the simplified body computed above, meaning no opportunities for inlining. {6)s)y{7**@ We decrement the unrolling count even if the function is recursive to avoid having to check whether or not it is recursive {<++{=+,@  r_inlined contains an approximation that may be invalid for the untransformed expression: it may reference functions that only exists if the body of the function is in fact inlined. If the function approximation contained an approximation that does not depend on the actual values of its arguments, it could be returned instead of [A.value_unknown]. {B/:/D{C$00@ f Merge call site annotation and function annotation. The call site annotation takes precedence {H@44{IA450@ Try specialising if the function: - is recursive; and - is closed (it and all other members of the set of closures on which it depends); and - has useful approximations for some invariant parameters. {NT77{OX88@ U CR-someday lwhite: could avoid calculating this if stats is turned off {TA[Ae{UAA@ If the function was considered for specialising without considering its sub-functions, and it is not below another inlining choice, then we are certain that this code will be kept. {ZDD{[EE@ Remove unroll attributes from functions we are already actively unrolling, otherwise they'll be unrolled again next round. {`OO{aOUO@ This case only occurs when examining the body of a stub function but not in the context of inlining said function. As such, there is nothing to do here (and no decision to report). {fTT{gUwU@ We decrement the unrolling count even if the function is not recursive to avoid having to check whether or not it is recursive {l5[[,{m7[[@ CR-someday mshinwell: for the moment, this is None, since the Inlining_cost code isn't checking sizes up to the max inlining threshold---this seems to take too long. {rj4jE{sjk@ + If we didn't specialise then try inlining {xnn{ynn@ We do not inline inside stubs, which are always inlined at their call site. Inlining inside the declaration of a stub could result in more code than expected being inlined (e.g. the body of a function that was transformed by adding the stub). {~vv{ww@@*./ocamlopt"-g)-nostdlib"-I&stdlib"-I1otherlibs/dynlink0-strict-sequence*-principal(-absname"-w>+a-4-9-40-41-42-44-45-48-66-70+-warn-error"+a*-bin-annot,-safe-string/-strict-formats"-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(toplevel2-function-sections"-c{"-I2middle_end/flambda{ 3/home/barsac/ci/builds/workspace/step-by-step-build 0/$#"! @0|U!%[a0{{{{{{{{@{@@/Allocated_const08UYwBkc6@.(Asttypes0'$O~7,Backend_intf0;U4]{.M5Build_path_prefix_map0xөvĠ8CamlinternalFormatBasics0cEXy*Su}Ck&Symbol0SW9粩i#Tag0.ΒN1BK@:), .Type_immediacy0dV^25b)̓ԆSj%Types0lm?ƈ2Var_within_closure0GMUu_%T[(Variable0+d2 ޲ՠ(Warnings0zdͦkUe$@@AN@{l{@0@Nx@yyyy@0@O,@@@z{ @yz@@@mzz{{/{{@@@{T{w@{3{T@@P}G@1@@@@@@AB