Caml1999I036;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_reduce0]:]wuf(Warnings0;w.Q=1)Unit_info08a AnMͼ %Types0#`O(ߍLF.Type_immediacy0GuQT@<=%Subst09,+bmT-Stdlib__Uchar0d"W-x9.Stdlib__Domain0iW',P6wz.Stdlib__Digest0 Jjrڵ6.Stdlib__Buffer0_?K|/V>O}~Nࠠ&Stdlib0y{x!O!%Shape0OĸT>b)Primitive0{mV|{J $Path09{ְZsv)Parsetree0Z<4$PC+Outcometree0yl4>Yfܠ$Misc0  =73 Z )Longident0@#j,6.Nt蠠(Location0nݹV 2f-V )Load_path02&9Q҄;L,Identifiable0XnAZ4eҠ%Ident0y43a$+*Format_doc0Mv9630A #Env0؞X:Fݗ)*Data_types0-k(.I7*Cmi_format0KuEB젠0CamlinternalLazy0;x#5䢜hLm8CamlinternalFormatBasics0oZ2t,ݠ5Build_path_prefix_map0gMOBnM`(Asttypes0E\eǥ]k6e@@@Caml1999T0366!YBC,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/main/flambda/false/label/ocaml-freebsd-64 >10/.-,+*)('&%$#"! @@0OB\*V|C3@@@(Asttypes0E\eǥ]k6e5Build_path_prefix_map0gMOBnM`8CamlinternalFormatBasics0oZ2t,ݠ0CamlinternalLazy0;x#5䢜hLm*Cmi_format0KuEB젠*Data_types0-k(.I7Ӑ0؞X:Fݗ)*Format_doc0Mv9630A %Ident0y43a$+,Identifiable0XnAZ4eҠ)Load_path02&9Q҄;L(Location0nݹV 2f-V )Longident0@#j,6.Nt蠠$Misc0  =73 Z +Outcometree0yl4>Yfܠ)Parsetree0Z<4$PC$Path09{ְZsv)Primitive0{mV|{J 20OĸT>b0]:]wuf&Stdlib0y{x!O!.Stdlib__Buffer0_?K|/V>O}~Nࠠ.Stdlib__Digest0 Jjrڵ6.Stdlib__Domain0iW',P6wz.Stdlib__Either0FԤ) 4'>.Stdlib__Format0)n[-Ob/Stdlib__Hashtbl0^iaxG$+,Stdlib__Lazy0OM>x9