Caml1999I037(**Freshening!t;@@@A@@@@@ !middle_end/flambda/freshening.mliV''V'-@@@@ @@A@%subst;@@@A@@@L@@@@W..W.<@@@@A@A@%empty @@@M@[[@@'B@@(is_empty@@@@N@@O$boolE@@@P@@Q@2]3]@@=C@@(activate@3@@@R@@S6@@@T@@U@EbFb@@PD@@ !empty_preserving_activation_state@F@@@V@@WI@@@X@@Y@XfYf6@@cE@@,add_variable@Y@@@Z@@[@(Variable!t@@@\@@]@ !t@@@_@t@@@^@@`@@a@@b@qq@@F@@.add_variables'@@@@c@@d@$listK1!t@@@e@@@f@@g@@!t@@@i@@@j@@@@h@@k@@l@@m@u 1 1x ` x@@G@@-add_variables@@@@n@@o@5@h!t@@@p@!a@u@@q@@@r@@s@N@!t@@@v@@@w@@@x@@@@t@@y@@z@@{@|    5@@H@@.add_variables3@@@@|@@}@x@!t@@@~@!a@@!b@@@@@@@@@@!t@@@@@@@@@@@7@@@@@@@@@@FC  GF  @@QI@@4add_mutable_variable@G@@@@@@0Mutable_variable!t@@@@@@ !t@@@@b@@@@@@@@@@qI 6 6rI 6 @@|J@@4add_static_exception@r@@@@@@0Static_exception!t@@@@@@ !t@@@@@@@@@@@@@@L  L  @@K@@.apply_variable@@@@@@@D!t@@@@@J!t@@@@@@@@P  P  @@L@@6apply_mutable_variable@@@@@@@v!t@@@@@|!t@@@@@@@@S  S  ]@@M@@6apply_static_exception@@@@@@@k!t@@@@@q!t@@@@@@@@V  V  @@N@@ $rewrite_recursive_calls_with_symbols@@@@@@@'Flambda5function_declarations@@@@@3make_closure_symbol@*Closure_id!t@@@@@&Symbol!t@@@@@@@"5function_declarations@@@@@@@@@@8^9b@@CO@@Ӡ+Project_var@!t;@@@A@@@@@HyIy@@@@SP@A@%empty@@@/@U|HJV|HW@@`Q@@'compose'earlier@@@0@@1%later@@@2@@3@@@4@@5@@6@st@@~R@@0apply_closure_id@/@@@7@@8@e!t@@@9@@:k!t@@@;@@<@@=@@@S@@8apply_var_within_closure@O@@@>@@?@2Var_within_closure!t@@@@@@A!t@@@B@@C@@D@FH@@T@@%print@&Stdlib&Format)formatter@@@E@@F@@@@G@@H$unitF@@@I@@J@@K@@@U@@@@f&&@V@@@ "apply_function_decls_and_free_vars@@@@@@@#Map!t@.specialised_to@@@@!a@@@@@@@@@5function_declarations@@@@@7only_freshen_parameters@@@@@@#Map!t@.specialised_to@@@͠@1@@@@@Ϡ@)5function_declarations@@@ˠ@5@@@ʠ@ !t@@@@@@@@@@@@@@L  M!@@WW@@0does_not_freshen@M@@@@@@ɠ!t@@@@@@@@?@@@@@@@@o##p#V@@zX@@%print@&Format)formatter@@@@@@{@@@@@@@@@@@@@XXX@@Y@@;freshen_projection_relation@0#Map!t.specialised_to@@@@@@@@*freshening@@@@@2closure_freshenings!t@@@@@S#Map!t.specialised_to@@@@@@@@@@@@@  @@Z@@ɠ+Stdlib__Sys0b'8=OIn.Stdlib__String0 w_OA4D"Q~~+Stdlib__Set0ܔ@Z8XWaa2+Stdlib__Seq0?72#[O.Stdlib__Result0p~ !ԥ//+Stdlib__Map0*4ɇ2.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Digest0#z25I*.Stdlib__Buffer0,I[?z&Stdlib0t0VoS%{<F:0Static_exception0Jmyrqܒx-8ɞ%Shape0 M``ll6Set_of_closures_origin0!YA _XO 2Set_of_closures_id0LbO`ܩ&M*Projection02hS xj56)Primitive0dU=\I/}$Path0k.tbGmᠠ)Parsetree0v o[pY Y)Parameter0zk^f2my19+Outcometree0BuG^)= 9c 'Numbers0 q޷He0Mutable_variable0CQᷧ$$Misc0Kvor#2D)Longident0wP q;ɡ(Location0nBɊOn?7~ؠ)Load_path0,j " nn7ݠ,Linkage_name0tԈK1G&Lambda0x_edT-uq7Internal_variable_names0TbgѹG+L,Identifiable0]/*N %Ident0>ЃzV)j⠠*Format_doc0uy@GmWUࠠ'Flambda0VJ͟#Env02O<r7 )Debuginfo0_ |PooGq*Data_types0v\3,Svh0Compilation_unit0Dl ]wN*Cmi_format0{)ݬ[ƥ  .Closure_origin0!Havl5"_*Closure_id0 (?$/Closure_element0ǔf#M2Clambda_primitives0|& %ZIǝz0CamlinternalLazy0zY# #4#-8CamlinternalFormatBasics0|.e1R$|o5Build_path_prefix_map0zd,J4z(Asttypes0eT$BbRM dc/Allocated_const0/vVǟx@@@Caml1999T037yKEC*Freshening-ocaml.warning !middle_end/flambda/freshening.mliQQ@2+a-4-9-30-40-41-42 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@A@*ocaml.textn $ Freshening of various identifiers. SS@@@@@@A+!tAV',V'-@@;@@@A@@@@@V''@)ocaml.doc I A table used for freshening variables and static exception identifiers. UU&@@@@@@@@@@@@@A@@@@@@@@а"@A+%substBW.3W.8@@;@@,A7@@@|@@@@W..W.<@@@@A@@@Aг !tW.; @@3@GA;@@@A#@@@@{@@@@@@@@A@@@@3@ @A@%empty[[@г`!t$[%[@@ @@@3@%?9@A@@@.[ @e P The freshening that does nothing. This is the unique inactive freshening. ;Y>> [new_var] to the freshening. If a renaming [other_var] -> [var] or [symbol] -> [var] was already present in [t], it will also add [other_var] -> [new_var] and [symbol] -> [new_var]. If [t] is inactive, this is the identity. h88p@@@@@@@F@@)@V@@@@@@u.add_variables'1u 1 5u 1 C@б@г!tv D Iv D J@@ @@@3@8@A@@б@г$listw K [w K _@г!t(Variablew K Pw K X@ w K Yw K Z@@@@@@$ @@@ @@@)@@В@гG$listx ` px ` t@г!t(Variablex ` ex ` m@ x ` nx ` o@@@@@@M @@@ @@@R@@@гO!tx ` wx ` x@@ @@@a@@@@@ @@h& @@@H@@ @@mT@@@u@@ @@rx@@@,u 1 1@c Q Like [add_variable], but for multiple variables, each freshened separately. 9s:t  0@@@@@@@FG@@)@s@@@@@@-add_variables2P|  Q|  @б@г!t[}  \}  @@ @@@3JIIJJJJJ@8@A@@б@гǠ$listl~  m~  @В@гD!t(Variable~~  ~  @ ~  ~  @@@@@@( @@@А!a@C@3~  ~  @@@@@@@<@@@8 @@@A~  6@@В@г $list  -  1@В@г!t(Variable    $@   %  &@@@@@@j @@@А!aBp  )  +@@@@@K@@y@@@3 @@@~  1@@@г%!t  4  5@@ @@@@@@@@ @@ @@@]@@ @@Y@@@@@ @@@@@|  @9 a Like [add_variables'], but passes through the second component of the input list unchanged. z z z{  @@@@@@@H@@)@IՐ@@@@@@.add_variables33&C  'C  @б@гm!t1D  2D  @@ @@@3      @8@A@@б@г$listBE  CE  @В@г!t(VariableTE  UE  @ XE  YE  @@@@@@( @@@А!a@C@3jE  kE  @@@А!b@C@@wE  xE  @@@@"@@@@K. @@@G @@@PE  E@@В@г$listF  F  @В@гk!t(VariableF  F  @ F  F  @@@@@@y @@@А!aQF  F  @@@А!bLF  F  @@@@@b@W@@$ @@@= @@@F  ;@@@г!tF  F  @@ @@@@@@@@ @@ @@@g@@ @@c@@@@@ @@@@@C  @( a Like [add_variables'], but passes through the other components of the input list unchanged. A 7 7B  @@@@@@@ I@@)@8Đ@@@@@@4add_mutable_variableHI 6 :I 6 N@б@г\!t I 6 Q!I 6 R@@ @@@3@8@A@@б@г0Mutable_variable!t0Mutable_variable7I 6 V8I 6 f@ ;I 6 g<I 6 h@@@@@@  @@В@г!t0Mutable_variableQI 6 lRI 6 |@ UI 6 }VI 6 ~@@@@@@ 6 @@@г!teI 6 fI 6 @@ @@@ E@@@@@ @@ L! @@@8@@  @@ Q@@@@Y@@  @@ V\@@@~I 6 6@ 1 Like [add_variable], but for mutable variables. H  H  5@@@@@@@J@@)@Q@@@@@@u4add_static_exceptionUL  L  @б@г預!tL  L  @@ @@@ 3@8@A@@б@г0Static_exception!t0Static_exceptionL  L  @ L  L  @@@@@@  @@В@г!t0Static_exceptionL  L  @ L  L  @@@@@@ 6 @@@г.!tL  L  @@ @@@ E@@@@@ @@ L! @@@8@@  @@ Q@@@@Y@@  @@ V\@@@ L  @B > As for [add_variable], but for static exception identifiers. K  K  @@@@@@@%K@@)@Rސ@@@@@@u.apply_variableV/P  0P  @б@гv!t:P  ;P  @@ @@@ 3)(()))))@8@A@@б@г!t(VariableOP  PP  @ SP  TP  @@@@@@  @@г+!t(VariableeP  fP  @ iP  jP  @@@@@@ 0 @@@@@ @@ 5& @@@=@@  @@ :@@@@|P  @ [apply_variable t var] applies the freshening [t] to [var]. If no renaming is specified in [t] for [var] it is returned unchanged. N  O V @@@@@@@L@@#@O@@@@@@Y6apply_mutable_variableWS  S  -@б@г砐!tS  0S  1@@ @@@ 3@r8@A@@б@г!t0Mutable_variableS  5S  E@ S  FS  G@@@@@@  @@г!t0Mutable_variableS  KS  [@ S  \S  ]@@@@@@ 0 @@@@@ @@ 5& @@@=@@  @@ :@@@@S  @$ 5 As for [apply_variable], but for mutable variables. R  R  @@@@@@@M@@#@4@@@@@@Y6apply_static_exceptionXV  V  @б@гX!tV  V  @@ @@@ 3        @r8@A@@б@гo!t0Static_exception1V  2V  @ 5V  6V  @@@@@@  @@г!t0Static_exceptionGV  HV  @ KV  LV  @@@@@@ 0 @@@@@ @@ 5& @@@=@@  @@ :@@@@^V  @ @ As for [apply_variable], but for static exception identifiers. kU _ _lU _ @@@@@@@xN@@#@1@@@@@@Y $rewrite_recursive_calls_with_symbols^^!@б@гɠ!t_"'_"(@@ @@@ 3|{{|||||@r8@A@@б@г'Flambda5function_declarations'Flambda`).`)5@ `)6`)K@@@@@@ @@б3make_closure_symbolб@г*Closure_id!t*Closure_idaLfaLp@ aLqaLr@@@@@@[: @@г&Symbol!t&SymbolaLvaL|@ aL}aL~@@@@@@R @@@ @@@@W( @@гS5function_declarations'Flambdabb@ bb@@@@@@m @@Q@@@@r aLQ @@@_@@ @@xg@@@@@ @@}@@@ ^@I  Replace recursive accesses to the closures in the set through [Symbol] by the corresponding [Var]. This is used to recover the recursive call when importing code from another compilation unit. If the renaming is inactive, this is the identity.  X   ]@@@@@@@ ,O@@)@Y吠@@@@@@+Project_var~C 8f&- 9f&8@ EV@@БA+!tD Gy Hy@@;@@A@@@@@ Ky@  A table used for freshening of identifiers in [Project_closure] and [Move_within_set_of_closures] ("ids of closures"); and [Project_var] ("bound vars of closures") expressions. This information is propagated bottom up and populated when inlining a function containing a closure declaration. For instance, [let f x = let g y = ... x ... in ... g.x ... (Project_var x) ... g 1 ... (Apply (Project_closure g ...)) ] If f is inlined, g is renamed. The approximation of g will carry this table such that later the access to the field x of g and selection of g in the closure can be substituted.  Xg?A Yx@@@@@@@@@ eP@@@A@ @@@@@@@3 P O O P P P P P@X@A!@%empty  q|HN r|HS@г3!t z|HV {|HW@@ @@@3 i h h i i i i i@>8@A@@@ |HJ @@ Q@@ @@'composeà  @б'earlierгU!t  @@ @@@3        @#6!@A@@б%laterгh!t  @@ @@@@@гu!t  @@ @@@ @@@@@@%  @@7.@@ @@+ @@@ @ ! Composition of two freshenings.  ~Y[ ~Y@@@@@@@ R@@$@ @@@@@@K0apply_closure_idĠ  @б@г!t  @@ @@@3        @d{8@A@@б@гT!t*Closure_id  @   @@@@@@ @@гj!t*Closure_id * +@  . /@@@@@@0 @@@@@@@5& @@@=@@  @@ :@@@@ A@x  Freshen a closure ID based on the given renaming. The same ID is returned if the renaming does not affect it. If dealing with approximations, you probably want to use [Simple_value_approx.freshen_and_check_closure_id] instead of this function.  N O@@@@@@@ [S@@#@ @@@@@@Y8apply_var_within_closureנ eFL fFd@б@г)!t pel qem@@ @@@ 3 _ ^ ^ _ _ _ _ _@r8@A@@б@г2Var_within_closure!t2Var_within_closure nu n@  n n@@@@@@ @@г!t2Var_within_closure  @   @@@@@@2 @@@@@@@7& @@@?@@ @@<B@@@ FH@될 = Like [apply_closure_id], but for variables within closures.   E@@@@@@@ T@@#@ @@@@@@[%print}  @б@г ;&Format)formatter  @   @@@@@@o3        @}A@A @@б@г!t  @@ @@@p@@г $unit  @@ @@@q@@@@@r@@s# @@@+@@t @@u(3@@@ @@ (U@@@@.@A@@W@7@w@W@@3        @;Y@A3        @@A 0f&; 1@@@ 3f&&@@ "apply_function_decls_and_free_vars =  > 1@б@г !t H27 I28@@ @@@v3 7 6 6 7 7 7 7 7@@ A@@@i@@C@@@+#@A@@б@г2#Map!t(Variable o9\ p9d@  s9e t9h@@ x9i y9j@ @В@г.specialised_to'Flambda 9? 9F@  9G 9U@@@@@@H @@@А!a@E@S 9X 9Z@@@@@@@\@@@J @@@a 9>7@@б@г5function_declarations'Flambda kp kw@  kx k@@@@@@z @@б7only_freshen_parametersг r$bool  @@ @@@@@В@г#Map!t(Variable  @   @@  @ @В@гf.specialised_to'Flambda  @   @@@@@@Ű @@@А!a}˰  @@@@@@@԰@@@E @@@ٰ '2@@@г5function_declarations'Flambda 5 6@  9 :@@@@@@ @@@г !t I  J @@ @@@@@@г"!t+Project_var \ ]@  `  a!@@@@@@ @@@@I@1@$@@@$K@@@@@@) w@@@@@ @@/@@@@@ @@4!@@@<@@ @@9?&@@@   )@@ W@@+@@?0does_not_freshen #' #7@б@г ۠!t #: #;@@ @@@3        @Xm@A@@б@г $list #J #N@г !t(Variable #? #G@  #H #I@@@@@@$ @@@ @@@)@@г t$bool #R #V@@ @@@6@@@@@@@;" @@@C@@ @@@F@@@ ##@@ X@@@@F%print X\ Xa@б@г U&Format)formatter Xd Xj@  Xk Xt@@@@@@3        @h}(@A @@б@г S!t Xx Xy@@ @@@@@г $unit $X} %X@@ @@@@@@@@@@# @@@+@@ @@(3@@@ 6XX@@ BY@@@@.;freshen_projection_relation A  B )@б@г #Map!t(Variable T*F U*N@  X*O Y*R@@ ]*S ^*T@ @г.specialised_to'Flambda l*/ m*6@  p*7 q*E@@@@@@3 ` _ _ ` ` ` ` `@lD@A @@@4 @@@ @@б*fresheningг Š!t Ue Uf@@ @@@@@б2closure_fresheningгd!t+Project_var g g@  g g@@@@@@2 @@г {#Map!t(Variable  @   @@  @ @г..specialised_to'Flambda  @   @@@@@@d @@@2@@@i@@Q?@@ @@n gl$@@h_@@ @@t UZ*@@@w@@ @@z/@@@   2@ * P N.B. This does not freshen the domain of the supplied map, only the range. @@@@@@@ Z@@B@ : Ɛ@@@@@@@@@@@ @@C@@@F@@[@@H@@@ ; 5A@  A@  @  @  Z@ : @  @ f @  @  @@s@@y*@ @ @@@@@@;@4@3@2@@3@4@A@ H************************************************************************,A@@-A@L@ H 2BMM3BM@ H OCaml 8C9C@ H >D?D3@ H Pierre Chambart, OCamlPro DE44EE4@ H Mark Shinwell and Leo White, Jane Street Europe JFKF@ H PGQG@ H Copyright 2013--2016 OCamlPro SAS VHWHg@ H Copyright 2014--2016 Jane Street Group LLC \Ihh]Ih@ H bJcJ@ H All rights reserved. This file is distributed under the terms of hKiKN@ H the GNU Lesser General Public License version 2.1, with the nLOOoLO@ H special exception on linking described in the file LICENSE. tMuM@ H zN{N5@ H************************************************************************O66O6@ %* Freshening of various identifiers.  ͠ J* A table used for freshening variables and static exception identifiers.  Q* The freshening that does nothing. This is the unique inactive freshening.  Q * Activate the freshening. Without activation, operations to request freshenings have no effect (cf. the documentation below for [add_variable]). As such, the inactive renaming is unique.  נ d* Given the inactive freshening, return the same; otherwise, return an empty active freshening.  g* [add_variable t var] If [t] is active: It returns a fresh variable [new_var] and adds [var] -> [new_var] to the freshening. If a renaming [other_var] -> [var] or [symbol] -> [var] was already present in [t], it will also add [other_var] -> [new_var] and [symbol] -> [new_var]. If [t] is inactive, this is the identity.   R* Like [add_variable], but for multiple variables, each freshened separately.  _ b* Like [add_variables'], but passes through the second component of the input list unchanged.  b* Like [add_variables'], but passes through the other components of the input list unchanged.  2* Like [add_variable], but for mutable variables.   ?* As for [add_variable], but for static exception identifiers.  * [apply_variable t var] applies the freshening [t] to [var]. If no renaming is specified in [t] for [var] it is returned unchanged.  6* As for [apply_variable], but for mutable variables.  A* As for [apply_variable], but for static exception identifiers. B * Replace recursive accesses to the closures in the set through [Symbol] by the corresponding [Var]. This is used to recover the recursive call when importing code from another compilation unit. If the renaming is inactive, this is the identity.  } CR-soon mshinwell for mshinwell: maybe inaccurate module name, it freshens closure IDs as well. Check use points though de%@ * A table used for freshening of identifiers in [Project_closure] and [Move_within_set_of_closures] ("ids of closures"); and [Project_var] ("bound vars of closures") expressions. This information is propagated bottom up and populated when inlining a function containing a closure declaration. For instance, [let f x = let g y = ... x ... in ... g.x ... (Project_var x) ... g 1 ... (Apply (Project_closure g ...)) ] If f is inlined, g is renamed. The approximation of g will carry this table such that later the access to the field x of g and selection of g in the closure can be substituted. a # The freshening that does nothing. { {G@ "* Composition of two freshenings. 堠 * Freshen a closure ID based on the given renaming. The same ID is returned if the renaming does not affect it. If dealing with approximations, you probably want to use [Simple_value_approx.freshen_and_check_closure_id] instead of this function. w >* Like [apply_closure_id], but for variables within closures.  . CR-soon mshinwell for mshinwell: add comment  @ Q* N.B. This does not freshen the domain of the supplied map, only the range. Ѡ , CR-someday mshinwell: consider fixing that  @@-./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 T/home/teraram/ci/builds/workspace/parallel-build/flambda/false/label/ocaml-manycores >10/.-,+*)('&%$#"! @@0#AQ3@@@/Allocated_const0/vVǟx(Asttypes0eT$BbRM dc5Build_path_prefix_map0zd,J4z8CamlinternalFormatBasics0|.e1R$|o0CamlinternalLazy0zY# #4#-2Clambda_primitives0|& %ZIǝz/Closure_element0ǔf#M*Closure_id0 (?$.Closure_origin0!Havl5"_*Cmi_format0{)ݬ[ƥ  0Compilation_unit0Dl ]wN*Data_types0v\3,Svh)Debuginfo0_ |PooGq#Env02O<r7 ֐0VJ͟*Format_doc0uy@GmWUࠠ0xW("-9wVԠ%Ident0>ЃzV)j⠠,Identifiable0]/*N 7Internal_variable_names0TbgѹG+L&Lambda0x_edT-uq,Linkage_name0tԈK1G)Load_path0,j " nn7ݠ(Location0nBɊOn?7~ؠ)Longident0wP q;ɡ$Misc0Kvor#2D }0CQᷧ$'Numbers0 q޷He+Outcometree0BuG^)= 9c )Parameter0zk^f2my19)Parsetree0v o[pY Y$Path0k.tbGmᠠ)Primitive0dU=\I/}*Projection02hS xj562Set_of_closures_id0LbO`ܩ&M6Set_of_closures_origin0!YA _XO %Shape0 M``ll &0Jmyrqܒ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+&Symbol03E?Y7(#Tag0&b rٍ.Type_immediacy00$ jbv\"k&%Types0"|Vȷ`X )Unit_info0'T Χ@aR2Var_within_closure0``ݗXFR⠠*0?l猵eY(Warnings0Ef{&@0xW("-9wVA\C9@1 Z ذ  gs@.@ | \ m 4@@oEm@  @ΐ @: x@W #   i Y @\f@{ư@3 $@ߐC@i@@@P@@