Caml1999I037"5+Export_infoӠ!A LA3Simple_value_approx@ "middle_end/flambda/export_info.mliVV=@@@@@5value_string_contents M;@@(Contents&stringQ@@@-@@Y\^Y\r@@%B@2Unknown_or_mutable@@ Zsu!Zs@@.C@@@A@@@@@$X??@@@@1A@A@,value_string N;@@(contents@@-@@@/5]6]@@CE@$size@@#intA@@@.C^D^@@QF@@@A@@@@@G\H_@@@@UD@A@:value_float_array_contents O;@@(Contents%arrayJ&optionL%floatD@@@0@@@1@@@2@@kblb@@yH@2Unknown_or_mutable@@tcuc1@@I@@@A@@@@@xa@@@@G@A@1value_float_array P;@@(contents@@;@@@4fNPfNv@@K@$size@@T@@@3gwygw@@L@@@A@@@@@e33h@@@@J@A@%descr Q;@@+Value_block##Tag!t@@@C[&approx T@@@A@@@B@@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@8@@@9@@@@:'qTV(qT@@5W@,Value_string @@@7@@5r6r@@CX@-Value_closure-value_closure R@@@6@@EsFs@@SY@5Value_set_of_closures5value_set_of_closures S@@@5@@UtVt@@cZ@3Value_unknown_descr@@^u_u@@l[@@@A@@@@@bj@@@@oM@A@%;@@*closure_id@@*Closure_id!t@@@Eux-/vx-I@@\@/set_of_closures@@.@@@DyJLyJt@@]@@@A@@@@@wzuv@@@@N@B@8;@@2set_of_closures_id@@2Set_of_closures_id!t@@@N}}@@^@*bound_vars@@2Var_within_closure#Map!t@@@L@@@M~~@@_@)free_vars@@(Variable#Map!t'Flambda.specialised_to@@@J@@@K '@@`@'results@@e#Map!t#@@@H@@@I@ ( *@ ( L@@a@.aliased_symbol@@&Symbol!t@@@F@@@GA M OA M p@@b@@@A@@@@@|xxB q r@@@@O@B@C;@@-Value_unknown@@L ^ `L ^ o@@c@(Value_id쐠)Export_id!t@@@P@@M p rM p @@#d@,Value_symbol6!t@@@O@@%N  &N  @@3e@@@A@@@@@)K Q Q@@@@6P@B@!t U;@@0sets_of_closures2@@#Map!t(5function_declarations@@@`@@@aDR  ER  M@@Rg@&values@@0Compilation_unit#Map!tJ#Map!t;@@@]@@@^@@@_cT  dT  @@qh@)symbol_id@@#Map!tf!t@@@[@@@\zV  {V  @@i@*offset_fun@@#Map!tM@@@Y@@@ZX B DX B f@@j@)offset_fv@@#Map!tb@@@W@@@XZ  Z  @@k@1constant_closures%@@@#Set!t@@@V\\-@@l@0invariant_paramsV@@-#Map!t#Map!t#Set!t@@@S@@@T@@@U^ce^c@@m@)recursiveW@@O#Map!t0#Set!t@@@Q@@@Ra!aU@@n@@@@@@@@@Q  bVW@@@@f@A@)transient V;@@0sets_of_closures @@r#Map!t5function_declarations@@@p@@@qetvet@@p@&values @@#Map!t#Map!t@@@m@@@n@@@o,f-f@@:q@)symbol_id @@L#Map!t/!t@@@k@@@lCgDg@@Qr@0invariant_params @@#Map!t#Map!t#Set!t@@@h@@@i@@@jehfhh@@ss@)recursive @@#Map!t#Set!t@@@f@@@g~iikii@@t@:relevant_local_closure_ids @@#Set!t@@@ejj@@u@=relevant_imported_closure_ids @@*#Set!t@@@dkk@@v@ "relevant_local_vars_within_closure <@@#Set!t@@@cllF@@w@ %relevant_imported_vars_within_closure =@@#Set!t@@@bmGImG@@x@@@@@@@@@dYYn@@@@o@A@%empty W@@@r@qq@@y@@0opaque_transient X0compilation_unit!t@@@s+root_symbol!t@@@t@@@u@@v@@w@sv;I@@z@@&create Y0sets_of_closuresn#Map!t5function_declarations@@@x@@@y&values#Map!t #Map!t@@@z@@@{@@@|)symbol_id@#Map!t#!t@@@}@@@~*offset_fun#Map!t@@@@@@)offset_fv#Map!t@@@@@@1constant_closures#Set!t@@@0invariant_params#Map!t#Map!t#Set!t@@@@@@@@@)recursive#Map!t#Set!t@@@@@@@@@@@@@@@@@@@@@@@@@@y}}/5@@{@@0create_transient Z0sets_of_closures#Map!t5function_declarations@@@@@@&valuesn#Map!t#Map!t@@@@@@@@@)symbol_id#Map!t!t@@@@@@0invariant_paramsW#Map!t8#Map!t@#Set!t@@@@@@@@@)recursiveu#Map!tV#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@@@Y@@@@@@@@@@@@@@@@@@@@@@H77Iky@@V|@@.t_of_transient [@g@@@'program'program@@@0local_offset_fun#Map!t/@@@@@@/local_offset_fv#Map!t@@@@@@@3imported_offset_fun#Map!tQ@@@@@@2imported_offset_fv#Map!tb@@@@@@1constant_closures<#Set!t@@@@@@@@@@@@@@@@@@@@@XX@@}@@%merge \@@@@@@@@@@@@@@@@@@~@@0find_description ]@ @@@@!t@@@@@@@@@@@BBoy@@@@,nest_eid_map ^@#Map!t!a@@@@#Map!t#Map!t@@@@@@@@@  @@@@@7print_approx_components _@&Stdlib&Format)formatter@@@)symbol_id=#Map!t !t@@@@@@&values#Map!t4#Map!t%@@@@@@@@@@$listKl!t@@@@@@$unitF@@@@@@@@@@@@b<<c@@pA@@,print_approx `@V&Format)formatter@@@@@@@@ޠ@0!t@@@@@@@@.@@@@@@@@-@@B@@/print_functions a@&Format)formatter@@@@@@@I@@@@@@@@...a@@C@@-print_offsets b@&Format)formatter@@@@@@@d@@@@@@@@bbb@@D@@)print_all c@&Format)formatter@@@@@@@@@!t@@@@@@@@@@@@@@@@@@E@@0print_raw_approx d@&Format)formatter@@@@N@@@@@@@@@@@ -- -f@@F@@/print_raw_descr e@&Format)formatter@@@@@@@@@@@@@@@&gg'g@@4G@@@O+Export_info0G[CE!O pr(Warnings0mJɒkgrs-Stdlib__Uchar056uf4[_+Stdlib__Sys0 -ռ鱦s5/.Stdlib__String0Vê>)Longident0s `7mɕc(Location0a7cK_H%9)Load_path0I@18 ~,Linkage_name0EwKсڊs&Lambda0z1x]&ZT7Internal_variable_names0HdeՄL ԩ,Identifiable0 {d\FX'`%Ident0">WA+9*X*Freshening0/^*b1R*Format_doc0]mWϓ:Mݠ'Flambda0Idvu ")Export_id0-bw+LO#Env0zV L{YWI)Debuginfo0PtJ=^w/*Data_types0I'Ue`wq]Ѡ0Compilation_unit0 {p-Vg_*Cmi_format0c˯7͗ԩmݠ.Closure_origin0vˆtT{(}z*Closure_id05:z[ކ/Closure_element0YWZ̡Q.hV&2Clambda_primitives01U10CamlinternalLazy0&͂7 Pˆ8CamlinternalFormatBasics0%FU(Q/Tu5Build_path_prefix_map0z HkGs(Asttypes0>n{T8cئ/Allocated_const0ЖݔTW@@@Caml1999T037#mSh}C+Export_info-ocaml.warning "middle_end/flambda/export_info.mliQQ@2+a-4-9-30-40-41-42 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@Azy@*ocaml.textT 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@@@]]@@'E@$size@@@@@&^'^@@3F@@@A@@@@@*\+_@@@@7D@@#2]@@@Ш@г 5value_string_contents;]<]@@(3'&&'''''@J~x7;@@@A@@@@@@@@@A@@0@@@,@#((#I^@"@@Ш@г+#intR^S^@@3@@6@@@2@@A@.@@3A@@AAAAA@@A/.@A+:value_float_array_contentsDbaca@@;@@(Contents'@@@@@@@@@@@{b|b@@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+%descrFjj@@;@@+Value_block##Tag!t@@@&approx"F@@@@@@@@9k:k@@FQ@3Value_mutable_block2!t@@@@@@@@NlOl@@[R@)Value_int3@@@@@\m]m@@iS@*Value_char4$@@@@@jnkn@@wT@+Value_float5&@@@@@xoyo(@@U@1Value_float_array6@@@@@p)+p)S@@V@/Value_boxed_int7)boxed_int!a@ AG@ =@@@ ?G@ B@@@@ DqTVqT@@W@,Value_string@@@ E@@rr@@X@-Value_closure-value_closure F@@@ F@@ss@@Y@5Value_set_of_closures5value_set_of_closures!F@@@ G@@tt@@Z@3Value_unknown_descr@@uu@@[@@@A@@@@@j@@@@M@@#ŠŰkk@@гǠ#Tagkk@̰kk@@@3@ ?9;@@@A@@@@@#@@@!C;@@@A@@@@@wzuv@@@@N@9;@@@A@@@@@ |xx B q r@@@@O@;@@@A@@@@@K Q QN  @@@@P@@A"@@г預%arrayk@г&approx$k%k@@,@@@-@@@@@#,l-l@@г#Tag8l9l@@@г1value_float_arrayp)B@@@@@@@#qTXqTg@@г!AqTmqTn@ qToqTx@@А qTjqTl@@@ @@А!aqT{qT}@@@г%descrqT@@@@@#rr@@г,value_stringr@@̰@@@@@#ss@@г-value_closures@@ܰ@@@@@#tt@@г5value_set_of_closurest@@@@@@@#u@@@@@@A@@+00ww(@@;@@*closure_id@@*Closure_id!t@@@ x-/x-I@@\@/set_of_closures@@=@@@ yJLyJt@@]@@@A@@@@@ @@@ @#x-9@@@Ш@г *Closure_id!x-<"x-F@%%x-G&x-H@@@/.@@2@@ 1@*@#&&!/yJ[@ @@Ш@г)5value_set_of_closures8yJ^9yJs@@1@@@4@@ C@0@@A@9@+ppA|x|B|x@@;@@2set_of_closures_id@@2Set_of_closures_id!t@@@ R}S}@@_^@*bound_vars@@2Var_within_closure#Map!t2@@@p@@@ri~j~@@v_@)free_vars@@(Variable#Map!t'Flambda.specialised_to@@@@@@ '@@`@'results@@#Map!tb@@@@@@@ ( *@ ( L@@a@.aliased_symbol@@&Symbol!t@@@@@@A M OA M p@@b@@@A@@@@@@@@@#mmd}@c@@Ш@гp2Set_of_closures_id}}@u}}@@@ΰ@@@@ @z@#vvf~@e@@Ш@гy2Var_within_closure~~@~~@@~~@ @г&approx~~@@@@@ @@@@s@@#u@t@@Ш@г(Variable  @  !  $@@ % &@ @г'Flambda  @   @@@(@@@) @@@@,@@#*@ ( 1@@@Ш@г*Closure_id7@ ( ;8@ ( E@;@ ( F<@ ( I@@@@ ( JA@ ( K@ @г&approxJ@ ( 4K@ ( :@@R@@@S @@@@V@@#TA M ]@@@Ш@г&option]A M i^A M o@г&SymbolhA M `iA M f@lA M gmA M h@@@u@@@v @@@@y@@@A@i@+AAwK Q UxK Q [@@;@@-Value_unknown@@L ^ `L ^ o@@c@(Value_id쐠)Export_id!t@@@@@M p rM p @@d@,Value_symbol!t@@@@@N  @@e@@@A@@@@@@@@@#++L ^ b)@(@@@,@#((M p tM p |@@г*)Export_idM p M p @/M p -@.@@8Ȱ/@@@@1@#--N  N  @%@г/&SymbolN  N  @6N  @@@=߰@@@@8@@A@@@3@@A@A+!tGQ  Q  @@;@@0sets_of_closures2@@#Map!tT5function_declarations@@@2'@@@2)R  R  M@)ocaml.docÐ < Code of exported functions indexed by set of closures IDs.  S N PS N @@@@@@@g@&values@@0Compilation_unit#Map!t#Map!t@@@8@@@8@@@8-T  .T  @0? Structure of exported values. ;U  <U  @@@@@@@Hh@)symbol_id@@#Map!t!t@@@;@@@;RV  SV  @U Associates symbols and values. `W  aW  A@@@@@@@mi@*offset_fun@@o#Map!t6@@@;@@@;uX B DvX B f@x 3 Positions of function pointers in their closures. Y g iY g @@@@@@@j@)offset_fv@@1#Map!tY@@@;@@@;İZ  Z  @ 0 Positions of value pointers in their closures. [  [ @@@@@@@k@1constant_closures%@@#Set!t@@@=\\-@@l@0invariant_paramsV@@u#Map!tU#Map!t]#Set!t@@@?@@@?@@@?^ce^c@@m@)recursiveW@@#Map!tw#Set!t@@@?@@@?a!aU@@n@@@@@@@@@Q  bVW@ D A structure that describes what a single compilation unit exports. P  P  @@@@@@@@@f@@# R  @@@Ш@г!2Set_of_closures_idR  4R  F@)R  GR  J@@-!R  K"R  L@ @г0!A-R  .R  @71R  2R  3@@@?3@;k{G$Y;@@@@@@@@@HE@@7@A @@@P @@S@@2* @DA@?@??@@@?@?@#;;"OT  @@@Ш@г>0Compilation_unit\T  ]T  @D`T  aT  @@HeT  fT  @ @гK)Export_idsT  tT  @SwT  xT  @@W|T  }T  @ @гZ%descrT  T  @@bT@@@kU @@@vV%@@y@@8Y@aP_^@^^@@@^@^@#ZZJV  @;@@Ш@г]&SymbolV  V  @eV  V  @@iV  V  @ @гl)Export_idV  V  @sV  V  @@@{@@@ @@@@;@xvu@uu@@@u@u@#qqcX B N@T@@Ш@гt*Closure_idX B UX B _@|X B `X B c@@X B dX B e@ @г#intX B QX B T@@ư@@@ǰ @@@@;@@@@@@@#u Z  @f@@Ш@г2Var_within_closure Z   Z  @ Z   Z  @@ #Z   $Z  @ @г#int -Z   .Z  @@@@@ @@@@;@4@@@@@@# B\@@@Ш@г*Closure_id O\ P\&@ S\' T\*@@ X\+ Y\,@ @@' @@@@=*@@# b^cu@@@Ш@г2Set_of_closures_id o^c p^c@ s^c t^c@@ x^c y^c@ @г(Variable ^c ^c@ ^c ^c@@ð ^c ^c@ @гƠ(Variable ^cx ^c@ΰ ^c ^c@@Ұ ^c ^c@ @@u @@@v@@@w3@@@@?z@@#ӠӰ a*@@@Ш@г֠2Set_of_closures_id a< aN@ް aO aR@@ aS aT@ @г堡(Variable a- a5@ a6 a9@@ a: a;@ @@ @@@@@@@?@@@@@򠰠 @@@@@@@3        @@A@A+)transient H dY^ dYg@@;@@0sets_of_closures @@#Map!tk5function_declarations@@@[@@@[ etv et@@ !p@&values @@#Map!t#Map!t@@@[@@@[@@@[ 2f 3f@@ ?q@)symbol_id @@#Map!t!t@@@[@@@[° Ig Jg@@ Vr@0invariant_params @@#Map!t#Map!t#Set!t@@@[@@@[@@@[ɰ kh lhh@@ xs@)recursive @@*#Map!t #Set!t@@@[@@@[ΰ iik ii@@ t@:relevant_local_closure_ids @@#Set!t@@@[Ѱ j j@@ u@=relevant_imported_closure_ids @@#Set!t@@@[԰ k k@@ v@ "relevant_local_vars_within_closure <@@R#Set!t@@@] l lF@@ w@ %relevant_imported_vars_within_closure =@@b#Set!t@@@] mGI mG@@ x@@@@@@@@@ dYY n@@@@ o@@#̠̰ et@@@Ш@гϠ2Set_of_closures_id et et@װ et et@@۰ et et@ @гޠ!A et et@ et et@@@3        @;@@@@@@@@@7@@@4@A @@@@@@@[ @@# f@@@Ш@г0Compilation_unit f f@ f f@@ f f@ @г)Export_id *f +f@ .f /f@@  3f 4f@ @г %descr =f >f@@F@@@G @@@&H%@@)@@[K@@# Hg@@@Ш@г&Symbol Ug Vg@ Yg Zg@@ ^g _g@ @г!)Export_id jg kg @( ng  og @@@0x@@@9y @@<@@[|@-@#)) yh.@ @@Ш@г,2Set_of_closures_id hO ha@4 hb he@@8 hf hg@ @г;(Variable h@ hH@C hI hL@@G hM hN@ @гJ(Variable h1 h9@R h: h=@@V h> 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@@ j j@ @@! @@@@[$@@#} !k@|@@Ш@г*Closure_id .k /k@ 2k 3k@@ 7k 8k@ @@A @@@@[D@@# Al)@@@Ш@г2Var_within_closure Nl- Ol?@ Rl@ SlC@@ WlD XlE@ @@a @@@@]d@@# amGn@@@Ш@г2Var_within_closure nmGq omG@ rmG smG@@ wmG xmG@ @@ @@@@]@@@@@@@3 g f f g g g g g@@A@%empty  q q@г!t q q@@ @@@b3  ~ ~     @@A@@@ q @ A Export information for a compilation unit that exports nothing.  p p@@@@@@@ y@@@ n@@@@@@!0opaque_transient  s s@б0compilation_unitг!t0Compilation_unit t t@  t t @@@@@@b3        @EXC@A @@б+root_symbolг~Wf?~Wi@@ @@@b&@@@)@@@b( @@б1constant_closuresг U#Set!t*Closure_id\]@ `a@@ef@ @@@@@b)@@б0invariant_paramsг (#Map!t2Set_of_closures_id@ @@@ @г #Map!t(Variable@ @@@ @г 8#Set!t(Variable@ @@@ @@@@@b*w@@@;@@@b,|'@@@\@@@b.H@@б)recursiveг #Map!t2Set_of_closures_id(@ ),@@-.@ @г #Set!t(Variable@ @@  @ @@@@@b/@@@;@@@b1Ű'@@г7!t/4/5@@ @@@b2Ұ@@Q@@b3հ% @@\@@b4ٰ) @@@@b5ݰ-@@@@b61~W\@@M"@@b75}27@@X@@b89| @@@@b9={!@@$@@b:Az%@@@Dy}}(@F , Create a new export information structure. QxKKRxK|@@@@@@@^{@@8@V@@@@@@0create_transient h7;i7K@б0sets_of_closuresг &#Map!t2Set_of_closures_id}L{~L@ LL@@LL@ @г 5function_declarations!ALcLd@ LeLz@@@@@@b;3@Q_@A @@@4 @@@b= @@б&valuesг#Map!t0Compilation_unit@ @@@ @г >#Map!t)Export_id@ @@@ @г Р%descr@@ @@@b>P@@@)@@@b@U @@@J@@@bBZ6@@б)symbol_idг [#Map!t&Symbol @ @@@ @г !t)Export_id%&@ )*@@@@@@bC @@@2@@@bE@@б0invariant_paramsг #Map!t2Set_of_closures_idH*I<@ L=M@@@QARB@ @г #Map!t(Variablede#@ h$i'@@m(n)@ @г #Set!t(Variable @ @@@ @@@@@bF@@@;@@@bH'@@@\@@@bJH@@б)recursiveг V#Map!t2Set_of_closures_idCaCs@ CtCw@@CxCy@ @г J#Set!t(VariableCRCZ@ C[C^@@C_C`@ @@@@@bK9@@@;@@@bM>'@@б:relevant_local_closure_idsг #Set!t*Closure_idzz@ zz@@zz@ @@@@@bNa@@б=relevant_imported_closure_idsг #Set!t*Closure_id@ @@@ @@@@@bO@@б "relevant_local_vars_within_closureг #Set!t2Var_within_closure7 8@ ;<"@@@#A$@ @@@@@bP@@б %relevant_imported_vars_within_closureг #Set!t2Var_within_closureZ%R[%d@ ^%e_%h@@c%id%j@ @@@@@bQʰ@@гu)transientqkprky@@ @@@bRװ@@0@@bSڰz%* @@W:@@bTް~ @@~a@@bU@@@@bVz@@@@bWCH@@V@@bX@@a@@bY!@@@@bZ%@@-@@b[LQ)@@@77,@@|@@.@@.t_of_transient X\Xj@б@г)transientkpky@@ @@@b\3@V@A@@б'programг E'program'Flambdazz@ zz@@@@@@b] @@б0local_offset_funг #Map!t*Closure_id@ @@@ @г#int@@ @@@b^I@@@)@@@b`N @@б/local_offset_fvг #Map!t2Var_within_closure@ @@#$@ @г#int./@@ @@@ba{@@@)@@@bc @@б3imported_offset_funг E#Map!t*Closure_idLM@ PQ @@U!V"@ @г #int`a@@ @@@bd@@@)@@@bf @@б2imported_offset_fvг #Map!t2Var_within_closure~#?#Q@ #R#U@@#V#W@ @гR#int#;#>@@ @@@bg߰@@@)@@@bi @@б1constant_closuresг #Set!t*Closure_idXoXy@ XzX}@@X~X@ @@@@@bj@@г ⠐!t@@ @@@bk@@0@@blX] @@f;@@bm#( @@q@@bn@@@@bo#@@@@bp'@@&@@bq+z@@@2@@br/5 @@@XX#@ 쐠 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. 6W@@@@@@@}@@3@ @@@@@@N%merge @б@г 4!t@@ @@@bs3@g|8@A@@б@г E!t*+@@ @@@bt@@г R!t78@@ @@@bu@@@@@bv!@@@'@@bw$* @@@E@ G R Union of export information. Verifies that there are no identifier clashes. RS@@@@@@@_~@@@ W@@@@@@C0find_description iBFjBV@б@г !ttW\uW]@@ @@@bx3cbbccccc@\q8@A@@б@г !t)Export_id^c^l@ ^m^n@@@@@@by @@г%descrotoy@@ @@@bz'@@@@@b{*@@@0@@b|-3 @@@BB@ C Look up the description of an exported value given its export ID. A@@@@@@@@@@ }@@@@@@L,nest_eid_map @б@г H#Map!t)Export_id@ @@@ @А!a@bI@b}3@}P@A@@@) @@@b @@г #Map!t0Compilation_unit @  @@@ @г #Map!t)Export_id*+@ ./@@34@ @А!aJE;<@@@"P@@@bL@@@C@@@bQ /@@@O@@bTR2@@@L5@ N : Partition a mapping from export IDs by compilation unit. Y{{Z{@@@@@@@f@@@E@ ^ @@@@@@s-"/*wx@@@@@@3cbbccccc@1@A7print_approx_components E<@<W@б@г&Format)formatterX\Xb@ XcXl@@@@@@i# @@б)symbol_idг#Map!t&Symbolmm@ mm@@mm@ @г3!t)Export_idm}m@ mm@@@@@@iY @@@2@@@i^@@б&valuesг #Map!t0Compilation_unit@ @@@ @гo#Map!t)Export_id@   @@@ @г%descr@@ @@@i@@@)@@@i @@@J@@@i6@@б@г$list45@г!t&SymbolBC@ FG@@@@@@iӰ @@@ @@@iذ@@г$unitYZ@@ @@@i@@@@@i @@>@@ie @@@@iimr@@@@@i@@@o<<@@{A@@@@,print_approx Fz{@б@г&Format)formatter@ @@@@@@i3}||}}}}}@(@A @@б@В@г!t@@ @@@i@@@г$list!%@г!t&Symbol@  @@@@@@i7 @@@ @@@i<@@@@/@ @@iC4$@@гu$unit)-@@ @@@iP@@@@@iSD@@@Y@@iVa @@@@@B@@@@\/print_functions G.2.A@б@гu&Format)formatter.D.J@  .K .T@@@@@@i3@~(@A @@б@г7!t.X.Y@@ @@@i@@г$unit).]*.a@@ @@@i@@@@@i!@@@'@@i$/ @@@7..@@CC@@@@*-print_offsets HBbfCbs@б@г&Format)formatterQbvRb|@ Ub}Vb@@@@@@i3EDDEEEEE@Lj(@A @@б@г!tgbhb@@ @@@i@@г $unittbub@@ @@@i@@@@@i!@@@'@@i$/ @@@bb@@D@@@@*)print_all I@б@г &Format)formatter@ @@@@@@i3@Lj(@A @@б@В@гѠ!t@@ @@@i@@@г+$list@г$!t&Symbol@ @@@@@@i7 @@@ @@@i<@@@@/@ @@iC4$@@г$unit@@ @@@iP@@@@@iSD@@@Y@@iVa @@@@@ E@@@@\0print_raw_approx J -1 -A@б@г&Format)formatter-D-J@ -K-T@@@@@@i3        @~(@A @@б@г&approx/-X0-^@@ @@@i@@гӠ$unit<-b=-f@@ @@@i@@@@@i!@@@'@@i$/ @@@J--@L T Prints approx and descr as it is, without recursively looking up [Export_id.t] WX,@@@@@@@dF@@@\@@@@@@C/print_raw_descr Kngkogz@б@г&Format)formatter}g~~g@ gg@@@@@@i3qppqqqqq@eA@A @@б@гy%descrgg@@ @@@i@@г7$unitgg@@ @@@i@@@@@i!@@@'@@i$/ @@@gg@@G@@@@*@A@@@A@A@\VA@A@A@B@B@KB@A@  A@ G 2@  @ @l5@.@@q/@@[m@f@@`@Y@@|:@@3@`~<@A@ 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  F F@ H GG@ H Copyright 2013--2016 OCamlPro SAS HHg@ H Copyright 2014--2016 Jane Street Group LLC IhhIh@ H "J#J@ 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. 4M5M@ H :N;N5@ H************************************************************************@O66AO6@ 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.) ID t tJJ  P@ E* A structure that describes what a single compilation unit exports. L =* Code of exported functions indexed by set of closures IDs. E * Structure of exported values.  !* Associates symbols and values.  4* Positions of function pointers in their closures. ؠ 1* Positions of value pointers in their closures.  . CR-soon mshinwell for pchambart: Add comment a].0b].b@ h Function parameters known to be invariant (see [Invariant_params]) indexed by set of closures ID. g_h`@ B* Export information for a compilation unit that exports nothing.  Ơ -* Create a new export information structure.   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. s{{t@ * 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. * D* Look up the description of an exported value given its export ID. ɠ ;* Partition a mapping from export IDs by compilation unit. )#*/*; Debug printing functions. ;@ U* Prints approx and descr as it is, without recursively looking up [Export_id.t] 7@-./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Ȑ =/builds/workspace/precheck/flambda/false/label/ocaml-linux-32 >10/.-,+*)('&%$#"! @@0pS۔[dA=؊3@@@/Allocated_const0ЖݔTWŠ(Asttypes0>n{T8cئ5Build_path_prefix_map0z HkGs8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ2Clambda_primitives01U1/Closure_element0YWZ̡Q.hV&*Closure_id05:z[ކ.Closure_origin0vˆtT{(}z*Cmi_format0c˯7͗ԩmݠ0Compilation_unit0 {p-Vg_*Data_types0I'Ue`wq]Ѡ)Debuginfo0PtJ=^w/#Env0zV L{YWI)Export_id0-bw+LO>0G[CE!O pr'Flambda0Idvu "*Format_doc0]mWϓ:Mݠ*Freshening0/^*b1R%Ident0">WA+9*X,Identifiable0 {d\FX'`7Internal_variable_names0HdeՄL ԩ&Lambda0z1x]&ZT,Linkage_name0EwKсڊs)Load_path0I@18 ~(Location0a7cK_H%9)Longident0s `7mɕc$Misc0ob]6>Vê>0Mutable_variable0~emPs&Symbol0ҡ4d,#Tag0\݅}x.Type_immediacy0A^abOhՠ%Types0^Y~# )Unit_info0ڀh%(2Var_within_closure00SSJh6 (Variable0' Gr㠠(Warnings0mJɒkgr M@@?R@=0ؓ@0@@@@,@@~ְג@d<@v}=L@@@s@@P@@