Caml1999I037;i,Shape_reduce&result;@@(Resolved%Shape#Uid!t@@@@@7typing/shape_reduce.mliT!T:@@B@.Resolved_alias<#Uid!t@@@+@@@@@UprUp@@3C@*Unresolved=+!t@@@@@(V)V@@CD@,Approximated>&optionLB#Uid!t@@@@@@@@AWBW+@@\E@:Internal_error_missing_uid?@@JY|~KY|@@eF@@@A@@@@@NS@@@@h@@A@,print_result@&Stdlib&Format)formatter@@@@P@@@$unitF@@@@@@@@m\n\@@G@@Ӡ$Make@@$fuel#intA@@@@m  m  @@H@@/read_unit_shape)unit_name&stringQ@@@e!t@@@@@@@@@o  o  X@@I@@@&reduce@#Env!t@@@@!t@@@!t@@@@@@@@q f hq f @@M@@.reduce_for_uid@!!t@@@@!t@@@@@@@@@@@u  u  N@@N@@@@l  v O R@O@@@,local_reduce@A!t@@@@!t@@@!t@@@@@@@@z  z  @@P@@4local_reduce_for_uid@`!t@@@@!t@@@@@@@@@@@~ L L ~ L @@:Q@@@c,Shape_reduce0hqXN(Warnings0mJɒkgrs-Stdlib__Uchar056uf4[_+Stdlib__Sys0 -ռ鱦s5/.Stdlib__String0Vê>)Longident0s `7mɕc(Location0a7cK_H%9)Load_path0I@18 ~,Identifiable0 {d\FX'`%Ident0">WA+9*X*Format_doc0]mWϓ:Mݠ#Env0zV L{YWI*Data_types0I'Ue`wq]Ѡ*Cmi_format0c˯7͗ԩmݠ0CamlinternalLazy0&͂7 Pˆ8CamlinternalFormatBasics0%FU(Q/Tu5Build_path_prefix_map0z HkGs(Asttypes0>n{T8cئ@@@Caml1999T0376!ZBC,Shape_reduceA+&resultA7typing/shape_reduce.mliSS@@;@@(Resolved%Shape#Uid!t@@@@@T!T:@)ocaml.doc&_none_@@A / Shape reduction succeeded and a uid was found )T;*To@@@@@@@8B@.Resolved_alias<'#Uid!t@@@ӠB@@@@@@UprAUp@*; Reduction led to an alias NUpOUp@@@@@@@]C@*Unresolved=K!t@@@@@^V_V@H ) Result still contains [Comp_unit] terms lVmV@@@@@@@{D@,Approximated>&optionLp#Uid!t@@@@@@@@WW+@o F Reduction failed: it can arrive with first-class modules for example X,0X,{@@@@@@@E@:Internal_error_missing_uid?@@Y|~Y|@ D Reduction succeeded but no uid was found, this should never happen ZZ@@@@@@@F@@@A@@@@@S@ 8 The result of reducing a shape and looking for its uid RR@@@@@@@@@@@@#T#T+@@г%ShapeT/T4@°T5T8@@ưT9@ @@3@@@@@@#intA;@@@A@@@@@@A@$charB;@@A@@@@@@A@&stringQ;@@ A@@@@@@@@%bytesC;@@ A@@@@@@@@%floatD;@@A@@@@@@@@$boolE;@@%falsec@@@$trued@@ @@@A@@@@@ @A@$unitF;@@"()e@@@@@A@@@@@@A@ #exnG;@@@A@@@@@@@@#effH;@@O@A@A@@@@@@$@@@,continuationI;@@Q@@P@B@A@nY@@@@@@3@@@%arrayJ;@@R@A@A@@@@@@=@@@ $listK;@@S@A"[]f@@J@"::g@@@T@@W@ @@A@Y@@@@@Z@@@;@@V@A$Noneh@@e@$Somei@@l@@@A@Y@@@@@o@@@)nativeintM;@@A@@@@@s@@@%int32N;@@A@@@@@w@@@%int64O;@@A@@@@@{@@@&lazy_tP;@@X@AHA@Y@@@@@@@@5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@AYA@Y@@@@@@@@*atomic_locU;@@Z@AbA@@@@@@@@@.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@@A꠰54@)Not_foundZ#O@@@A򠰠=<@-Out_of_memoryW#W@@@AED@.Stack_overflow^#_@@@AML@.Sys_blocked_io_#g@@@A U T @)Sys_error[#o@j@@A^]@:Undefined_recursive_modulea#x@@w@s@u@@h@@A$o'n'@:Continuation_already_takenb#@@@A,w/v/@&StdlibS;@@@A@@@@@@@@A;@@@@=:965@55@@@5@5@#11aUptbUp@@г3%ShapeoUppUp@;sUptUp@@?xUpyUp@ @@I @@гB&resultUpC@@ID@@@@FmlDC@CC@@@C@C@#??VV@(@гA%ShapeVV@HVF@G@@OʰH@@@@JHG@GG@@@G@G@#CCW W@#@гE&optionW%;@гG%ShapeWW@OWW"@@SW#W$@ @@] @@@dT@@@@VTS@SS@@@S@S@#OOY|M@>@@@PҐNM@MM@@@M@M@@A@IݐHG@GG@@@G@G@@3%$$%%%%%@"@AUf@,print_result \ \@б@г&Format)formatter\\@ \\ @@@@@@3HGGHHHHH@F*#@A @@б@г0&result0\1\@@ @@@@@г$unit=\>\@@ @@@@@@@@!@@@'@@ $/ @@@K\@@YG@@@@*$MakeBXl  Yl  @gO@@Т@@`l  al  @Б$fuelmm  nm  @гo#intvm  wm  @@ @@@ 3@Xv4@A@@@m   @@H@@ @@/read_unit_shapeo  $o  3@б)unit_nameг&stringo  @o  F@@ @@@ 3@#6!@A@@г+&optiono  Ro  X@г!t%Shapeo  Jo  O@ o  Po  Q@@@@@@ " @@@ @@@'@@8-@@*o  6!@@@o  $@@I@@&@@1@gR@K @@3@6M @A3@Z@Al  p Y ^@@Б&reduceq f lq f r@б@г#Env!t#Envq f uq f x@ q f yq f z@@@@@@3#""#####@@A @@б@г!t%Shapeq f ~q f @ q f q f @@@@@@ @@г !t%Shape$q f %q f @ (q f )q f @@@@@@/ @@@@@2$ @@@8@@5@ @@@7q f h@@EM@@@@;.reduce_for_uidBu  #Cu  1@б@г^!t#EnvQu  4Ru  7@ Uu  8Vu  9@@@@@@3~~@}(@A @@б@гT!t%Shapeku  =lu  B@ ou  Cpu  D@@@@@@ @@г}&result}u  H~u  N@@ @@@'@@@@@*@@@0@@-8 @@@u  @t Perform weak reduction and return the head's uid if any. If reduction was incomplete the partially reduced shape is returned. s  t  @@@@@@@N@@@@@@@@@L@t@m"@@3@Qo$@A3@3@Ap Y bv O R@@@\@@  The [Make] functor is used to generate a reduction function for shapes. It is parametrized by: - a function to load the shape of an external compilation unit - some fuel, which is used to bound recursion when dealing with recursive shapes introduced by recursive modules. (FTR: merlin currently uses a fuel of 10, which seems to be enough for most practical examples) Usage warning: To ensure good performances, every reduction made with the same instance of that functor share the same ident-based memoization tables. Such an instance should only be used to perform reduction inside a unique compilation unit to prevent conflicting entries in these memoization tables. ^!!k  @@@@@@@l  @@,local_reducez  z  @б@г!t#Envz  z  @ z  z  @@@@@@3        @n@@r@k)@@@n@@ߐA@@@@@@@@@@@=@A$@@б@г!t%Shapez  z  @ z  z  @@@@@@1 @@г!t%Shape%z  &z  @ )z  *z  @@@@@@ G @@@@@ J$ @@@P@@ MX @@@8z  @! Z [local_reduce] will not reduce shapes that require loading external compilation units. Ex T TFy  @@@@@@@TP@@@10@@@@@@l4local_reduce_for_uid\~ L P]~ L d@б@гx!t#Envk~ L gl~ L j@ o~ L kp~ L l@@@@@@ 3@A@A @@б@гn!t%Shape~ L p~ L u@ ~ L v~ L w@@@@@@  @@г&result~ L {~ L @@ @@@'@@@@@*@@@0@@-8 @@@~ L L@ b [local_reduce_for_uid] will not reduce shapes that require loading external compilation units. |  } 4 K@@@@@@@Q@@@@@@@@@L@A@|@t@n@@@t)@@3@Xv+@A@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml CC@ H DD3@ I Ulysse Gérard, Thomas Refis, Tarides E44E4@ I Nathanaëlle Courant, OCamlPro FF@ H Gabriel Scherer, projet Picube, INRIA Paris GG@ H HHi@ H Copyright 2021 Institut National de Recherche en Informatique et IjjIj@ H en Automatique. J J@ H KKP@ H All rights reserved. This file is distributed under the terms of LQQLQ@ H the GNU Lesser General Public License version 2.1, with the MM@ H special exception on linking described in the file LICENSE.  N!N7@ H &O88'O8@ H************************************************************************,P-P@ 9* The result of reducing a shape and looking for its uid w 0* Shape reduction succeeded and a uid was found  <* Reduction led to an alias ꠠ ** Result still contains [Comp_unit] terms Ϡ G* Reduction failed: it can arrive with first-class modules for example  E* Reduction succeeded but no uid was found, this should never happen  * The [Make] functor is used to generate a reduction function for shapes. It is parametrized by: - a function to load the shape of an external compilation unit - some fuel, which is used to bound recursion when dealing with recursive shapes introduced by recursive modules. (FTR: merlin currently uses a fuel of 10, which seems to be enough for most practical examples) Usage warning: To ensure good performances, every reduction made with the same instance of that functor share the same ident-based memoization tables. Such an instance should only be used to perform reduction inside a unique compilation unit to prevent conflicting entries in these memoization tables.  * Perform weak reduction and return the head's uid if any. If reduction was incomplete the partially reduced shape is returned.  [* [local_reduce] will not reduce shapes that require loading external compilation units.  c* [local_reduce_for_uid] will not reduce shapes that require loading external compilation units. @-./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"-I&typing"-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/.-,+*)('&%$#"! @@0OB\*V|C3@@@(Asttypes0>n{T8cئ5Build_path_prefix_map0z HkGs8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ*Cmi_format0c˯7͗ԩmݠ*Data_types0I'Ue`wq]ѠӐ0zV L{YWI*Format_doc0]mWϓ:Mݠ%Ident0">WA+9*X,Identifiable0 {d\FX'`)Load_path0I@18 ~(Location0a7cK_H%9)Longident0s `7mɕc$Misc0ob]6>Vê>+Outcometree0kX%d5Q/+)Parsetree0T鿁ۘ7Qu$Path0Y2kf֯J._Ϡ)Primitive0²~$xzT෠20oNՄBH0hqXN&Stdlib0Lku]8_٠.Stdlib__Buffer08APF< t..Stdlib__Digest0l!LHgErζ .Stdlib__Domain0:M;׉<O$Ġ.Stdlib__Either0Vy`u~c à.Stdlib__Format0ܚ#G7m|/Stdlib__Hashtbl0ѱN][/!,Stdlib__Lazy0* -S$.)"0D.Stdlib__Lexing0e<.V +Stdlib__Map0L5xE|O0~,J-.Stdlib__Result06 ]/J+Stdlib__Seq0nwzG&amg+Stdlib__Set0\$;7 .Stdlib__String0s.Type_immediacy0A^abOhՠ%Types0^Y~# )Unit_info0ڀh%((Warnings0mJɒkgr