Caml1999T037; :~HC: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;@@@A@@@@@&_none_@@A@A@$charB;@@A@@@@@@A@&stringQ;@@ A@@@@@ @@@%bytesC;@@A@@@@@@@@%floatD;@@A@@@@@@@@$boolE;@@%falsec@@@$trued@@#@@@A@@@@@$@A@$unitF;@@"()e@@.@@@A@@@@@/@A@ #exnG;@@@A@@@@@3@@@#effH;@@O@A@A@@@@@@<@@@,continuationI;@@Q@@P@B@A@nY@@@@@@K@@@%arrayJ;@@R@A@A@@@@@@U@@@ $listK;@@S@A"[]f@@b@"::g@@@T@@o@ @@A@Y@@@@@r@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@A@@@@@@@@%int32N;@@A@@@@@@@@%int64O;@@A@@@@@@@@&lazy_tP;@@X@AJA@Y@@@@@@@@5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@A[A@Y@@@@@@@@*atomic_locU;@@Z@AdA@@@@@@@@@.Assert_failure`#@@@@@J@@@@@@@@[@@AϠ=ocaml.warn_on_literal_patternӐ@@0Division_by_zero]#@@@A٠  @+End_of_file\#$@@@Aᠰ@'FailureY#,@'@@A꠰@0Invalid_argumentX#5@0@@A󠰠$#@-Match_failureV#>@@=@9@;@@a@@A54@)Not_foundZ#O@@@A =<@-Out_of_memoryW#W@@@AED@.Stack_overflow^#_@@@AML@.Sys_blocked_io_#g@@@A$U'T'@)Sys_error[#o@j@@A-^0]0@:Undefined_recursive_modulea#x@@w@s@u@@h@@A>oAnA@:Continuation_already_takenb#@@@AFwIvI@&Stdlib@@Р?Int_replace_polymorphic_compare?Int_replace_polymorphic_compareRR@@ 3@@@@@@3@@@R@@ @@ఠ?remove_unused_closure_variablesVLPVLo@@A@@=remove_direct_call_surrogatesj@@@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 WW@CA@@2Var_within_closure#Tbl!t@@@D@@@@oD@3        @+7c@.@/@@@@ఠ0used_closure_ids/W0W@ @@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@@MY(Y*@@+@@@F@F@S@@> @@XT@A@Y @@@ఠ)aux_namedy'Z.6(Z.?@4GA@@@'Flambda%named@@@E@$unitF@@@E@@@E@3*))*****@{@@@@@࣠@%namedA@OZ.APZ.F@@ @@@3=<<=====@2XZ.2Ye^@@@@  @gHA,г/'FlambdahZ.IiZ.P@4lZ.QmZ.V@@@>@@@ @@tZ.@uZ.W@@@E"@@@@ఐ5%named[Zf[Zk@3@6@(@@T@@@3qppqqqqq@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_id]]@ ]]@@] ]@ @@!a@n@@@@#key@@@@@@@@@@@@@@?@;i@%@@@D@@@@@@@@@ @@@@@@@@@354455555@_\@^@]@@@@ఐ(used_funY]Z]@@@' @@@ @@ఐw*closure_idj]k]@@@@@@@RI@Q&@@ภ"(){]|]@;_@@@N@@@@A@@AA@@@@@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_ _ '@ _ (_ +@@_ ,_ /@ @@!a@@@@@#key@@@@$unitF@@@@@@@@@@@i@(@@@*#D@d@@@f@@@@e@ @@@c@@b@@a@@`354455555@wt@v@ufc@e@d@@@@ఐ$used[_ 0\_ 4@@@KD@@@|@@ఐ~#varl_ 5m_ 8@@@E@@@J@(@@ภ|_ 9}_ ;@@@@bJ@5@@o@@!@@@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@ঠ'closureaoao@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@@@@@@@@ డ#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_idcc@ cc@@cc@ @ڰ @@@ʠH@]@@@_@@@@^@ @@@\@@[@@Z@@Yk@@ఐ\(used_func c@ذ@@@@@u|@@ఐʠ'move_to*c+c@@@@@@I@@@ภ:c;c@@@@I@@@P@@I@l@@@ @Ġ&Symbol[d%\d+@;&Symbol@&Symbol!t@@@ @A@@K@Aqq@@@x@@pd,qd-@@@@@@@@@@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!d[@;$Expr@!t@@@@AJ@K@A9;9F@@@D@@2d\3d]@@@@@@@@@@@@@@@@@ @@ @@@@Ġ/Allocated_constGe^fHe^u@;/Allocated_const@/Allocated_const!t@@@@AB@K@Ass<@@@z@@\e^v]e^w@@@@@@@@@@1@@@@@@@  @@5@@@@Ġ,Read_mutableqe^zre^@;,Read_mutable@0Mutable_variable!t@@@@AC@K@At=?t=c@@@{@@e^e^@@@@@@@@@@[@@@@@@@5 @@_@@@ @Ġ1Read_symbol_fielde^e^@;1Read_symbol_field@@!t@@@#intA@@@@BD@K@Audfud@@@|@@e^e^@@@@@2@@@@@@7@@@% @@@@@;@@;@@i@@@@@?@@@ภRe^t@P@u@@F@@@A[Z`w@@3@H@@@^yA@E@@A@}@ డ1Flambda_iterators5iter_named_of_program1Flambda_iteratorsgg@ gg@@@)'program@@@!f@5%named@@@$unitF@@@@@@@@@@@@@ (middle_end/flambda/flambda_iterators.mliq  tW`@@1Flambda_iteratorsN@-(@@@%@@@N"@ @@@M@@@L@@K@@@J@@I@@H3        @@@@@@@ఐ>'program 1g 2g@ @@p@?ఐ)aux_named >g ?g@@@@@@@f @@@e@@d%@@e@@@@@jE@Z+@@ఐ$used Zh [h@@@J9@@ఐ(used_fun fh gh @%@@4E@@@@@[@;@@qL@ @@M@ @@1@W @@ @ @@ P@A@ uW@@@ఠ)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@ hPA@K@@@3 J I I J J J J J@n@@@)free_vars hl W  il W AQఠ7@ zQA@UP@@@@@@@@A xl W n yl 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 8q 6 C 9q 6 K@  @?@@@࣠@+needed_funsA s   s  @ VA@@83        @D@?@4@/@,@+@@/J@/@@/J@/@@/J@/@@/J@/@R@S@@@@@@.remaining_funsA s   s  @ WA@@N3        @&2`@)@*@@@@@@6free_vars_of_kept_funsA s   s  @ )XA@@V3        @b@@@@@@@@@@ఠ/new_needed_funs 3t   4t  @ @YA@@v@@@/M@/3 & % % & & & & &@*v@!@"@@@@ఠ.remaining_funs Ht   It  @ UZA@@@@@/M@/@@  @@@ @ @@/@డ#Map)partition(Variable jx   kx  @  nx   ox  @@ sx   tx  @ @@@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 6y   7y  @  :y   ;y  @@ ?y   @y  @ @@9@@@ S@@@@ R$boolE@@@ Q@@ P@@ O@u@qd@@@@K@@@/@@@@/@@@/@@/@@/@@ఐ&fun_id ly   my  @@@@@@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_ids z ) M z ) ]@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_id>{ ^ ?{ ^ @\@@@@@0qb@@E{ ^ nF{ ^ @@ @@@0wT@0oj@@@@Y@@@03@0S@0Dr@@డ#Set#mem(Variableh|  i|  @ l|  m|  @@q|  r|  @ @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_funs/  0  @@@o@@@0@@?@@ }@@@1M@0@@ఐd+needed_funsGA f pHA f {@8@@*@@ఐ:6free_vars_of_kept_funsSA f }TA f @@@6@@@@@@@@1=@@ఠ+needed_funshC  iC  @u\A@@'@@@1?M@13[ZZ[[[[[@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;P]Z@@W@@@@AA@A@@S@@~@a@cw@@@1N@@1M@@1L@@@1K@tภ@@@w@@@1S@xp@@@1R@@1Q@@1P@@@1O@@ఐZ+needed_funs=D  >D  @.@@@@ఐ/new_needed_funsJD  KD @)@@@@@1m@@@@@A@SC   @@@ఠ6free_vars_of_kept_funs^F"_F8@k]A@@@@@1M@13POOPPPPP@H@@@@@డ#Map$fold(Variable{G;G|G;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@@ C@@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@@@@࣠@"idA&S'S@3cA@@@@@2l@@@@$_varA7S8S#@DdA@@3$##$$$$$@{@@@2@@@@@@  @@డY[KU^jLU^l@X@@@X@@@2@U@@@2T@@@2@@2@@23DCCDDDDD@!-@$@%@@@@డ #Set#mem(VariablerT'3sT';@ vT'<wT'?@@{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@$@@@ߠ@@@3@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_vars(iL)iL@@@ 9@@@8J@8J@8@@@8c@@R@@wd@A@8h6<@@@ఠ6direct_call_surrogatesCkDk@PlA@@ @@@9M@9@@@9I@83;::;;;;;@@@@@@డ#Map$fold(Variablefn;Cgn;K@ jn;Lkn;O@@on;Ppn;T@ @ @@@@ @@@9@0I@9@9I@9@@9@@9@@9@= @@@9@  @@9@@8@@83srrsssss@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#noto{o{@@ @@@F @@@E@@D(%boolnotAA @@@ LL Lt@@ \@@@@@@@9C@@@9B@@9A-@@డV#Map#mem(Variable"o{#o{@ &o{'o{@@+o{,o{@ @@ @@@ @!a@Y@@@ @@@@@@@@@ e@"@@@ @@@9Q@@@@9kO@9P@@@9O@@@9N@@9M@@9Lv@@ఐˠ(existingao{bo{@@@ @@@9]P@9cP@9b@@ఐנ$funsuo{vo{@@@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$funspp@.@@$@@@9@@pp@@ @@@9@9P@9 @@h @@@@@9>@9O@9(@@@@P@@@9N@9=.@ఐ[*surrogatesqq@5@@8@డ_#Map#add(Variable+r,r@ /r0r@@4r 5r#@ @@@@@W@!a@G@ @@@V @@@U@@T@@S@@R@@F@$@@@@@@9@ @@@@9@@@9@@9@@9@@9@@ఐԠ(existingjr$kr,@@@@@@9N@9N@9@@ఐנ)surrogate~r-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'Flambdaww@ ww@@.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@SA@@@@@$@@@@@'@@@ఐ!e!{[fm@@@o@@!3        @2@@@@@A'k B Fs@г'Flambda3j  24j  9@7j  :8j  ?@@@3#""#####@G@@ @@@@@A@D@:@A@@డi4map_named_of_program1Flambda_iteratorsL}moM}m@ P}mQ}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 CC@ H DD3@ H Pierre Chambart, OCamlPro E44E4@ H Mark Shinwell and Leo White, Jane Street Europe FF@ H GG@ H Copyright 2013--2016 OCamlPro SAS  HHg@ H Copyright 2014--2016 Jane Street Group LLC IhhIh@ H JJ@ 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 1N2N5@ H************************************************************************7O668O6@ 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  Aw  @ 3 If no new function is needed, we reached fixpoint F@ $ .G@ $ e@ < Remove specialised args that are used by removed functions L^M^@ s Remove direct call surrogates where either the existing function or the surrogate has been eliminated. RlSm:@@-./boot/ocamlc)-nostdlib"-I&./boot*-use-prims2runtime/primitives"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I2middle_end/flambda"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-I%tools"-I'runtime"-I1otherlibs/dynlink"-I-otherlibs/str"-I4otherlibs/systhreads"-I.otherlibs/unix"-I8otherlibs/runtime_events"-c H/home/touraine/ci/builds/workspace/main/flambda/false/label/ocaml-arm-32 >10/.-,+*)('&%$#"! @@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~ܽǞ+w0ixjx-{`͡;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訥(i03o21%\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