Caml1999T037 W~C:Remove_unused_closure_vars-ocaml.warning 0middle_end/flambda/remove_unused_closure_vars.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@@ @@ఠ?remove_unused_closure_variablesVLPVLo@@A@@=remove_direct_call_surrogates|@@@A@@'Flambda'program@@@:A@ 'program@@@:A@@@A@@@A@3@6@@@࣠##A'VLqVL@ AA@@+3@F:VLL}m@@@@@VLp @@'programAVLVL@BA@@63@!C@@@@@@@@@@ఠ8used_vars_within_closure(W)W@5CA@@2Var_within_closure#Tbl!t@@@D@@@@oD@3(''(((((@+7c@.@/@@@@ఠ0used_closure_idsJWKW@WDA@@*Closure_id#Tbl!t"@@@\D@@@@pD@!@@9@@@9@@@(@@ఠ$usedqXrX@~EA@@IB@@@ gE@<@డ2Var_within_closure#Tbl&create2Var_within_closureXX@ XX@@XX@ @@#intA@@@ u!a@@@@ @@ @6utils/identifiable.mlinn@@/Stdlib__Hashtble@$@@@@@@@@@@@|@@MXX@@+@@@ hF@ jF@ i@@> @@U@A@X @@@ఠ(used_funYY@FA@@@@@E@ q3@wp@q@r@@@డ*Closure_id#Tbl&create*Closure_idYY@ YY @@Y!Y'@ @@#intA@@@!a@@@@@@@6utils/identifiable.mlinn@@/Stdlib__Hashtble@$@@@@@@Ѡ@@@@@C@@M,Y(-Y*@@+@@@F@F@S@@> @@XT@A@7Y @@@ఠ)aux_namedyBZ.6CZ.?@OGA@@@'Flambda%named@@@E@$unitF@@@E@@@E@3EDDEEEEE@{@@@@@࣠@%namedA@jZ.AkZ.F@@ @@@3XWWXXXXX@2sZ.2te^@@@@  @HA,г/'FlambdaZ.IZ.P@4Z.QZ.V@@@>@@@ @@Z.@Z.W@@@E"@@@@ఐ5%named[Zf[Zk@3@6@(@@T@@@3@5B@@@Ġ/Project_closure\qy\q@;/Project_closure'Flambda%named@@@@ /project_closure@@@@AF@K@A>middle_end/flambda/flambda.mlikmk@@@~@ঠ/set_of_closures\q\q@3/set_of_closures*Projection/project_closure@@@(Variable!t@@@@@@3*closure_id*Closure_id!t@@@@@A @A !middle_end/flambda/projection.mliXX @@B@@AWW@@A@@\q\q@@ @@@n3@\@@@*closure_id\q\qA#ఠՠ@IA@'@@@t@@@\q\q@@Z@@@vI@u@@@k@@@@@w@@@@@x!@@@డ;#Tbl#add*Closure_id1]2]@ 5]6]@@:];]@ @@!a@n@@@@#key@@@@@@@@@@@@@@?@;i@%@@@D@@@@@@@@@ @@@@@@@@@3POOPPPPP@_\@^@]@@@@ఐ(used_funt]u]@@@' @@@ @@ఐw*closure_id]]@@@@@@@RI@Q&@@ภ"()]]@;#_@@@N@@@@A@@A[@@%@@@DI@]9@@p @@M:@Ġ+Project_var^^@;+Project_var@+project_var@@@@AH@K@A@@@@@ঠ*closure_id^^A3*closure_id+project_var@@@"!t@@@ @@A3'closure!t@@@@@@ @Aihjih@@H@3#var2Var_within_closure!t@@@!@@B@Akk@@J@@Ajj@@I@ఠ3֠432@JA@+@@@3@W@@@#var^^A$ఠנ@KA@(@@@@@@ ^^ @@a@@@I@@@@j@@@@@@@@@@!@@@ డ#Tbl#add2Var_within_closure._ /_ '@ 2_ (3_ +@@7_ ,8_ /@ @@!a@@@@@#key@@@@$unitF@@@@@@@@@@@i@(@@@*#D@d@@@f@@@@e@ @@@c@@b@@a@@`3POOPPPPP@wt@v@ufc@e@d@@@@ఐ$usedv_ 0w_ 4@@@KD@@@|@@ఐ~#var_ 5_ 8@@@E@@@J@(@@ภ_ 9_ ;@@@@bJ@5@@o@@3@@@I@s<@డ#Tbl#add*Closure_id`=E`=O@ `=P`=S@@`=T`=W@ @ @@@slH@@@@@@@@@ z@@@@@@@@@l@@ఐ(used_fun`=X`=`@@@@@@}@@ఐ*closure_id`=a`=k@@@@@@I@@@ภi`=l`=n@h@@@I@@@P@@I@@@@@Ġ;Move_within_set_of_closuresaowao@;;Move_within_set_of_closuresb@c;move_within_set_of_closures@@@@AG@K@AZ[@@@h@ঠ'closure)ao*ao@3'closureY;move_within_set_of_closures@@@V!t@@@@@@3*start_fromT!t@@@@@A @ARaRTSaRn@@lE@3'move_to`!t@@@@@B@A^boq_bo@@xF@@Ab`c`4@@|D@@WaoXao@@'@@@@*start_frombaocaoA+ఠؠ@tLA@/@@@@'move_tosaotaoA0ఠ٠@MA@4@@@@@@aoao@@m@@@I@@@@v@@;@@@@@>@@@@@@ డ#Tbl#add*Closure_idbb@ bb@@bb@ @o @@@_XI@@@@@m@@@@ f@@@@@@@@@3@\Y@[@ZLI@K@J@@@@ఐ(used_funbb@r@@z@@@2@@ఐu*start_frombb@@@@@@KJ@J(@@ภZbb@Y@@@J@V5@@U@@X@@@WI@);@డ#Tbl#add*Closure_id c c@ cc@@cc@ @ڰ @@@ʠH@]@@@_@@@@^@ @@@\@@[@@Z@@Yk@@ఐ\(used_fun4c 5c@ذ@@@@@u|@@ఐʠ'move_toEcFc@@@@@@I@@@ภUcVc@@@@I@@@P@@I@l@@@ @Ġ&Symbolvd%wd+@;&Symbol@&Symbol!t@@@ @A@@K@Aqq@@@x@@d,d-@@@@@@@@@@E@@@@@@Ġ%Constd0d5@;%Const@%const@@@@AA@K@Arr@@@y@@d6d7@@@@@@@@@@h@@@@@@@B @@l@@@@Ġ/Set_of_closuresd:dI@;/Set_of_closures@/set_of_closures@@@@AE@K@A DF Dj@@@}@@dJdK@@@@@7@@@@@@@@;@@;@@i @@@@@?@Ġ$PrimdNdR@;$Prim;@2Clambda_primitives)primitive@@@$listK(Variable!t@@@@@@)Debuginfo!t@@@@CI@K@AOP8@@@]C@@dSdT@@+@@@z@@@'$@@@@@@@@@ @@@@@@B@@@@@@@@@@@@@@@Ġ$Expr;dW'program Lg Mg@ @@p@?ఐ)aux_named Yg Zg@@@@@@@f @@@e@@d%@@e@@@@@jE@Z+@@ఐ$used uh vh@@@J9@@ఐ(used_fun h h @%@@4E@@@@@[@;@@qL@ @@M@ @@1@W @@ @ @@ P@A@ W@@@ఠ)aux_named3 j   j  @ NA@@@@@D@@a%named@@@D@i%named@@@D@@@D@@@D@~3        @~@@yr@s@t@@@࣠@%paramA@ j   j  @@(3        @5 j   {[g@@@@@ @@%named5A@ j   j  @@0@@@@  @ OA6 г9'Flambda j  ! j  (@@ j  ) j  .@@@H@@@- @@ j   j  /@@@O1@@@@ఐ/%named k B L k B Q@-@0@(@@^@@@3        @D<@@@Ġ/Set_of_closures l W ] l W l@Wঠ.function_decls 'l W p (l W ~A3.function_declsc@@@/{5function_declarations@@@(@@@ 3)free_vars 9#Map!t.specialised_to@@@*@@@)@@A@@'''';@@O@30specialised_argsM#Map!t@@@,@@@+@@B#@@(6(8(6(i@@P@36direct_call_surrogates1_#Map!tf!t@@@.@@@-@@C8@@2223@@Q@@@$$$$@@N@ఠQ6RQP@ PA@K@@@3 e d d e e e e e@n@@@)free_vars l W  l W AQఠ7@ QA@UP@@@@@@@@A l W n l W @@@@@I@@/set_of_closures8 l W  l W @ RA  l W m l W @@(@@@@@@@@,@@@@@/@@@@ఠ6direct_call_surrogatest m   m  @ TA@@(Variable#Set!t@@@ I@3        @TQ@S@RC@@B@A17@/@,@@@ఐ۠=remove_direct_call_surrogates n   n  @@@ @డ(Variable#Set%empty(Variable n   n  @  n   n  @@ n   n  @ @;@@@@6utils/identifiable.mlill@@+Stdlib__SetE@ @@E;@డ+#Set'of_list(Variable p  ! p  )@  p  * p  -@@ p  . p  5@ @@$listKl#elt@@@ @@@ r@@@ @@ @7@,IdentifiableP@!@@@@@@ @@@ @@@ @@ z@@డl#Map$data(Variable Sq 6 C Tq 6 K@  Wq 6 L Xq 6 O@@ \q 6 P ]q 6 T@ @@#Map!t!a@@@@M @@@@@@zm{m@@F^@%@@@Z@@@/PJ@/:J@'@@@'  @@@'@@'@@ఐ/set_of_closures q 6 U q 6 d@̰@@@@@/;@/8@6direct_call_surrogates q 6 e q 6 {@I@@H(@@@/9@@ q 6 B q 6 |@@@@@'@@@'J@/OK@'@@ @@J@'@ n  @@@A@ m  @@Aఠ*add_needed s   s  @ UA@@@m!4function_declaration@@@1I@1@@@1ZI@/@|M@/@@@0I@/@,@@@0I@/@!I@/@ I@/@@/@@/@@/@@/3        @/D=@>@?@@@࣠@+needed_funsA s   s  @ VA@@83        @D@?@4@/@,@+@@/J@/@@/J@/@@/J@/@@/J@/@R@S@@@@@@.remaining_funsA &s   's  @ 3WA@@N3        @&2`@)@*@@@@@@6free_vars_of_kept_funsA 7s   8s  @ DXA@@V3 $ # # $ $ $ $ $@b@@@@@@@@@@ఠ/new_needed_funs Nt   Ot  @ [YA@@v@@@/M@/3 A @ @ A A A A A@*v@!@"@@@@ఠ.remaining_funs ct   dt  @ pZA@@@@@/M@/@@  @@@ @ @@/@డ#Map)partition(Variable x   x  @  x   x  @@ x   x  @ @@@4#key@@@ @!a@p$boolE@@@ @@ @@ @G@@@ @O@@@@U@@@@@@@@@@H@+Stdlib__Mapa@9/@@@@,@@@/@&@@@/@@/@@/@j@@@/@r@@@/@x@@@/@@/@@/@@/3        @@@@@࣠@&fun_idA x   x  @ [A@@[@@@/@@@@3A@ x   x  @@3        @j@@@/@@@@@@ @@డ d"|| z ) 7 z ) 9@@$boolE@@@P@@@@O @@@N@@M@@L'%sequorBA @@@@*stdlib.mli@@&Stdlib^@"!@@@@@@/@@@@/@@@/@@/@@/@@@డj#Set#mem(Variable Qy   Ry  @  Uy   Vy  @@ Zy   [y  @ @@9@@@ S@@@@ R$boolE@@@ Q@@ P@@ O@u@qd@@@@K@@@/@@@@/@@@/@@/@@/@@ఐ&fun_id y   y  @@@@@@0@@ఐc6free_vars_of_kept_funs y   y  (@?@@@@J@@@@@/@0!R@0@@డ  |   |  @@@@@@@0'@@@@0&@@@0%@@0$@@0#@@డ #Tbl#mem*Closure_id z ) : z ) D@  z ) E z ) H@@ z ) I z ) L@ @@ !a@K@@@@ @@@$boolE@@@@@@@@ @ o@$@@@  @@@0NR@0:@@@09@ @@@08@@@07@@06@@05 @@ఐ Ƞ0used_closure_idsz ) Mz ) ]@U@@ Š@@@0M@@డ 6$wrap*Closure_id){ ^ o*{ ^ y@ -{ ^ z.{ ^ ~@@@(Variable!t@@@  !t@@@ @@ @ 1middle_end/flambda/base_types/closure_element.mliUU@@/Closure_element@@@@@@@@0i@@@0h@@0gR@@ఐo&fun_idY{ ^ Z{ ^ @\@@@@@0qb@@`{ ^ na{ ^ @@ @@@0wT@0oj@@@@Y@@@03@0S@0Dr@@డ#Set#mem(Variable|  |  @ |  |  @@|  |  @ @2 @@@k@@@0@@@@02@@@0@@0@@0@@ఐ&fun_id|  |  @@@@@@0@@ఐ6direct_call_surrogates|  |  @İ@@@@@0S@0S@0@@? @@@@@02@0S@0@@@@@@@/@0R@01@@@@3@@@0Q@/@x  |  @@@J@@@/@D@@@/@@/@@/N@0N@0@@ఐϠ.remaining_funs}  }  @@@@@q@@@@@@0N@/@A@t   @@డ,#Map(is_empty(Variable    @     @@    @ @@!a@b@@@@@@@@@@sc@@@@РeI@0@@@0@@@0@@03$##$$$$$@@@@@@@@@ఐ/new_needed_funsJ  K  @@@o@@@0@@?@@ }@@@1M@0@@ఐd+needed_funsbA f pcA f {@8@@*@@ఐ:6free_vars_of_kept_funsnA f }oA f @@@6@@@@@@@@1=@@ఠ+needed_funsC  C  @\A@@'@@@1?M@13vuuvvvvv@R@@@డ#Map.disjoint_union(VariableD  D  @ D  D  @@D  D  @ @"eq&optionL@!a@@$boolE@@@y@@x@@w@@@v%print@&Stdlib&Format)formatter@@@u@"$unitF@@@t@@s@@r@@@q@.@@@p@4@@@o8@@@n@@m@@l@@k@@j@~@W@TJ@@GE@(@*>@@@1@@1@@1@@@1;R@9@@@1@:2@@@1@@1@@1@@@1@C@@@1@I@@@1M@@@1@@1 @@1 @@1 @@1 @tภ$None;`mj@@W@@@@AA@A@@c@@~@a@cw@@@1N@@1M@@1L@@@1K@tภ@@@w@@@1S@xp@@@1R@@1Q@@1P@@@1O@@ఐZ+needed_funsXD  YD  @.@@@@ఐ/new_needed_funseD  fD @)@@@@@1m@@@@@A@nC   @@@ఠ6free_vars_of_kept_funsyF"zF8@]A@@@@@1M@13kjjkkkkk@H@@@@@డ#Map$fold(VariableG;GG;O@ G;PG;S@@G;TG;X@ @@@@@@@!a@@#acc@@@@@@@@V@@@@  @@@@@@@K@\@* @@@@.@@@1@M@1@PM@1@@1@@1@@1@o @@@1@  @@1@@1@@13@U@@@@࣠@A@G;^G;_@@O@@@1f@@@@'Aঠ'FlambdaG;bG;i@.free_variablesG;kG;y@A3.free_variables-@@@B #Set!t@@@:@@C/3.closure_origin.Closure_origin!t@@@6@@@ @@ U-88 V-884@@ cV@3¶ms %)Parameter!t@@@8@@@7@@A@@ h.8587 i.858Q@@ vW@3$body/@@@9@@B'@@ q/8R8T r/8R8]@@ X@83,free_symbols8 #Set!t@@@;@@D5@@ 699 699@@ Z@3$stubF$boolE@@@<@@EA@@ ::: :::@@ [@3#dbgR K!t@@@=@@FM@@ ?;; ?;;@@ \@3&inline^&Lambda0inline_attribute@@@>@@G[@@ A<< A<<@@@ ]@3*specialisel4specialise_attribute@@@?@@Hg@@ CJ?J@@@\j@@@@u@A@CF@@ఐ*add_neededML NL @H@@@@x@q@l@k@@2@@2@@2@@23EDDEEEEE@@@@@@@ఐ栐+needed_funsiL jL *@@@ @@@2$@@ఐ.remaining_funszL +{L 9@=@@@@@2+%@@ఐ6free_vars_of_kept_funsL :L P@/@@2@@B@@!L@22M@2#7@Q@@@B  MQ\@@ @  @@' @@@(B@A@@@@@@@@2G@@2F@@2E@@2DI@2@@@@s  @@@@ఠ$funsOfpOft@`A@@]@@@2g@@@2fI@2I3@@@@@ఠ6free_vars_of_kept_funsOfvOf@aA@@@@@2hI@2J@@  @@@ @ @@2M@ఐ!*add_neededPP@@@@@@@2T@@@2S@ @@@2V@A@@@2U@@ @@2R@@2Q@@2P@@2O?@@డ0#Map%empty(VariablePP@ PP@@ P!P@ @ !a@K@@@Q@@qE@ @@̠sJ@2sJ@2q@@@2pp@@ఐɠ.function_declsBPCP@{@@ @@@2@2@$funsNPOP@3$funs $@@@5 X#Map!t@@@4@@@3@@C3/is_classic_mode@@@0@@@@@4444@@R@32set_of_closures_id2Set_of_closures_id!t@@@1@@A@@5254525^@@S@36set_of_closures_origin*6Set_of_closures_origin!t@@@2@@B#@@"66"666@@T@8@@'7(7*'7(7U@@U@K>@@8J@2J@2@@@2@@డ#Set%empty(VariablePP@ PP@@PP@ @ @@J@2J@2@@@@@@@@2J@2e@A@Ofl@@@ఠ)free_varsRR@bA@@q @@@3I@2@@@2I@23@*#@$@%@@@@@డ #Map&filter(VariableSS @ S S@@SS@ @@@m@@@@!a@k@@@@@@@@ @@@@@@@@@@@@__@* @@@@@@@2@O@@@2@@2@@2@ȠW@@@2̠[@@@2@@2@@23@V@@@@࣠@"idAASBS@NcA@@@@@2l@@@@$_varARSSS#@_dA@@3?>>?????@{@@@2@@@@@@  @@డY[fU^jgU^l@X@@@X@@@2@U@@@2T@@@2@@2@@23_^^_____@!-@$@%@@@@డ #Set#mem(VariableT'3T';@ T'<T'?@@T'@T'C@ @< @@@ u@@@2@ @@@2<@@@2@@2@@21@@ఐs"idT'DT'F@[@@@@@3 A@@ఐ6free_vars_of_kept_funsT'GT']@@@ @@@3N@3 N@3U@@? @@@@@2@3!N@3]@@డ[#Tbl#mem2Var_within_closureU^mU^@ U^U^@@U^U^@ @@Ƞ!a@@@@:@@@@9$boolE@@@8@@7@@6@^@Zo@$@@@ߠ@@@3a-\@ Aa-]Ba-`@@Fa-aGa-e@ @@$listK)Parameter)parameter@@@6s@@@6r(Variable#Set!t@@@6q@@6p@ middle_end/flambda/parameter.mlijj@@H@.$@@@!@@@6w@@@6v@@@6u@@6t`@@ఐ¶msa-fa-l@@@<9@@@6@@@6P@6P@6x@@a-Ra-m@@ @@@4#@6P@6@@ @@8O@4"@` a-n@@@ @@@3@@@@3@@3@@3K@6K@6[@@ఐ$funsbo{bo@ٰ@@ W.K@6@@@6 @@డ #Set%empty(Variablebobo@ bobo@@bobo@ @  @@ #@@@6B@@j@@M@A@_ @@డ #Map&filter(Variabledd@ dd@@dd@ @ @@@@ p@@@6@@@@6@@6@@6@ @@@6 @@@6@@6@@63@@@@@@@࣠@#argA)d*d@6jA@@ @@@63@@@@@ @@pA@8d9d@@3#""#####@# @@@6@@@@@@ @@డ l#Set#mem(VariableSeTe@ WeXe@@\e]e@ @  @@@ ;@@@7@ @@@7 @@@7@@7@@63@@ఐQ#argwexe@=@@ @@@7C@@ఐ)7all_remaining_argumentsee@o@@ @@@7M@7'M@7&W@@? @@@@@7(M@7 ]@de@@@ @@@6@Z@@@6@@6@@6J@73J@7/x@@ఐ/set_of_closuresf f@ @@@@@7A@7>@0specialised_argsff,@z@@yy@@@7?@@@@@@@x@A@]dj @@@ఠ)free_varsh6@h6I@kA@@(Variable#Map!t'Flambda.specialised_to@@@8@@@8I@7[3@@@@@@డ-Flambda_utils1clean_projections-Flambda_utilsiLTiLa@ iLbiLs@@/which_variables1#Map!t/.specialised_to@@@8@@@8@9@@@8@@@8@@8@ $middle_end/flambda/flambda_utils.mli#@@-Flambda_utilsb@)$@@!@@@8@@@8WP@@@8@@@8@@8K@1ఐv)free_varsCiLDiL@@@ 9@@@8J@8J@8@@@8c@@R@@wd@A@Sh6<@@@ఠ6direct_call_surrogates^k_k@klA@@ @@@9M@9@@@9I@83VUUVVVVV@@@@@@డ#Map$fold(Variablen;Cn;K@ n;Ln;O@@n;Pn;T@ @ @@@@ @@@9@0I@9@9I@9@@9@@9@@9@= @@@9@  @@9@@8@@83@8@@@@࣠@(existingAn;Zn;b@mA@@ "@@@9!N@@@@)surrogateAn;cn;l@nA@@23@] 6@@@9 @@@@@@  @@*surrogatesAn;mn;w@oA@@B3@!I@@@@@@@@డC ߠ pp@ ް@@@ @@@93@ @@@92 @@@91@@90@@9/3@ ,d@#@$@@@@డa#not o{ o{@@ @@@F @@@E@@D(%boolnotAA @@@ LL Lt@@ \@@@@@@@9C@@@9B@@9A-@@డV#Map#mem(Variable=o{>o{@ Ao{Bo{@@Fo{Go{@ @@ @@@ @!a@Y@@@ @@@@@@@@@ e@"@@@ @@@9Q@@@@9kO@9P@@@9O@@@9N@@9M@@9Lv@@ఐˠ(existing|o{}o{@@@ @@@9]P@9cP@9b@@ఐנ$funso{o{@@@1+@@@9j@@o{o{@@@@@9J@9P@9[@@ @@ @@@9?@9O@9I@@డ #notpp@@@@@@@9@@@9@@9@@డ#Map#mem(Variablepp@ pp@@pp@ @ @@@M@@@9@@@@9O@9@@@9@@@9@@9@@9@@ఐ<)surrogatepp@!@@j@@ఐR$funs p p@.@@$@@@9@@pp@@ @@@9@9P@9 @@h @@@@@9>@9O@9(@@@@P@@@9N@9=.@ఐ[*surrogates1q2q@5@@8@డ_#Map#add(VariableFrGr@ JrKr@@Or Pr#@ @@@@@W@!a@G@ @@@V @@@U@@T@@S@@R@@F@$@@@@@@9@ @@@@9@@@9@@9@@9@@9@@ఐԠ(existingr$r,@@@@@@9N@9N@9@@ఐנ)surrogater-r6@@@@@ఐР*surrogatesr7rA@@@@@d@@HF@@@9@o{ @@@n;UrB@@@#@@@9@'@%%@@9@@9@@9J@:J@: S@@ఐ./set_of_closuressCMsC\@@@ @@@:@:/@6direct_call_surrogatessC]sCs@@@wI@:@@@:<@@డ #Map%empty(Variablett~tt@ tttt@@tttt@ @ܰ @@I@:8@@@:7a@@ @@l@A@k @@@ఠ/set_of_closuresvv@ pA@@Q@@@:aI@:?3@@@@@@డ6create_set_of_closures'Flambda,w-w@ 0w1w@@.function_decls @@@N)free_varsB#Map!t @@@M@@@L0specialised_argsR#Map!t@@@K@@@J6direct_call_surrogatesb#Map!ti!t@@@I@@@H@@@G@@F@@E@@D@@C@iccndd@@@JE@@BJ@@@:L@>B@@@:K@@@:J97K@@@:I@@@:H20+@@@:G@@@:F@@@:E@@:D@@:C@@:B@@:A}@eఐ預.function_declsww@R@@|@@@:hJ@:jJ@:i@rఐ⠐)free_varsxx@J@@ߠ@@@:gJ@:tJ@:r@@@:q@zఐ0specialised_argsxx@@@p@@@:eJ@:J@:@@@:@ఐ6direct_call_surrogatesxx+@˰@@W@@@:@@@:@@ @@@A@v @@ภ/Set_of_closuresz5;z5J@7ఐ/set_of_closuresz5Kz5Z@@@@@D@@@:H@:H@:3@ @@@@ @@_@@@:@#@@@@@@@@*@O@@@@@W@l@@  ?@ Z@@  V@ s@@ *@b@@i@@@\@ఠ!e9+{[a,{[b@8SA@@@@@$@@@@@'@@@ఐ!e<{[fm@@@o@@!3(''(((((@2@@@@@ABk B Fs@г'FlambdaNj  2Oj  9@Rj  :Sj  ?@@@3>==>>>>>@G@@ @@@@@A@D@:@A@@డi4map_named_of_program1Flambda_iteratorsg}moh}m@ k}ml}m@@@@@@5!f@(Variable!t@@@4@%named@@@3%named@@@2@@1@@0@@@/@@.@@-@mn(<@@la@1,@@@@@@:)@'@@@:@"@@@:@@@:@@:@@:@@@:@@:@@:3@@@@@@@ఐ'program}m@|@@@Jఐ-)aux_named}m}m@@@@U@@@:D@:@'@@@;"@@@:@@:@@:+@@t@@,@ @@!@M@@@A@A@;@A)ocaml.doc p A variable in a closure can either be used by the closure itself or by an inlined version of the function. TUK@@@@@@@@@@,%@&@'@@3@:/@@@+:Remove_unused_closure_vars@@@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml  C C@ H DD3@ H Pierre Chambart, OCamlPro E44E4@ H Mark Shinwell and Leo White, Jane Street Europe FF@ H "G#G@ H Copyright 2013--2016 OCamlPro SAS (H)Hg@ H Copyright 2014--2016 Jane Street Group LLC .Ihh/Ih@ H 4J5J@ 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 @LOOALO@ H special exception on linking described in the file LICENSE. FMGM@ H LNMN5@ H************************************************************************RO66SO6@ q* A variable in a closure can either be used by the closure itself or by an inlined version of the function. j Keep a function if it is used either by the rest of the code, (in used_closure_ids), or by any other kept function (in free_vars_of_kept_funs) [u  \w  @ 3 If no new function is needed, we reached fixpoint a@ $ .b@ $ e@ < Remove specialised args that are used by removed functions g^h^@ s Remove direct call surrogates where either the existing function or the surrogate has been eliminated. mlnm:@@*./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/.-,+*)('&%$#"! @@0e:]LW 3@@@/Allocated_const0ЖݔTWŠ(Asttypes0>n{T8cئ5Build_path_prefix_map0z HkGs8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ2Clambda_primitives01U1/Closure_element0.1 @1ѧU0sM;@eAlx.Closure_origin0aBzlt@*Cmi_format0_j~GB00Compilation_unit0i(&ۥ$P.*Data_types0I'Ue`wq]Ѡ)Debuginfo0PtJ=^w/#Env0J=,Wu01Ux|ՍCb- 08Jn8I:0 ʆR97cZ*Format_doc0]mWϓ:Mݠ%Ident0ki8' x%+Š,Identifiable0~ܽǞ+y0ixjx-{`͡;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訥(03o21%\9?W2Set_of_closures_id0pi|ny6Set_of_closures_origin0{HO/Pؠ%Shape0mA;HXߠ0Static_exception0wBߝܔd3B&Stdlib0-i8Q"L{v;.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__Map0hؤ5O8% By.Stdlib__Result06 ]/J+Stdlib__Seq0nwzG&amg+Stdlib__Set0kb'G|PIF(.Stdlib__String0s&Switch0ܨnm\7&Symbol0_)Ӷӥ!h#Tag0 %XC}{3.Type_immediacy0A^abOhՠ%Types0R.z78m)Unit_info0ڀh%(0H6ʤ(fc2ӉrH(Variable0]Eè0=(Warnings0mJɒkgr