Caml1999I037%(*+Export_infoӠ!A pA3Simple_value_approx@ "middle_end/flambda/export_info.mliVV=@@@@@5value_string_contents q;@@(Contents&stringQ@@@@@Y\^Y\r@@%B@2Unknown_or_mutable@@ Zsu!Zs@@.C@@@A@@@@@$X??@@@@1A@A@,value_string r;@@(contents@@-@@@5]6]@@CE@$size@@#intA@@@C^D^@@QF@@@A@@@@@G\H_@@@@UD@A@:value_float_array_contents s;@@(Contents%arrayJ&optionL%floatD@@@@@@@@@@@kblb@@yH@2Unknown_or_mutable@@tcuc1@@I@@@A@@@@@xa@@@@G@A@1value_float_array t;@@(contents@@;@@@fNPfNv@@K@$size@@T@@@gwygw@@L@@@A@@@@@e33h@@@@J@A@%descr u;@@+Value_block##Tag!t@@@[&approx x@@@@@@@@kk@@Q@3Value_mutable_block2!t@@@@@@@@ll@@R@)Value_int3@@@@@mm@@S@*Value_char4$charB@@@@@nn@@T@+Value_float5@@@ @@oo(@@ U@1Value_float_array6@@@ @@ p)+ p)S@@V@/Value_boxed_int7!)boxed_int!a@ @@@ @@@@ 'qTV(qT@@5W@,Value_string @@@@@5r6r@@CX@-Value_closure-value_closure v@@@@@EsFs@@SY@5Value_set_of_closures5value_set_of_closures w@@@@@UtVt@@cZ@3Value_unknown_descr@@^u_u@@l[@@@A@@@@@bj@@@@oM@A@%;@@*closure_id@@*Closure_id!t@@@ux-/vx-I@@\@/set_of_closures@@.@@@yJLyJt@@]@@@A@@@@@wzuv@@@@N@B@8;@@2set_of_closures_id@@2Set_of_closures_id!t@@@}}@@^@*bound_vars @@2Var_within_closure#Map!t@@@@@@~~@@_@)free_vars@@(Variable#Map!t'Flambda.specialised_to@@@@@@ '@@`@'results@@e#Map!t#@@@@@@@ ( *@ ( L@@a@.aliased_symbol@@&Symbol!t@@@@@@A M OA M p@@b@@@A@@@@@|xxB q r@@@@O@B@C;@@-Value_unknown@@L ^ `L ^ o@@c@(Value_id)Export_id!t@@@!@@M p rM p @@#d@,Value_symbol6!t@@@ @@%N  &N  @@3e@@@A@@@@@)K Q Q@@@@6P@B@!t y;@@0sets_of_closures?@@#Map!t(5function_declarations@@@1@@@2DR  ER  M@@Rg@&values@@0Compilation_unit#Map!tJ#Map!t;@@@.@@@/@@@0cT  dT  @@qh@)symbol_id@@#Map!tf!t@@@,@@@-zV  {V  @@i@*offset_fun@@#Map!tM@@@*@@@+X B DX B f@@j@)offset_fv@@#Map!tb@@@(@@@)Z  Z  @@k@1constant_closures6@@@#Set!t@@@'\\-@@l@0invariant_paramsh@@-#Map!t#Map!t#Set!t@@@$@@@%@@@&^ce^c@@m@)recursivei@@O#Map!t0#Set!t@@@"@@@#a!aU@@n@@@@@@@@@Q  bVW@@@@f@A@)transient z;@@0sets_of_closures &@@r#Map!t5function_declarations@@@A@@@Betvet@@p@&values '@@#Map!t#Map!t@@@>@@@?@@@@,f-f@@:q@)symbol_id (@@L#Map!t/!t@@@<@@@=CgDg@@Qr@0invariant_params )@@#Map!t#Map!t#Set!t@@@9@@@:@@@;ehfhh@@ss@)recursive *@@#Map!t#Set!t@@@7@@@8~iikii@@t@:relevant_local_closure_ids +@@#Set!t@@@6jj@@u@=relevant_imported_closure_ids ,@@*#Set!t@@@5kk@@v@ "relevant_local_vars_within_closure ^@@#Set!t@@@4llF@@w@ %relevant_imported_vars_within_closure _@@#Set!t@@@3mGImG@@x@@@@@@@@@dYYn@@@@o@A@%empty {@@@C@qq@@y@@0opaque_transient |0compilation_unit!t@@@D@@E+root_symbol!t@@@F@@G@@@H@@I@@J@sv;I@@z@@&create }0sets_of_closurest#Map!t5function_declarations@@@K@@@L@@M&values#Map!t#Map!t@@@N@@@O@@@P@@Q)symbol_idJ#Map!t-!t@@@R@@@S@@T*offset_fun#Map!t@@@U@@@V@@W)offset_fv#Map!t%@@@X@@@Y@@Z1constant_closures#Set!t@@@[@@\0invariant_params#Map!t#Map!t#Set!t@@@]@@@^@@@_@@`)recursive #Map!t#Set!t@@@a@@@b@@c@@@d@@e@@f@@g@@h@@i@@j@@k@@l@y}}/5@@{@@0create_transient ~0sets_of_closures/#Map!t5function_declarations@@@m@@@n@@o&values#Map!t#Map!t@@@p@@@q@@@r@@s)symbol_id#Map!t!t@@@t@@@u@@v0invariant_paramss#Map!tT#Map!t\#Set!t@@@w@@@x@@@y@@z)recursive#Map!tt#Set!t@@@{@@@|@@}:relevant_local_closure_ids#Set!t@@@~@@=relevant_imported_closure_ids#Set!t@@@@@ "relevant_local_vars_within_closure#Set!t@@@@@ %relevant_imported_vars_within_closure#Set!t@@@@@{@@@@@@@@@@@@@@@@@@@@@@n77oky@@||@@.t_of_transient @@@@@@'program'program@@@@@0local_offset_fun$#Map!t[@@@@@@@@/local_offset_fv#Map!tn@@@@@@@@3imported_offset_funJ#Map!t@@@@@@@@2imported_offset_fv)#Map!t@@@@@@@@1constant_closuresp#Set!t@@@@@@@@@@@@@@@@@@@@@@@XX@@}@@%merge @)@@@@@@0@@@@@3@@@@@@@@@@~@@0find_description @C@@@@@@!t@@@@@@@@@@@@@BBoy@@,@@,nest_eid_map @#Map!t!a@@@@@@#Map!t4#Map!t@@@@@@@@@JK@@X@@@7print_approx_components @&Stdlib&Format)formatter@@@@@)symbol_id#Map!tb!t@@@@@@@@&values0#Map!tx#Map!ti@@@@@@@@@@@@$listK!t@@@@@@@@$unitF@@@@@@@@@@@@<<@@A@@,print_approx @^&Format)formatter@@@@@@@@@@Ӡ@4!t@@@@@@@@@@2@@@@@@@@-@@B@@/print_functions @&Format)formatter@@@@@@%@@@@@Q@@@@@@@@...a@@C@@-print_offsets @&Format)formatter@@@@@@D@@@@@p@@@@@@@@bbb@@$D@@)print_all @&Format)formatter@@@@@@@g@@@렠@R!t@@@@@@@@@@@@@@@@@@FG@@TE@@0print_raw_approx @&Format)formatter@@@@@@@@@@@@@@@@@@@e--f-f@@sF@@/print_raw_descr @&Format)formatter@@@@@@Z@@@@@@@@@@@@@ggg@@G@@@O+Export_info0t?MH\(Warnings0Ef{&(Variable0?l猵eY2Var_within_closure0``ݗXFR⠠)Unit_info0'T Χ@aR%Types0"|Vȷ`X .Type_immediacy00$ jbv\"k&#Tag0&b rٍ&Symbol03E?Y7(%Subst0=aqT/!p+-Stdlib__Uchar0=H^V9>ɠ+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ɞ3Simple_value_approx0 c[k%S\KѠ%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ᷧ$$Misc0Bpg]?[q)Longident0wP q;ɡ(Location0nBɊOn?7~ؠ)Load_path0,j " nn7ݠ,Linkage_name0tԈK1G&Lambda0x_edT-uq7Internal_variable_names0TbgѹG+L,Identifiable0]/*N %Ident0>ЃzV)j⠠*Freshening0xW("-9wVԠ*Format_doc0uy@GmWUࠠ'Flambda0VJ͟)Export_id0CJ9DןRa7ݷ$E#Env0S B2)Debuginfo0_ |PooGq*Data_types0v\3,Svh0Compilation_unit0Dl ]wN*Cmi_format0`M{?w}@.Closure_origin0!Havl5"_*Closure_id0 (?$/Closure_element0ǔf#M2Clambda_primitives0|& %ZIǝz0CamlinternalLazy0zY# #4#-8CamlinternalFormatBasics0|.e1R$|o5Build_path_prefix_map0DGl}%Y5Lhi(Asttypes0eT$BbRM dc/Allocated_const0/vVǟx@@@Caml1999T037RLoj2C+Export_info-ocaml.warning "middle_end/flambda/export_info.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 k Exported information (that is to say, information written into a .cmx file) about a compilation unit. ST@@@@@@!AAV&V'@@@AХ3Simple_value_approx3Simple_value_approxV*V=@ @@@V@@A+5value_string_contentsBX?DX?Y@@;@@(Contents@@@{@@Y\^Y\r@@B@2Unknown_or_mutable@@ZsuZs@@C@@@A@@@@@X??@@@@ A@@#Y\`Y\h@@г&stringY\l@@$3@RAJ@?M7;@@@A@@@@@@@@@A &@@@@(@#$$Zsw"@!@@@%@@A@!@@3@ @A"%@A+,value_stringC(\)\@@;@@(contents@@V@@@5]6]@@BE@$size@@@@@A^B^@@NF@@@A@@@@@E\F_@@@@RD@@#M]@@@Ш@г 5value_string_contentsV]W]@@(3BAABBBBB@J~x7;@@@A@@@@@@@@@A@@0@@@,@#((#d^@"@@Ш@г+#intm^n^@@3@@6@@@2@@A@.@@3\[[\\\\\@@A/.@A+:value_float_array_contentsD}a~a@@;@@(ContentsР;@@@@@@@@@@@bb@@H@2Unknown_or_mutable@@cc1@@I@@@A@@@@@a@@@@G@@#%%bb@@г'%arrayb@г+&optionbb@г0%floatbb @@83@pQ;@@@A@@@@@*@@@(@A@@@B @@@G 8@@@@:@#66c4@3@@@7@@A@3@@3@ @A47@A+1value_float_arrayEe38e3I@@;@@(contents@@r@@@fNPfNv@@K@$size@@@@@gwygw@@L@@@A@@@@@e33h@@@@ J@@#fNX@@@Ш@г :value_float_array_contentsfN[fNu@@(3@J7;@@@A@@@@@@@@@A@@0@@@,@#((#gw}@"@@Ш@г+#int%gw&gw@@3@@6@@@2@@A@.@@3@@A/.@A+%descrF5j6j@@;@@+Value_block##Tag!t@@@&approx"F@@@@@@ @@TkUk@@aQ@3Value_mutable_block2!t@@@ +@@@ @@iljl@@vR@)Value_int39@@@ @@wmxm@@S@*Value_char4>@@@@@nn@@T@+Value_float5:@@@@@oo(@@U@1Value_float_array6@@@@@p)+p)S@@V@/Value_boxed_int7)boxed_int!a@ 7G@ 3@@@ 5G@ 8@@@@ :qTVqT@@W@,Value_string@@@ ;@@rr@@X@-Value_closure-value_closure F@@@ <@@ss@@Y@5Value_set_of_closures5value_set_of_closures!F@@@ =@@tt@@Z@3Value_unknown_descr@@uu@@[@@@A@@@@@j@@@@M@@#ŠŰkk@@гǠ#Tagkk@̰kk@@@3@ ?9;@@@A@@@@@#@@@!C;@@@A@@@@@ w!zuv@@@@-N@9;@@@A@@@@@&|xx'B q r@@@@3O@;@@@A@@@@@,K Q Q-N  @@@@9P@@A"@@г預%array7k@г&approx?k@k@@,@@@-@@@@@#GlHl@@г#TagSlTl@WlXl@@@E@@г#intbl@@N@@@@@#hmim@@г#intrm@@^@@@@@#xnyn@@г$charn @@n@@@@@#oo@@г%floato#@@~@@@@@#p)-p)>@@г1value_float_arrayp)B@@@@@@@#qTXqTg@@г!AqTmqTn@ qToqTx@@А qTjqTl@@@ @@А!aqT{qT}@@@г%descrqT@@@@@#rr@@г,value_stringr@@̰@@@@@#ss@@г-value_closures@@ܰ@@@@@#tt@@г5value_set_of_closurest@@@@@@@#u@@@@@@A@@+00 w w(@@;@@*closure_id@@*Closure_id!t@@@ ˰x-/x-I@@*\@/set_of_closures@@=@@@ ΰ)yJL*yJt@@6]@@@A@@@@@ @@@ @#1x-9@@@Ш@г *Closure_id0Compilation_unitwT  xT  @D{T  |T  @@HT  T  @ @гK)Export_idT  T  @ST  T  @@WT  T  @ @гZ%descrT  T  @@bT@@@kU @@@vV%@@y@@LxY@aj_^@^^@@@^@^@#ZZJV  @;@@Ш@г]&SymbolV  V  @eV  V  @@iV  V  @ @гl)Export_idV  V  @sV  V  @@@{@@@ @@@@P@xvu@uu@@@u@u@#qqcX B N@T@@Ш@гt*Closure_id X B U X B _@| X B ` X B c@@ X B d X B e@ @г#int X B Q X B T@@ư@@@ǰ @@@@P@ې@@@@@@#u (Z  @f@@Ш@г2Var_within_closure 5Z   6Z  @ 9Z   :Z  @@ >Z   ?Z  @ @г#int HZ   IZ  @@@@@ @@@@P@4 @@@@@@# ]\@@@Ш@г*Closure_id j\ k\&@ n\' o\*@@ s\+ t\,@ @@' @@@@SW*@@# }^cu@@@Ш@г2Set_of_closures_id ^c ^c@ ^c ^c@@ ^c ^c@ @г(Variable ^c ^c@ ^c ^c@@ð ^c ^c@ @гƠ(Variable ^cx ^c@ΰ ^c ^c@@Ұ ^c ^c@ @@u @@@v@@@w3@@@@Uz@@#ӠӰ a*@@@Ш@г֠2Set_of_closures_id a< aN@ް aO aR@@ aS aT@ @г堡(Variable a- a5@ a6 a9@@ a: a;@ @@ @@@@@@@U@@@@@򠰠 Ð@@@@@@@3        @@A@A+)transient %H dY^ dYg@@;@@0sets_of_closures &@@#Map!tk5function_declarations@@@}@@@}  /etv 0et@@  h?@ @@`ǰ @@@iȰ@@@rɰ3@@u@@}@[@#WWE iit@D@@Ш@гZ2Set_of_closures_id ii ii@b ii ii@@f ii ii@ @гi(Variable iiw ii@q ii ii@@u ii ii@ @@ @@@@@@@}"@z@#vvm j@l@@Ш@гy*Closure_id )j *j@ -j .j@@ 2j 3j@ @@! @@@@}%$@@#} <k@|@@Ш@г*Closure_id Ik Jk@ Mk Nk@@ Rk Sk@ @@A @@@@}(D@@# \l)@@@Ш@г2Var_within_closure il- jl?@ ml@ nlC@@ rlD slE@ @@a @@@@d@@# |mGn@@@Ш@г2Var_within_closure mGq mG@ mG mG@@ mG mG@ @@ @@@@@@@@@@@3        @@A@%empty  q q@г!t q q@@ @@@y3        @@A@@@ q @ A Export information for a compilation unit that exports nothing.  p p@@@@@@@ y@@@ @@@@@@!0opaque_transient  s s@б0compilation_unitг!t0Compilation_unit t t@  t t @@@@@@z3        @EXC@A @@б+root_symbolг'@@б:relevant_local_closure_idsг #Set!t*Closure_id z!z@ $z%z@@)z*z@ @@@@@a@@б=relevant_imported_closure_idsг !#Set!t*Closure_idCD@ GH@@LM@ @@@@@@@б "relevant_local_vars_within_closureг #Set!t2Var_within_closuref g@ jk"@@o#p$@ @@@@@@@б %relevant_imported_vars_within_closureг #Set!t2Var_within_closure%R%d@ %e%h@@%i%j@ @@@@@ʰ@@г)transientkpky@@ @@@װ@@0@@@@ܰ%* @@Y>@@ @@@@g@@ @@@@@@ @@z@@@@ @@CH#@@`@@ @@)@@o@@ @@/@@@@ @@5@@= @@ @@ LQ;@@@77>@@|@@@@@.t_of_transient X\Xj@б@гݠ)transientkpky@@ @@@3@,h@A@@б'programг k'program'Flambda z z@ zz@@@@@@ @@б0local_offset_funг #Map!t*Closure_id)*@ -.@@23@ @г#int=>@@ @@@I@@@)@@@N @@б/local_offset_fvг #Map!t2Var_within_closure[\@ _`@@de@ @г/#intop@@ @@@{@@@)@@@ @@б3imported_offset_funг k#Map!t*Closure_id@  @@!"@ @гa#int@@ @@@@@@)@@@ @@б2imported_offset_fvг <#Map!t2Var_within_closure#?#Q@ #R#U@@#V#W@ @г#int#;#>@@ @@@߰@@@)@@@ @@б1constant_closuresг #Set!t*Closure_idXoXy@ XzX}@@X~X@ @@@@@@@г !t @@ @@@@@0@@@@X] @@h?@@ @@#(@@w@@ @@%@@@@ @@+%@@@@ @@1+#@@0@@ @@71z)@@@@@@ @@=C.@@@9XX1@ Record information about the layout of closures and which sets of closures are constant. These are all worked out during the [Flambda_to_clambda] pass. FG6W@@@@@@@S}@@A@ 0 @@@@@@\%merge ]^@б@г h!thi@@ @@@3WVVWWWWW@u8@A@@б@г y!tyz@@ @@@@@г !t@@ @@@@@@@@@@# @@@+@@ @@(.@@@@  R Union of export information. Verifies that there are no identifier clashes. @@@@@@@~@@"@ k@@@@@@G0find_description  BFBV@б@г Ǡ!tW\W]@@ @@@3@`u8@A@@б@г ,!t)Export_id^c^l@ ^m^n@@@@@@ @@г%descrotoy@@ @@@'@@@@@@@, @@@4@@ @@17@@@BB@ 琠 C Look up the description of an exported value given its export ID.  A@@@@@@@@@"@ Ӑ@@@@@@P,nest_eid_map à$%@б@г #Map!t)Export_id78@ ;<@@@A@ @А!a@ I@365566666@P@AOP@@@) @@@ @@г '#Map!t0Compilation_unitef @ i j@@no@ @г #Map!t)Export_id@ @@@ @А!aJE@@@"P@@@L@@@C@@@Q /@@@Q@@  @@ VT4@@@7@ : Partition a mapping from export IDs by compilation unit. {{{@@@@@@@@@@G@ x@@@@@@u"/*@@@@@@3@1@A7print_approx_components i<@<W@б@г?&Format)formatterX\Xb@ XcXl@@@@@@# @@б)symbol_idг<#Map!t&Symbol m m@  mm@@mm@ @гq!t)Export_id!m}"m@ %m&m@@@@@@Y @@@2@@@^@@б&valuesг#Map!t0Compilation_unitDE@ HI@@MN@ @г#Map!t)Export_id`a@ de@@ij@ @г?%descrtu@@ @@@@@@)@@@ @@@J@@@6@@б@г蠐$list@г!t&Symbol@ @@@@@@Ӱ @@@ @@@ذ@@г@$unit@@ @@@@@@@@@@" @@B@@ @@@@@@ @@mr@@@@@ @@@@@<<@@A@@ @@,print_approx j@б@г>&Format)formatter@ @@@@@@3@#(@A @@б@В@г!t@@ @@@@@@гn$list!%@гW!t&Symbol!"@ %& @@@@@@7 @@@ @@@<@@@@/@ @@C4$@@г͠$unit?)@-@@ @@@P@@@@@@@UF @@@]@@ @@Ze@@@Q@@]B@@@@`/print_functions k\.2].A@б@г&Format)formatterk.Dl.J@ o.Kp.T@@@@@@3_^^_____@(@A @@б@г!t.X.Y@@ @@@@@г$unit.].a@@ @@@@@@@@@@# @@@+@@ @@(3@@@..@@C@@@@.-print_offsets lbfbs@б@г&Format)formatterbvb|@ b}b@@@@@@3@Pn(@A @@б@гР!tbb@@ @@@@@гk$unitbb@@ @@@@@@@@@@# @@@+@@  @@ (3@@@bb@@D@@@@.)print_all m@б@г]&Format)formatter  @  @@@@@@ 3@Pn(@A @@б@В@г#!t#$@@ @@@ @@@г$list23@гv!t&Symbol@A@ DE@@@@@@ 7 @@@ @@@<@@@@/@ @@C4$@@г점$unit^_@@ @@@P@@@@@@@UF @@@]@@ @@Ze@@@p@@|E@@@@`0print_raw_approx n{-1|-A@б@г&Format)formatter-D-J@ -K-T@@@@@@3~}}~~~~~@(@A @@б@гM&approx-X-^@@ @@@@@г;$unit-b-f@@ @@@@@@@@@@# @@@+@@ @@(3@@@--@ T Prints approx and descr as it is, without recursively looking up [Export_id.t] ,@@@@@@@F@@"@@@@@@@G/print_raw_descr ogkgz@б@гF&Format)formatterg~g@ gg@@@@@@3@iA@A @@б@гӠ%descrg g@@ @@@@@г$unitgg@@ @@@@@@@@ @@!# @@@+@@" @@#(3@@@'gg@@3G@@@@.@lAZ@Xf@@RLA@ A@A@YSA@A@_+B@QB@B@C=A@.(A@  @ p @ @m@f@@Q@1@{@~@@l@e@@:@@3IHHIIIII@d<@A@ H************************************************************************eA@@fA@L@ H kBMMlBM@ H OCaml qCrC@ H wDxD3@ H Pierre Chambart, OCamlPro }E44~E4@ 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************************************************************************O66O6@ l* Exported information (that is to say, information written into a .cmx file) about a compilation unit.   CR-soon mshinwell: Fix the export information so we can correctly propagate "unresolved due to..." in the manner of [Simple_value_approx]. Unfortunately this seems to be complicated by the fact that, during [Import_approx], resolution can fail not only due to missing symbols but also due to missing export IDs. The argument type of [Simple_value_approx.t] may need updating to reflect this (make the symbol optional? It's only for debugging anyway.) D t tJ  P@ E* A structure that describes what a single compilation unit exports.  =* Code of exported functions indexed by set of closures IDs.  * Structure of exported values. x !* Associates symbols and values. V 4* Positions of function pointers in their closures. 6 1* Positions of value pointers in their closures.  . CR-soon mshinwell for pchambart: Add comment ].0].b@ h Function parameters known to be invariant (see [Invariant_params]) indexed by set of closures ID. _`@ B* Export information for a compilation unit that exports nothing.  $ -* Create a new export information structure.  i 0 CR-someday pchambart: Should we separate [t] in 2 types: one created by the current [create] function, returned by [Build_export_info]. And another built using t and offset_informations returned by [flambda_to_clambda] ? mshinwell: I think we should, but after we've done the first release. {{@ * Record information about the layout of closures and which sets of closures are constant. These are all worked out during the [Flambda_to_clambda] pass.  S* Union of export information. Verifies that there are no identifier clashes. P D* Look up the description of an exported value given its export ID. 렠 ;* Partition a mapping from export IDs by compilation unit. I#*/*.; Debug printing functions. ;@ U* Prints approx and descr as it is, without recursively looking up [Export_id.t] ;@-./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"-cAB F/home/ci/builds/workspace/main/flambda/false/label/ocaml-ubuntu-latest >10/.-,+*)('&%$#"! @@0pS۔[dA=؊3IHHIIIII@G@@/Allocated_const0/vVǟx(Asttypes0eT$BbRM dc5Build_path_prefix_map0DGl}%Y5Lhi8CamlinternalFormatBasics0|.e1R$|o0CamlinternalLazy0zY# #4#-2Clambda_primitives0|& %ZIǝz/Closure_element0ǔf#M*Closure_id0 (?$.Closure_origin0!Havl5"_*Cmi_format0`M{?w}@0Compilation_unit0Dl ]wN*Data_types0v\3,Svh)Debuginfo0_ |PooGq#Env0S B2)Export_id0CJ9DןRa7ݷ$E0t?MH\'Flambda0VJ͟*Format_doc0uy@GmWUࠠ*Freshening0xW("-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;ɡ$Misc0Bpg]?[q0Mutable_variable0CQᷧ$'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``llU0 c[k%S\KѠ0Static_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+&Symbol03E?Y7(#Tag0&b rٍ.Type_immediacy00$ jbv\"k&%Types0"|Vȷ`X )Unit_info0'T Χ@aR2Var_within_closure0``ݗXFR⠠(Variable0?l猵eY(Warnings0Ef{&@0t?MH\AH“@@@@@pհٕB@h@@ 5@@]ە@u@Wl@|n@ȕ ߓְ9 @  @X@@T@@5ΰ @IE@@T1@SV@@9@@@9@@@M@@XAiEO@@@@@ٕ@+@ @  @@@@@ʐG><@~@@@UP6(@f@@@@l@@zܓ45Z@hH@ԕ۰B@@@ѕs@@P@@