Caml1999T037" IC: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@@@OKA@@@ 'program@@@OAA@@@A@@@A@3@:@@@࣠''A+VLqVL@ AA@@-3@J>VLL }m@@@@@ VLp @@'programAVLVL@"BA@@63@!E@@@@@@@@@@ఠ8used_vars_within_closure,W-W@9CA@@2Var_within_closure#Tbl!t@@@lD@ F@@@%D@3,++,,,,,@+7c@.@/@@@@ఠ0used_closure_idsNWOW@[DA@@*Closure_id#Tbl!t"@@@D@N@@@%D@!@@9@@@9@@@(@@ఠ$useduXvX@EA@@IB@@@E@<@డ2Var_within_closure#Tbl&create2Var_within_closureXX@ XX@@XX@ @@#intA@@@ w@@ vw!a@ l@@@ u@@ t@6utils/identifiable.mlinn@@/Stdlib__Hashtblg@&@@@@@@ H@@ G@@@ E@@ D@@MXX@@-@@@F@F@@@B @@Y@A@X @@@ఠ(used_fun(YY@FA@@@@@ E@3@{t@u@v@@@డ*Closure_id#Tbl&create*Closure_idYY@ YY @@ Y! Y'@ @@#intA@@@@@~à!a@t@@@}@@|@6utils/identifiable.mlinn@@/Stdlib__Hashtblg@&@@@@@@P@@O٠@@@M@@LG@@M8Y(9Y*@@-@@@F@F@W@@B @@\X@A@CY @@@ఠ)aux_namedNZ.6OZ.?@[GA@@@'Flambda%named@@@E@@@$unitF@@@mE@@@E@3SRRSSSSS@@@@@@࣠@%namedAxZ.AyZ.F@HA@г%'FlambdaZ.IZ.P@*Z.QZ.V@@@4@@@3zyyzzzzz@(HZ.2e^@@@ @@Z.@Z.W@@@A @@@@ఐ1%named[Zf[Zk@O@@@@1@2@@S@@@3@ A @@@Ġ/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@@@h(Variable!t@@@f@@@3*closure_id*Closure_id!t@@@g@@A @A !middle_end/flambda/projection.mliXX @@B@@AWW@@A@@\q\q@@ @@@3@\@@@*closure_id\q\qA#ఠ@%IA@'@@@@@@\q \q@@Z@@@I@@@@k@@@@@@@@@@!@@@డ@#Tbl#add*Closure_id>]?]@ B]C]@@G]H]@ @@!a@^@@@@@@#key@@@@@@@@@@@@@@@@@@H@Dk@+!@@@D@Y@@@]@@\@@@@[@@Z@ @@X@@@W@@V@@U@@T3ihhiiiii@kh@j@i@@@@ఐ(used_fun]]@#@@<5@@@y@@ఐ*closure_id]]@@@H@@@I@&@@ภ"()]]@;<t@@@N@@@@A@@At@@>@@@YI@9@@| @@X:@Ġ+Project_var^^@;+Project_var@ +project_var@@@@AH@K@A@@@@@ঠ*closure_id^^A3*closure_id+project_var@@@p!t@@@n@@A3'closure!t@@@m@@@ @Aihjih@@H@3#var2Var_within_closure!t@@@o@@B@Akk@@ J@@A j j@@$I@ఠ3432@JA@+@@@3@c@@@#var^^A$ఠ@,KA@(@@@@@@&^'^ @@a@@@I@@@@j@@@@@@@@@@!@@@ డ#Tbl#add2Var_within_closureG_ H_ '@ K_ (L_ +@@P_ ,Q_ /@ @@&!a@ V@@@ @@ @2#key@@@ @@ @@@ $unitF@@@ @@ @@ @@ @@k@.$@@@G@D@@@@@@@@@@@@@ @@@@@@@@@@@3uttuuuuu@@@ro@q@p@@@@ఐ&$used_ 0_ 4@@@le@@@@@ఐ#var_ 5_ 8@@@M@@@bJ@a(@@ภ_ 9_ ;@ @@@J@m5@@{@@X@@@nI@<@డ#Tbl#add*Closure_id`=E`=O@ `=P`=S@@`=T`=W@ @ @@@H@u@@@y@@x@@@@w@@v@@@t@@@s@@r@@q@@pr@@ఐ((used_fun`=X `=`@@@@@@@@ఐ *closure_id`=a`=k@@@@@@I@@@ภ{)`=l*`=n@z@@@I@@@V@@I@@@@@Ġ;Move_within_set_of_closures#Tbl#add*Closure_id@@>@@B @@@@@B@Ġ/Set_of_closuresd:dI@;/Set_of_closures>@?/set_of_closures@@@@AE@K@A6DF7Dj@@@D}@@ dJ dK@@@@@#a@@@@@@@@$e@@e@@i @@@@@%i@Ġ$Prim!dN"dR@;$Prime@2Clambda_primitives)primitive@@@ʠ$listK(Variable!t@@@@@@ˠ)Debuginfo!t@@@@CI@K@Ayz8@@@C@@OdSPdT@@+@@@,@@@'$@@@.@@@-@@@ @@@/@@@B@@ @@@0@@@@@@ @@@1@Ġ$ExprrdWsd[@;$Expr@!t@@@@AJ@K@A9;9F@@@D@@d\d]@@@@@5@@@@@0@@@6@@@@ @@4@@@7@Ġ/Allocated_conste^fe^u@;/Allocated_const@/Allocated_const!t@@@@AB@K@Ass<@@@z@@e^ve^w@@@@@;@@@@@Z@@@<@@@@  @@^@@@= @Ġ,Read_mutablee^ze^@;,Read_mutable@0Mutable_variable!t@@@@AC@K@At=?t=c@@@{@@e^e^@@@@@A-@@@@@@@@B1@@1@@5 @@@@@C5@Ġ1Read_symbol_fielde^e^@;1Read_symbol_field1@@!t@@@Ġ#intA@@@@BD@K@A1udf2ud@@@?|@@ e^ e^@@@@@H\@@@@@@Ia@@@% @@@@@Je@@e@@i@@@@@Li@@@ภp e^@n@@@p@@@A ![Z`@@3        @r@@@A@E@" @A@@ డ1Flambda_iterators5iter_named_of_program1Flambda_iterators 7g 8g@  ;g  > ? ? ? ? ?@C; @@@Ġ/Set_of_closures bl W ] cl W l@hঠ.function_decls ol W p pl W ~A3.function_declst@@@5function_declarations@@@@@@ 3)free_vars J#Map!t.specialised_to@@@@@@@@A@@'''';@@O@30specialised_args^#Map!t@@@@@@@@B#@@(6(8(6(i@@P@36direct_call_surrogates1p#Map!tw!t@@@@@@@@C8@@2223@@Q@@@$$$$@@N@ఠQLRQP@ PA@K@@@%3        @n@@@)free_vars l W  l W AQఠM@ QA@UP@@@%@@@%@@A l W n l W @@@@@%I@%@/set_of_closuresN l W  l W @ RA  l W m l W @@(@@@@@@@@%,@@@@@%/@@@@ఠ6direct_call_surrogates m   m  @ TA@@(Variable#Set!t@@@,I@*3        @TQ@S@RC@@B@A17@/@,@@@ఐ =remove_direct_call_surrogates n   n  @ @@ I@డ(Variable#Set%empty(Variable 1n   2n  @  5n   6n  @@ :n   ;n  @ @;@@@+g@6utils/identifiable.mlill@@+Stdlib__SetE@ @@E;@డ+#Set'of_list(Variable Zp  ! [p  )@  ^p  * _p  -@@ cp  . dp  5@ @@$listKn#elt@@@,@@@,@@,t@@@,@@,@9@,IdentifiableP@#@@@@@@,@@@,@@,@@@,@@,~@@డp#Map$data(Variable q 6 C q 6 K@  q 6 L q 6 O@@ q 6 P q 6 T@ @@#Map!t!a@&@@@)@@)Q @@@)@@)@mm@@J^@'@@@`@@@@J@@J@5c@@@5e@@5d @@@5b@@5a@@ఐ/set_of_closures q 6 U q 6 d@԰@@@@@@@@@6direct_call_surrogates q 6 e q 6 {@Q@@P(@@@@@@ q 6 B q 6 |@@@@@5_@@@5^J@@K@5l@@ @@J@5\@ n  @@@A@ m  @@Aఠ*add_needed s   s  @ $UA@@@qf4function_declaration@@@CI@B@@@CAI@A @@A@M@AI@@@BI@A@@A@:@@@AI@A@@A@%I@A@ I@A@@A@@A@@A@@A3 2 1 1 2 2 2 2 2@=RK@L@M@@@࣠@+needed_funsA Ws   Xs  @ dVA@@<3 D C C D D D D D@J@E@@A @:@@A@5@@A@2@1@@AJ@A@@AJ@A@@AJ@A @@A J@A @^@_@@@@"!@@.remaining_funsA s   s  @ WA@@V3 o n n o o o o o@,8j@/@0@@@@@@6free_vars_of_kept_funsA s   s  @ XA@@\3        @j@@@@@@@@@@ఠ/new_needed_funs t   t  @ YA@@~@@@AgM@A?3        @*|@!@"@@@@ఠ.remaining_funs t   t  @ ZA@@@@@AhM@A@@@  @@@ @ @@AC@డ#Map)partition(Variable x   x  @  x   x  @@ x   x  @ @@@F#key@@@)$@@)#@!a@&@@)"$boolE@@@)!@@) @@)@@)@]@@@)@@)@e@@@)@k@@@)@@)@@)@@)@^@+Stdlib__Mapa@A7@@@@4@@@AS@@AR@@@AQ.@@@AP@@AO@@AN@@AM@@@@AL@@AK@@@@AH@@@@AJ@@AG@@AF@@AE3 3 2 2 3 3 3 3 3@@@@@࣠@&fun_idA Yx   Zx  @ f[A@@g@@@Az@@@@VA@ gx   hx  @@43 R Q Q R R R R R@v@@@Ay@@@@@@ @@డ "|| zz ) 7 {z ) 9@@$boolE@@@]@@\@ @@@[@@Z@@@Y@@X@@W'%sequorBA @@@@*stdlib.mli@@&Stdlib^@&%@@@#@@@A@@A@ @@@A@@A@@@A@@A@@AH@@డ#Set#mem(Variable y   y  @  y   y  @@ y   y  @ @@e@@@,B@@,A@@@@,@@@,?$boolE@@@,>@@,=@@,<@@d@#@@@{@@@A@@A@@@@A@@A@@@A@@A@@A@@ఐ&fun_idy  y  @@@@@@A@@ఐ6free_vars_of_kept_funsy  y  (@_@@@@R@@@@@A@AR@A@@డ )|  *|  @@@@@@@A@@A@@@@A@@A@@@A@@A@@A@@డ S#Tbl#mem*Closure_idQz ) :Rz ) D@ Uz ) EVz ) H@@Zz ) I[z ) L@ @@ !a@@@@@@@ @@@@@$boolE@@@@@@@@ X@ Ts@(@@@ ) D@@@BR@A@@@A@@A@ /@@@A@@A@@@A@@A@@A'@@ఐ L0used_closure_idsz ) Mz ) ]@@@ I@@@B8@@డ $wrap*Closure_id{ ^ o{ ^ y@ { ^ z{ ^ ~@@@(Variable!t@@@d@@c p!t@@@b@@a@ 1middle_end/flambda/base_types/closure_element.mliUU@@/Closure_element@@ @@@@@@B!@@B @@@B@@Br@@ఐ&fun_id{ ^ { ^ @|@@@@@B+@@{ ^ n{ ^ @@ @@@B1T@B(@@@@w@@@A@B:S@A@@డ#Set#mem(Variable|  |  @ |  |  @@|  |  @ @J @@@@@@BB@@BA@$@@@B@@@B?J@@@B>@@B=@@B<@@ఐ᠐&fun_id7|  8|  @ΰ@@D@@@BW@@ఐJ6direct_call_surrogatesG|  H|  @@@K@@@BPS@BjS@Bi@@C @@@@@A@BkS@BN@@ @@@@@A@BlR@A@@@@a@@@BmQ@A@hx  i|  @@@|@@@Aq@@Ap@D@@Aov@@@An@@Am@@AlN@B|N@Bv@@ఐ.remaining_funs}  }  @@@Y?@@@@@⠠@@@BN@Af@A@t   @@డx#Map(is_empty(Variable    @     @@    @ @@!a@&@@@)2@@)1@@@)0@@)/@@c@@@@I@B@@@B@@B@@@B@@B3@!0)@*@+@@@@@@ఐ8/new_needed_funs    @@@5@@@B@@C@@@@@BM@B@@ఐ+needed_funsA f pA f {@t@@*@@ఐv6free_vars_of_kept_funsA f }A f @R@@6@@@@@@@@B=@@ఠ+needed_funsC  C  @(\A@@q@@@CM@B3  @R@@@డ#Map.disjoint_union(Variable7D  8D  @ ;D  <D  @@@D  AD  @ @"eq&optionL@!a@&E@@)@@@)$boolE@@@)@@)@@)@@@)@@)%print@&Stdlib&Format)formatter@@@)@@)@*@@)$unitF@@@)@@)@@)@@@)@@)@٠8@@@)@@)@@@@@)@@)D@@@)@@)@@)@@)@@)@@W@dZ@@WU@@@B@@@BN@@@B@@B@@B@@@B@@BKh@I@@@B@@B@@@BB@@@B@@B@@B@@@B@@B@@@@B@@B@ @@@B@@B$@@@B@@B@@B@@B@@B@ภ$None;%"@@W@@@@AA@A@@@@@@@C2@@@C1@@@C0@@C/@@C.@@@C-@@C,@ภ@@@@@@C:@@C9@@@C8@@@C7@@C6@@C5@@@C4@@C3@@ఐȠ+needed_funsD  D  @@@@@ఐ/new_needed_funs)D  *D @U@@|@@@CT @@@@ @A@2C   @@@ఠ6free_vars_of_kept_funs=F">F8@J]A@@@@@@CM@Cn3/../////@t1*@+@,@@@డ+#Map$fold(VariableZG;G[G;O@ ^G;P_G;S@@cG;TdG;X@ @@@y@@@(@@(@!a@'-@@(@#acc@')@@(@@(@@(@@(@@(@֠@@@(@@(@@@(@@(@@(@@(@@o\@6,@@@@@@@C@@C~@{M@Cw@@C}@dM@Cs@@C|@@C{@@Cz@@Cy@@Cx@@@@Cv@@Cu@@@Ct@@Cr@@Cq@@Cp3@m@@@@࣠@A@G;^G;_@@@@@C~@@@@Aঠ'FlambdaG;bG;i@.free_variablesG;kG;y@A3.free_variables@@@ #Set!t@@@@@C/3.closure_origin.Closure_origin!t@@@@@@ @@$-88%-884@@2V@3¶ms ʠ)Parameter!t@@@@@@@@A@@7.85878.858Q@@EW@3$body/ @@@@@B'@@@/8R8TA/8R8]@@NX@83,free_symbols8 d#Set!t@@@@@D5@@N699O699@@\Z@3$stubF$boolE@@@@@EA@@Z:::[:::@@h[@3#dbgR !t@@@@@FM@@f?;;g?;;@@t\@3&inline^&Lambda0inline_attribute@@@@@G[@@tA<<uA<<@@@]@3*specialisel4specialise_attribute@@@@@Hg@@C+needed_funsYL ZL *@@@;@@@DA@@ఐ.remaining_funsjL +kL 9@@@;@@@DH%@@ఐ>6free_vars_of_kept_funs{L :|L P@/@@=2@@H@@yL@DOM@D=7@W@@>@B  MQ\@@b@  @@d@@@@4A@@r@@Dp@e@@Do@^@@Dn@Y@X@@Dm@@Dl@@Dk@@DjI@DcD@@@s  @@@@ఠ$funsOfpOft@`A@@@@@D@@@DI@Dr3@a@@@@ఠ6free_vars_of_kept_funsOfvOf@aA@@@@@DI@Ds@@  @@@ @ @@Dv@ఐǠ*add_neededPP@@@@5@@@D}@@@D|@@D@@ @@@D@@D@@@@D~@@D@@ @@D{@@Dz@@Dy@@DxE@@డ#Map%empty(VariablePP@ PP@@PP@ @p!a@(@@@(@g@ E@ @@zyJ@DJ@D@@@Dv@@ఐ }.function_decls>P?P@ /@@ @@@D@D@$funsJPKP@3$funs @@@ #Map!t3@@@@@@@@C3/is_classic_mode=@@@@@@@@4444@@R@32set_of_closures_id2Set_of_closures_id!t@@@@@A@@5254525^@@S@36set_of_closures_origin*6Set_of_closures_origin!t@@@@@B#@@"66"666@@T@8@@'7(7*'7(7U@@U@K>@@8J@DJ@D@@@D@@డ t#Set%empty(VariablePP@ PP@@PP@ @ r @@J@DJ@D@@@@@@@@DJ@D@A@Ofl@@@ఠ)free_varsRR@bA@@  N@@@EI@D@@@E I@D3@0)@*@+@@@@@డ #Map&filter(VariableSS @ S S@@SS@ @@@ @@@) @@) @!a@'@@) @@@)@@)@@)@@)@ f@@@)@@) j@@@)@@)@@(@ ]@_@2(@@@@2@@@D@@D@]@@D!@@@D@@D@@D@@D@ g@@@D@@D k@@@D@@D@@D3'&&'''''@f@@@@࣠@"idAMSNS@ZcA@@[@@@E|@@@@$_varA^S_S#@kdA@@3KJJKKKKK@o@@@E@@@@@@  @@డrU^jsU^l@@@@@@@E.@@E-@@@@E,@@E+@@@E*@@E)@@E(3onnooooo@%1@(@)@@@@డ n#Set#mem(VariableT'3T';@ T'<T'?@@T'@T'C@ @ذ @@@ =@@@EF@@EE@ @@@ED@@EC@@@EB@@EA@@E@5@@ఐ{"idT'DT'F@c@@@@@E[E@@ఐ6free_vars_of_kept_funsT'GT']@@@ @@@ETN@EnN@EmY@@C @@c@@@E>@EoN@ERa@@డk#Tbl#mem2Var_within_closureU^mU^@ U^U^@@U^U^@ @@ڠ!a@ @@@ @@ @@@@ @@ $boolE@@@ @@ @@ @p@ls@(@@@@@@EM@Ex@@@Ew@@Ev@@@@Eu@@Et@@@Es@@Er@@Eq@@ఐ8used_vars_within_closureDVEV@ ?@@@@@E@@డ$wrap2Var_within_closure[W\W@ _W`W@@@(Variable!t@@@\@@[@@@F=@@F;@@F:@@F93@Z@@@@࣠@ A@``@@ @@@Fqk@@@@ Aঠ'Flambda``@¶ms``#@Aఠ  @hA@  @@@F@@@F@@@ ``%@@ON@F{@@@@#setA`&`)@(iA@@V3@ @@@@@@@@డ #Set%union(Variable5a-;6a-C@ 9a-D:a-G@@>a-H?a-M@ @ @@@ C@@@F@@F@ J@@@F@@F M@@@F@@F@@F3<;;<<<<<@5A@8@9@@@@ఐH#set`a-Naa-Q@ @@@@డ)Parameter#Set$vars)Parameterya-Sza-\@ }a-]~a-`@@a-aa-e@ @@$listK)Parameter)parameter@@@I@@@I@@I(Variable#Set!t@@@I@@I@ middle_end/flambda/parameter.mlijj@@H@0&@@@# @@@I@@@I@@I@@@I@@Id@@ఐ¶msa-fa-l@@@>;@@@I@@@IP@IP@I|@@a-Ra-m@@ @@@F@IP@I@@ @@LO@F@` a-n@@@ @@@Fg@@Ff@.@@Fe@)@@Fd)@@Fc@@Fb@@FaK@JK@Iu@@ఐM$funsbo{bo@#@@ OBK@J@@@J.@@డ #Set%empty(Variablebobo@ bobo@@ bo!bo@ @  @@!@@@J)P@@@@_@A@)_ @@డ #Map&filter(Variable;d<d@ ?d@d@@DdEd@ @M @@@@ Z@@@J;@@J:@@@J9I@@@J8@@J7@@J6@@J5@ @@@J4@@J3 @@@J1@@J0@@J/3ONNOOOOO@@@@@@@࣠@#argAwdxd@jA@@ @@@Jj3gffggggg@@@@@ @@uA@dd@@3qppqqqqq@# @@@Ji@@@@@@ @@డr#Set#mem(Variableee@ ee@@ee@ @ ܰ @@@A@@@J|@@J{@@@@Jz@@Jy @@@Jx@@Jw@@Jv7@@ఐU#argee@A@@ @@@JG@@ఐO7all_remaining_argumentsee@s@@@@@JM@JM@J[@@C @@@@@JM@Ja@de@@@ @@@Ja@@J`@@@J_@@@J^@@J]@@J\J@JJ@J@@ఐ$/set_of_closures f  f@@@@@@J@J@0specialised_argsff,@@@@@@J@@@@@@@@A@ ]dj @@@ఠ)free_vars+h6@,h6I@8kA@@(Variable#Map!t'Flambda.specialised_to@@@L@@@LI@J3-,,-----@@@@@@డ-Flambda_utils1clean_projections-Flambda_utilsViLTWiLa@ ZiLb[iLs@@/which_variables3#Map!t1.specialised_to@@@L@@@L@@LB;@@@L@@@L@@L@ $middle_end/flambda/flambda_utils.mli#@@-Flambda_utilsb@+&@@#!@@@L@@@L@@L[T@@@L@@@L@@LO@5ఐԠ)free_varsiLiL@@@;@@@LJ@LJ@L@@@Lg@@V@@{h@A@h6<@@@ఠ6direct_call_surrogates$kk@lA@@ @@@MM@M@@@N#I@L3@@@@@@డ#Map$fold(Variablen;Cn;K@ n;Ln;O@@n;Pn;T@ @  @@@@ @@@M@@M@6I@L@@M@AI@L@@M@@L@@L@@L@@L@S@@@L@@L@@@L@@L@@L@@L3@D@@@@࣠@(existing%An;Zn;b@'mA@@(@@@M,Z@@@@)surrogate&A+n;c,n;l@8nA@@83@i<@@@M+@@@@@@  @@*surrogates'A?n;m@n;w@LoA@@F3,++,,,,,@!O@@@@@@@@డ ٠ ۰RpSp@ ذ@@@ @@@MF@@ME@ @@@MD@@MC @@@MB@@MA@@M@3ONNOOOOO@$0l@'@(@@@@డ#notuo{vo{@@ @@@O@@N @@@M@@L(%boolnotAA @@@ LL Lt@@ \@@@@@@@M[@@MZ@@@MY@@MX1@@డ|#Map#mem(Variableo{o{@ o{o{@@o{o{@ @@@@@)=@@)<@!a@&@@@);@@):@@@)9@@)8@@)7@@e@&@@@@@@Mm@@Ml@,@@@MO@Mk@@@Mj@@Mi@@@Mh@@Mg@@Mf@@ఐ۠(existingo{o{@ð@@@@@M}P@MP@M@@ఐW$funso{o{@-@@Y+@@@M@@o{o{@@@@@Md@MP@My@@ @@@@@MV@MO@Mb@@డ#not+p,p@@@@@@@M@@M@@@M@@M@@డ#Map#mem(VariableLpMp@ PpQp@@UpVp@ @ @@@g@@@M@@M@C@@@MO@M@@@M@@M@@@M@@M@@M @@ఐR)surrogatezp{p@7@@@@ఐؠ$funspp@@@ڠ$@@@M(@@pp@@@@@M@MP@M2@@n @@@@@MT@MO@M:@@,@@@@@MN@MR@@ఐq*surrogatesqq@G@@J@డ#Map#add(Variablerr@ rr@@r r#@ @@@@@("@@(!@!a@( @@( @2 @@@(@@(6@@@(@@(@@(@@(@)@F@* @@@@@@M@@M@6@@M@K=@@@M@@MOA@@@M@@M@@M@@M@@ఐ(existing r$r,@ް@@@@@NN@NN@N@@ఐ)surrogate!r-"r6@ް@@-@@ఐ*surrogates.r7/rA@Ȱ@@4@@p@@t@@@N@7o{ @@;@9n;U:rB@@@M@@@M"@@M!@S@@M @Q@@MQ@@M@@M@@MJ@NLJ@NE@@ఐt/set_of_closuresZsCM[sC\@I@@`@@@N]@NZW@6direct_call_surrogatesfsC]gsCs@ư@@ŠI@N\@@@N[d@@డR#Map%empty(Variablett~tt@ tttt@@tttt@ @ n @@ޠI@Nv@@@Nu@@ @@@A@k @@@ఠ/set_of_closures(vv@pA@@@@@NI@N}3@@@@@@డU6create_set_of_closures'Flambdaww@ ww@@.function_declsR@@@X@@W)free_vars#Map!tS@@@V@@@U@@T0specialised_args#Map!te@@@S@@@R@@Q6direct_call_surrogates#Map!t!t@@@P@@@O@@N@@@M@@L@@K@@J@@I@8icc9ndd@@F@RM@@J@@@N@@NHF@@@N@@@N@@NA?@@@N@@@N@@N:83@@@N@@@N@@N5@@@N@@N@@N@@N@@N@uఐc.function_declsAwBw@İ@@@@@NJ@NJ@N@ఐ*)free_varsUxVx@@@'@@@NJ@NJ@N@@@N@ఐ0specialised_argsmxnx@)@@@@@NJ@NJ@N@@@N@ఐ͠6direct_call_surrogatesxx+@۰@@ؠ@@@N@@@N@@ @@@A@v @@ภ/Set_of_closuresz5;z5J@ఐ/set_of_closuresz5Kz5Z@@@@@@@@OH@OH@O3@ @@@@ @@@@@O@#@@ @@@@ @@r@@@:@U@@@@@  @ @@  @ @@ r@@@@@@*@ఠ!eO{[a{[b@SA@@@@@%z@@@@@%}@@@ఐ!e{[f@@@@@!3@@@@@@Ak B F@г校'Flambdaj  2j  9@j  :j  ?@@@3@@@ @@@@@A@D@O!@A@@డ4map_named_of_program1Flambda_iterators}mo}m@  }m }m@@@,@@@%S@@%R!f@(Variable!t@@@%Q@@%P@E%named@@@%O@@%NK%named@@@%M@@%L@@%K@@%JG@@@%I@@%H@@%G@(<@@a@94@@@]@@@O/@@O.1@/@@@O-@@O,@*@@@O+@@O*'@@@O)@@O(@@O'@@O&k@@@O%@@O$@@O#3FEEFFFFF@Z|@}@~@@@@ఐX'programj}mb@&c@@@Xఐ)aux_namedv}mw}m@@@@a@@@OID@OT@@OZ@@@@OY@@OX@@@OW@@OV@@OU/@@@@0@v@@@@@L@A@A@Od@A)ocaml.docT 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 KKN@ H the GNU Lesser General Public License version 2.1, with the LOOLO@ H special exception on linking described in the file LICENSE. MM@ H NN5@ H************************************************************************ O66 O6@ 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  @ $ . @ $ e@ < Remove specialised args that are used by removed functions  ^ ^@ s Remove direct call surrogates where either the existing function or the surrogate has been eliminated.  l m:@@*./ocamlopt)-nostdlib"-I(./stdlib"-I1otherlibs/dynlink"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I2middle_end/flambda"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-I%tools"-I'runtime"-I1otherlibs/dynlink"-I-otherlibs/str"-I4otherlibs/systhreads"-I.otherlibs/unix"-I8otherlibs/runtime_events2-function-sections"-c ] ^ F/home/ci/builds/workspace/main/flambda/false/label/ocaml-ubuntu-latest ?>3210/.-,+*)('&%$#"! @@0e:]LW 3 e d d e e e e e@ c@@/Allocated_const0/vVǟx(Asttypes0eT$BbRM dc5Build_path_prefix_map0DGl}%Y5Lhi8CamlinternalFormatBasics0|.e1R$|o0CamlinternalLazy0zY# #4#-2Clambda_primitives0|& %ZIǝz/Closure_element0ǔf#M0 (?$.Closure_origin0!Havl5"_*Cmi_format0`M{?w}@0Compilation_unit0Dl ]wN*Data_types0v\3,Svh)Debuginfo0_ |PooGq#Env0S B2?0VJ͟0|Jٻbx0J/驨Ӆi$*Format_doc0uy@GmWUࠠ%Ident0>ЃzV)j⠠,Identifiable0]/*N +0Dw\jۛv7Internal_variable_names0TbgѹG+L&Lambda0x_edT-uq,Linkage_name0tԈK1G)Load_path0,j " nn7ݠ(Location0nBɊOn?7~ؠ)Longident0wP q;ɡ$Misc0Bpg]?[q0Mutable_variable0CQᷧ$'Numbers0 q޷He+Outcometree0BuG^)= 9c )Parameter0zk^f2my19)Parsetree0v o[pY Y$Path0k.tbGmᠠ)Primitive0dU=\I/}*Projection02hS xj56!80f!d171g2Set_of_closures_id0LbO`ܩ&M6Set_of_closures_origin0!YA _XO %Shape0 M``ll0Static_exception0Jmyrqܒx-8ɞ&Stdlib0t0VoS%{<F:.Stdlib__Buffer0,I[?z.Stdlib__Digest0#z25I*.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Either0HD ?|>.Stdlib__Format00FClW/Stdlib__Hashtbl0(L%bԠ-Stdlib__Int640q=cT?Q1ˠ,Stdlib__Lazy0$1mlࠠ.Stdlib__Lexing0^m|e+Stdlib__Map0*4ɇ2ɠ%Subst0=aqT/!p+&Switch0,9QKu @&Symbol03E?Y7(#Tag0&b rٍ.Type_immediacy00$ jbv\"k&%Types0"|Vȷ`X )Unit_info0'T Χ@aR.0``ݗXFR⠠(Variable0?l猵eY(Warnings0Ef{&@@AVC@@,@3@@'@@ð@cm@ @ @@J@ u Αذ  (@@   % /@ f p@@P"@ 4@ 1@@@A@@