Caml1999I031 L(Odoc_env#env8@@@A@@@@@,odoc_env.mliTT@@@@ @A@%empty@@@@WW@@A@-add_signature@@@@@&stringO@@@#rel&optionJ@@@@@@@%Types)signature@@@3@@@@@@@@@@@@@[!!A[!k@@JC@-add_extension@A@@@@)Odoc_name!t@@@N@@@@@@@@[\ll\\l@@eD@(add_type@\@@@@!t@@@g@@@@@@@@t]u]@@~E@)add_value@u@@@@4!t@@@@@@@@@@@^^@@F@*add_module@@@@@M!t@@@@@@@@@@@__@@G@/add_module_type@@@@@f!t@@@@@@@@@@@``G@@H@)add_class@@@@@!t@@@@@@@@@@@aHHaHq@@I@.add_class_type@@@@@!t@@@@@@@@@@@brrbr@@J@0full_module_name@@@@@!t@@@!t@@@@@@@@ ggN@@K@5full_module_type_name@@@@@!t@@@!t@@@@@@@@)j*j@@3L@?full_module_or_module_type_name@*@@@@!t@@@!t@@@@@@@@EnIIFnI@@OM@.full_type_name@F@@@@!t@@@ !t@@@@@@@@aqbq@@kN@/full_value_name@b@@@@!!t@@@'!t@@@@@@@@}t 5 5~t 5 l@@O@?full_extension_constructor_name@~@@@@=!t@@@C!t@@@@@@@@w  w  @@P@/full_class_name@@@@@Y!t@@@_!t@@@@@@@@z ' 'z ' ^@@Q@4full_class_type_name@@@@@u!t@@@{!t@@@@@@@@}  }  @@R@=full_class_or_class_type_name@@@@@!t@@@!t@@@@@@@@@  @  b@@S@*subst_type@@@@@)type_expr@@@)type_expr@@@@@@@@ E   E  @@T@1subst_module_type@ @@@@+module_type@@@+module_type@@@@@@@@%H L L&H L @@/U@0subst_class_type@&@@@@*class_type@@@*class_type@@@@@@@@AN 2 2BN 2 t@@KV@@x(Odoc_env0"C6I]V0]u(Warnings0zdͦkUe$%Types0lm?ƈ.Type_immediacy0dV^25b)̓ԆSj-Stdlib__Uchar0*Ujmyc6]]W+Stdlib__Set0.z9FX+Stdlib__Seq05"g1<)b+Stdlib__Map0kZ,ҷ'V.Stdlib__Lexing01'jh,-k4,Stdlib__Lazy0C 4 "$p1tU/Stdlib__Hashtbl04$*uկdD.Stdlib__Format0{hXsHW#ȼ.Stdlib__Either0&]XF.Stdlib__Buffer0K ɦb+Z8)#KH"&Stdlib0yӶ~*%Shape0H[DTċwToe@Q)Primitive0յ_9|br$Path0L%SsN|#Ɣj)Parsetree0`ⰧkRE+Outcometree0gCtrT?T@@8@@@A@@@@@BT@)ocaml.docS F An environment of known names, from simple name to complete name. PR{{QS@@@@@@@@@h@@@A@@P@%empty \W]W@г'#enveWfW@@ @@@0gffggggg@f2,@A@@@oW @-8 The empty environment. {V|V@@@@@@@A@@: Extending an environment YY@@@@@@0@%8#@A-add_signaturew[!%[!2@б@гe#env[!5[!8@@ @@@@@б@г&string[!<[!B@@ @@@)@@б#relг &string[!K[!Q@@ @@@:@@б@г%Types)signature%Types[!U[!d@@@@@ N@@г#env[!h[!k@@ @@@ [@@@@@ ^@@5j.@@@  @@ f[!F@@@D @@ jG@@@V@@ mY@@@[!!@@C@@@s-add_extension \lp \l}@б@г֠#env\l\l@@ @@@ 0@@A@@б@г)Odoc_name!t)Odoc_name*\l+\l@@@@@ @@г#env7\l8\l@@ @@@ #@@@@@ &@@@,@@ )/ @@@E\ll@@\D@@@/(add_typeP]Q]@б@г#env[]\]@@ @@@ 0]\\]]]]]@H]@A@@б@гG!t)Odoc_nameo]p]@@ @@@ @@г>#env|]}]@@ @@@ !@@@@@ $@@@*@@ '- @@@]@@E@@@-)add_value^^@б@гb#env^^@@ @@@ 0@F[@A@@б@г!t)Odoc_name^^@@ @@@ @@г#env^^@@ @@@ !@@@@@ $@@@*@@ '- @@@^@@F@@@-*add_module__@б@г#env__@@ @@@ 0@F[@A@@б@г!t)Odoc_name__@@ @@@ @@гȠ#env__@@ @@@ !@@@@@ $@@@*@@ '- @@@_@@+G@@@-/add_module_type` `+@б@г점#env*`.+`1@@ @@@ 0,++,,,,,@F[@A@@б@г!t)Odoc_name>`5?`@@@ @@@ @@г #envK`DL`G@@ @@@ !@@@@@ $@@@*@@ '- @@@Y`@@pH@@@-)add_classdaHLeaHU@б@г1#envoaHXpaH[@@ @@@ 0qppqqqqq@F[@A@@б@г[!t)Odoc_nameaH_aHj@@ @@@ @@гR#envaHnaHq@@ @@@ !@@@@@ $@@@*@@ '- @@@aHH@@I@@@-.add_class_typebrvbr@б@гv#envbrbr@@ @@@ 0@F[@A@@б@г!t)Odoc_namebrbr@@ @@@ @@г#envbrbr@@ @@@ !@@@@@ $@@@*@@ '- @@@brr@@J@@@- 6 Retrieving fully qualified names from an environment dd@@@@@@0@=R@A0full_module_namegg*@б@г̠#env g- g0@@ @@@ @@б@г!t)Odoc_nameg4g?@@ @@@ ,@@г!t)Odoc_name,gC-gN@@ @@@ <@@@@@ ?@@@+@@ B. @@@:g@ 1 Get the fully qualified module name from a name.FfGf@@@@@@@^K@@U5full_module_type_nameRjSj@б@г#env]j^j@@ @@@ 0_^^_____@ni,@A@@б@гI!t)Odoc_nameqjrj@@ @@@ @@гY!t)Odoc_namejj@@ @@@ $@@@@@ '@@@-@@ *0 @@@j@M 6 Get the fully qualified module type name from a name.iPPiP@@@@@@@L@@=?full_module_or_module_type_namenIMnIl@б@гt#envnIonIr@@ @@@ 0@Vk,@A@@б@г!t)Odoc_namenIvnI@@ @@@ @@г!t)Odoc_namenInI@@ @@@ $@@@@@ '@@@-@@ *0 @@@nII@ x Get the fully qualified module or module type name from a name. We look for a module type if we don't find a module.lmH@@@@@@@M@@=.full_type_nameqq@б@гɠ#envqq@@ @@@ 0      @Vk,@A@@б@г!t)Odoc_nameqq@@ @@@ @@г!t)Odoc_name+q,q@@ @@@ $@@@@@ '@@@-@@ *0 @@@9q@ / Get the fully qualified type name from a name.EpFp@@@@@@@]N@@=/full_value_nameQt 5 9Rt 5 H@б@г#env\t 5 K]t 5 N@@ @@@ 0^]]^^^^^@Vk,@A@@б@гH!t)Odoc_namept 5 Rqt 5 ]@@ @@@ @@гX!t)Odoc_namet 5 at 5 l@@ @@@ $@@@@@ '@@@-@@ *0 @@@t 5 5@L 0 Get the fully qualified value name from a name.ss 4@@@@@@@O@@=?full_extension_constructor_namew  w  @б@гs#envw  w  @@ @@@ 0@Vk,@A@@б@г!t)Odoc_namew  w  @@ @@@ @@г!t)Odoc_namew  w  @@ @@@ $@@@@@ '@@@-@@ *0 @@@w  @ 4 Get the fully qualified extension name from a name.v n nv n @@@@@@@P@@=/full_class_namez ' +z ' :@б@гȠ#envz ' =z ' @@@ @@@ 0@Vk,@A@@б@г!t)Odoc_namez ' Dz ' O@@ @@@ @@г!t)Odoc_name*z ' S+z ' ^@@ @@@ $@@@@@ '@@@-@@ *0 @@@8z ' '@ 0 Get the fully qualified class name from a name.Dy  Ey  &@@@@@@@\Q@@=4full_class_type_nameP}  Q}  @б@г#env[}  \}  @@ @@@ 0]\\]]]]]@Vk,@A@@б@гG!t)Odoc_nameo}  p}  @@ @@@ @@гW!t)Odoc_name}  }  @@ @@@ $@@@@@ '@@@-@@ *0 @@@}  @K 5 Get the fully qualified class type name from a name.| ` `| ` @@@@@@@R@@==full_class_or_class_type_name@  !@  >@б@гr#env@  A@  D@@ @@@ 0@Vk,@A@@б@г!t)Odoc_name@  H@  S@@ @@@ @@г!t)Odoc_name@  W@  b@@ @@@ $@@@@@ '@@@-@@ *0 @@@@  @ > Get the fully qualified class or class type name from a name.    @@@@@@@S@@=/ Substitutions B d dB d x@@@@@@0@Mb#@A*subst_type E   E  @б@гؠ#envE  E  @@ @@@ @@б@гS)type_expr%Types(E  )E  @@ @@@ ,@@гc)type_expr%Types8E  9E  @@ @@@ <@@@@@ ?@@@+@@ B. @@@FE  @ D Replace the [Path.t] by a complete [Path.t] in a [Types.type_expr].RD z zSD z @@@@@@@jT@@U1subst_module_type^H L P_H L a@б@г+#enviH L djH L g@@ @@@ 0kjjkkkkk@ni,@A@@б@г+module_type%Types}H L k~H L |@@ @@@ @@г+module_type%TypesH L H L @@ @@@ $@@@@@ '@@@-@@ *0 @@@H L L@Y F Replace the [Path.t] by a complete [Path.t] in a [Types.module_type].G  G  K@@@@@@@U@@=0subst_class_typeN 2 6N 2 F@б@г#envN 2 IN 2 L@@ @@@ 0@Vk,@A@@б@г*class_type%TypesN 2 PN 2 `@@ @@@ @@г *class_type%TypesN 2 dN 2 t@@ @@@ $@@@@@ '@@@-@@ *0 @@@N 2 2@ Replace the [Path.t] by a complete [Path.t] in a [Types.class_type]. Also empty the structures to get only [object end] when the type is printed. J  M / 1@@@@@@@V@@=@A@@r @@@{?@8@@v@o3@@@w8@$@@~?@+@@F@!@@}>@@0)(()))))@j@@A@ H************************************************************************2A@@3A@L@ H 8BMM9BM@ H OCaml >C?C@ H DDED3@ H Maxence Guesdon, projet Cristal, INRIA Rocquencourt JE44KE4@ H PFQF@ H Copyright 2001 Institut National de Recherche en Informatique et VGWG@ H en Automatique. \H]Hg@ H bIhhcIh@ H All rights reserved. This file is distributed under the terms of hJiJ@ H the GNU Lesser General Public License version 2.1, with the nKoKN@ H special exception on linking described in the file LICENSE. tLOOuLO@ H zM{M@ H************************************************************************NN5@ >* Environment for finding complete names from relative names.  G* An environment of known names, from simple name to complete name. 99* The empty environment. ;* Extending an environment  7* Retrieving fully qualified names from an environment  2* Get the fully qualified module name from a name.O 7* Get the fully qualified module type name from a name. y* Get the fully qualified module or module type name from a name. We look for a module type if we don't find a module. 0* Get the fully qualified type name from a name.Y 1* Get the fully qualified value name from a name. 5* Get the fully qualified extension name from a name. 1* Get the fully qualified class name from a name.c 6* Get the fully qualified class type name from a name. ?* Get the fully qualified class or class type name from a name.0* Substitutions  E* Replace the [Path.t] by a complete [Path.t] in a [Types.type_expr].a G* Replace the [Path.t] by a complete [Path.t] in a [Types.module_type]. * Replace the [Path.t] by a complete [Path.t] in a [Types.class_type]. Also empty the structures to get only [object end] when the type is printed. @)../ocamlc)-nostdlib"-I)../stdlib"-I(../utils"-I*../parsing"-I)../typing"-I)../driver"-I+../bytecomp"-I+../toplevel"-I)../stdlib"-I/../compilerlibs"-I0../otherlibs/str"-I4../otherlibs/dynlink"-I;../otherlibs/dynlink/native"-I1../otherlibs/unix(-absname"-w8+a-4-9-41-42-44-45-48-70+-warn-error"+A,-safe-string0-strict-sequence/-strict-formats*-bin-annot*-principal"-cߐ