Caml1999I031&4B^%Subst!t8@@@A@@@@@0typing/subst.mliTXXTX^@@@@ AA@(identity@@@Z@bb@@B@(add_type@%Ident!t@@@[@$Path!t@@@\@#@@@]&@@@^@@_@@`@@a@3d4d@@=C@-add_type_path@!t@@@b@#!t@@@c@D@@@dG@@@e@@f@@g@@h@TeUe@@^D@1add_type_function@!t@@@@@@@@@@@b,0c,S@@l}@@A@@@@@f @@@@ogB@.of_module_decl@2module_declaration@@@@@@@@@yVXzV@@~@*of_modtype@+module_type@@@ @@@@@@@@@/of_modtype_decl@)3modtype_declaration@@@@@@@@@ @@@@,of_signature@=)signature@@@@@@@@@?@@A@2of_signature_items@Wt@@@@@@@@@@@ @@B@{@@B@1of_signature_item@h.signature_item@@@!@@@"@@#@|~|@@C@+module_decl@_@@@$@@@@%@+@@@&.@@@'@@(@@)@@*@@@D@'modtype@z@@@+@@@@,@@@@-@@@.@@/@@0@@1@/@@ E@,modtype_decl@@@@2@@@@3@@@@@4C@@@5@@6@@7@@8@10220@@;F@)signature@@@@9@7@@@:@t@@@;w@@@<@@=@@>@@?@LM@@VG@.signature_item@@@@@@R@@@A@@@@B@@@C@@D@@E@@F@gh@@qH@1force_module_decl@@@@G2module_declaration@@@H@@I@{|C@@I@-force_modtype@ @@@J+module_type@@@K@@L@DFDv@@J@2force_modtype_decl@@@@M.3modtype_declaration@@@N@@O@wyw@@K@/force_signature@@@@PB)signature@@@Q@@R@@@L@4force_signature_once@@@@S\@@@T@@@U@@V@5@@M@4force_signature_item@@@@Wl.signature_item@@@X@@Y@686y@@N@@@\z}@O@@@W%Subst0BYw>*Su}Ck(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+Outcometree0gCtr@@ ;A@@@d@@C@@@A-add_type_pathee@б@гH!t$Pathee@@ @@@ 0@]w"@A@@б@г\!t$Pathee@@ @@@ @@б@г!tee@@ @@@ #@@гɠ!tee@@ @@@ 0@@@@@ 3@@@%@@ 6( @@@<@@ 9?@@@ e@@1D@@@?1add_type_function+f,f@б@г!t$Path9g:g@@ @@@ 0;::;;;;;@[s"@A@@б¶msгݠ$listLgMg @гY)type_exprVgWg@@ @@@ @@@@@@ " @@б$bodyгo)type_exprlg)mg2@@ @@@ 3@@б@г5!t{g6|g7@@ @@@ B@@гB!tg;g<@@ @@@ O@@@@@ R@@0%@@ Ug$ @@T;@@ Yg @@@`@@ ]c@@@f@@E@@@c*add_moduleh=Ah=K@б@г6!t%Identh=Mh=T@@ @@@ 0@"@A@@б@г4!t$Pathh=Xh=^@@ @@@ @@б@г!th=bh=c@@ @@@ #@@г!th=gh=h@@ @@@ 0@@@@@ 3@@@%@@ 6( @@@<@@ 9?@@@h==@@ F@@@?/add_module_pathiimii|@б@гz!t$Pathii~ii@@ @@@ 0@[s"@A@@б@г!t$Path%ii&ii@@ @@@ @@б@г!t4ii5ii@@ @@@ #@@г!tAiiBii@@ @@@ 0@@@@@ 3@@@%@@ 6( @@@<@@ 9?@@@Riii@@cG@@@?+add_modtype]j^j@б@г!t%Identkjlj@@ @@@ 0mllmmmmm@[s"@A@@б@г+module_type|j}j@@ @@@ @@б@гE!tjj@@ @@@  @@гR!tjj@@ @@@ -@@@@@ 0@@@%@@ 3( @@@9@@ 6<@@@j@@H@@@<0add_modtype_pathkk@б@г+!t$Pathkk@@ @@@ 0@Xp"@A@@б@г+module_typekk@@ @@@ @@б@г!tkk@@ @@@  @@г!tkk@@ @@@ -@@@@@ 0@@@%@@ 3( @@@9@@ 6<@@@k@@I@@@<*for_saving m m@б@гР!tmm@@ @@@ 0@Um@A@@гߠ!t%m&m@@ @@@ @@@@@ @@@0m @@AJ@ @@0reset_for_saving;n3( @@@9@@?6<@@@O  @@ ^@@@<2module_declarationQ S WQ S i@б@г'scoping Q S k Q S r@@ @@@@0        @Uj@A@@б@гѠ!t Q S v Q S w@@ @@@A@@б@г )2module_declaration &Q S { 'Q S @@ @@@B @@г 62module_declaration 3Q S  4Q S @@ @@@C-@@@@@D0@@@%@@E3( @@@9@@F6<@@@ DQ S S@@ U_@@@<'compose  OU  PU  @б@г!t ZU   [U  @@ @@@G0 \ [ [ \ \ \ \ \@Uj@A@@б@г%!t kU  lU @@ @@@H@@г2!t xU  yU @@ @@@I@@@@@J!@@@'@@K$* @@@ U  @@ `@@@*5ctype_apply_env_empty  XLP XLe@г`#ref Yg Yg@б@г 7$list Ygt Ygx@г )type_expr Ygj Ygs@@ @@@L0        @Wl3@A@@@ @@@N @@б@г )type_expr Yg| Yg@@ @@@O@@б@г f$list Yg Yg@г )type_expr Yg Yg@@ @@@P/@@@@@@R4 @@г )type_expr Yg Yg@@ @@@SA@@@@@TD@@@4@@UG7 @@@G@@VJP@@@m@@@XO Ygik@@@ XLLn@@ a@p@@V$LazyC \ \@@БA(+module_decl D #] $]@@8@@(mdl_type@'modtype D@@@Y 2_ 3_@@ Di.mdl_attributesZ@)Parsetree*attributes@@@b B` C`@@ Tj'mdl_loc[@!t@@@e Pa$ Qa8@@ bk'mdl_uid@ b#Uid!t@@@ _b9? `b9N@@ ql@@A@@@@@ c] dcOT@@@@ ub@@@9 k_@@Ш@гC'modtype t_ u_@@K0 s r r s s s s s@x_8@@@A@@@@@@@@Q8@@@A@@@@@ eVX i@@@@ c3modtype_declaration D8@@@A@@@@@ k q@@@@ d)signatureD8@@@A@@@@@ s s@@@@ e.signature_itemD8@@@A@@@@@ u ~@@@@ f1functor_parameterD8@@@A@@@@@   ,S@@@@ g@A-,@@x@F@Z-@r@nne `@@Ш@гq)Parsetreeq ` `@@z=@@}@F@c@@u@qqj a+@@Ш@гt(Locationv a- a7@@}P@@@F@fS@z@vvn b9F@@Ш@гyzy b9H b9M@@b@@@F@e@}@@A@y@( eV\ eVc@@8@@*MtyL_ident \!t@@@@@ ffj ff@@ m.MtyL_signatureq@@@@@ g g@@ n,MtyL_functorq@@@@@@@@ h h@@ #o*MtyL_alias !t@@@@@ !i@@ 2p@@A@@@@@@@@@AA (ffl )ffv@@гC$PathE 3ffzC@@KD@@@@F@BB 9g :g@@гD)signature CgE@@KΰF@@@@H@DD Ih Jh@@гF1functor_parameter Sh Th@@N߰@@гK'modtype ]hL@@RM@@@@O@KK ci di@@гM$PathO ni@@U@@@@P@@A@@( tk uk @@8@@)mtdl_type@ U@@@@@@ m m3@@ q/mtdl_attributes@T*attributes@@@ nJP nJv@@ r(mtdl_loc@!t@@@ ow} ow@@ s(mtdl_uid@ #Uid!t@@@ p p@@ t@@A@@@@@-@@@*@==3 m"@@Ш@г@&option m, m2@гE'modtype m$ m+@@MW@@@RX @@U@F@[@L@HHA nJ_@@Ш@гK)ParsetreeM nJa nJu@@Tk@@W@F@n@Q@MMF ow@@Ш@гP(LocationR ow ow@@Y~@@\@F@@V@RRJ p@@Ш@гUVU p p@@]@@`@F@@Y@@A@@( s~@@8@@@A@@@@@@@@~@@A@@( u u@@8@@*SigL_value !t@@@ .1value_description@@@ 4*visibility@@@@@ 0v 1v@@ Bu)SigL_type !t@@@ J0type_declaration@@@ P*rec_status@@@ V*visibility@@@@@ Rw Sw]@@ dv+SigL_typext !t@@@ l5extension_constructor@@@ r*ext_status@@@ x*visibility@@@@@ tx^b ux^@@ w+SigL_module !t@@@ /module_presence@@@n@@@ *rec_status@@@ *visibility@@@@@ y z @@ x,SigL_modtype -!t@@@*@@@ *visibility@@@@@ {  { L@@ y*SigL_class H!t@@@ 1class_declaration@@@ *rec_status@@@ *visibility@@@@@ |MQ |M@@ z/SigL_class_type j!t@@@ 6class_type_declaration@@@ *rec_status@@@ *visibility@@@@@ }d@@ {@@A@@@@@g@@@d@ v@@г砡%Ident v v@@@@г렐 v v@@@@г v @@@@@@@ #w $w%@@г%Ident .w) /w0@@@@г 7w3 8wC@@ð@@г @wF AwP@@̰@@г IwS@@԰@@@@@ Ox^d Px^o@@г%Ident Zx^s [x^z@@@@г cx^} dx^@@@@г lx^ mx^@@@@г ux^@@@@@@@ {y |y@@г%Ident z z@@ @@г z z@@ @@г +module_decl z z@@%@@г z z@@.@@г z@@6@@@@@ {  { @@г%Ident { " { )@@H@@г3modtype_declaration { , { ?@@R@@г { B@@ Z@@@@@ |MS |M]@@г%Ident |Ma |Mh@@#l@@г |Mk |M|@@%u@@г!" |M |M@@(~@@г$% |M#@@*$@@@@&@""}}@@г$%Ident& } }@@-@@г()}}@@/@@г+,~~@@2@@г./'~@@4@@@@0@@A@@(- .@@8@@$Unit@@7!%8!+@@I|%Named  !t@@@@@@!@@@@@Q,0@@b}@@A@@@@@@@@@##X!'!@@@@$@  ^,2_,7@@г"&optionh,Ci,I@г'%Ident)r,;s,B@@0@@@5 @@г+'modtype},L@@2@@@@/@@A@@@0|{{|||||@@A@.of_module_declV\Vj@б@г2module_declaration%TypesVmV@@ @@@40@& t-u~@A  @@г+module_declVV@@ @@@5@@@@@6@@@VX @@~@ @@*of_modtype@б@г+module_type%Types@@ @@@70@9Q"@A@@г'modtype@@ @@@8@@@@@9@@@ @@@ @@/of_modtype_decl@б@г3modtype_declaration%Types@@ @@@:0@4L"@A@@г3modtype_declaration @@ @@@;@@@@@<@@@ @@-@@ @@,of_signature'( @б@г5)signature%Types5#62@@ @@@=076677777@4L"@A@@г)signatureD6E?@@ @@@>@@@@@?@@@O @@`A@ @@2of_signature_itemsZ@F[@X@б@г$liste@jf@n@г٠.signature_itemo@[p@i@@ @@@@0qppqqqqq@;S)@A@@@ @@@B @@г)signature@r@{@@ @@@C@@@@@D@@@@B @@B@ @@1of_signature_item||@б@г.signature_item%Types||@@ @@@E0@9X"@A@@г .signature_item||@@ @@@F@@@@@G@@@|~ @@C@ @@+module_decl@б@г~'scoping@@ @@@H0@1I@A@@б@г!t@@ @@@I@@б@гԠ+module_decl@@ @@@J @@г᠐+module_decl@@ @@@K-@@@@@L0@@@%@@M3( @@@9@@N6<@@@@@&D@@@<'modtype ! @б@гҠ'scoping+ ,@@ @@@O0-,,-----@Uj@A@@б@г!t<=@@ @@@P@@б@г'modtypeKL$@@ @@@Q @@г&'modtypeX(Y/@@ @@@R-@@@@@S0@@@%@@T3( @@@9@@U6<@@@i@@zE@@@<,modtype_declt06u0B@б@г &'scoping0E0L@@ @@@V0@Uj@A@@б@гJ!t0P0Q@@ @@@W@@б@г3modtype_declaration0U0h@@ @@@X @@г$3modtype_declaration0l0@@ @@@Y-@@@@@Z0@@@%@@[3( @@@9@@\6<@@@02@@F@@@<)signature@б@г z'scoping@@ @@@]0@Uj@A@@б@г!t@@ @@@^@@б@гd)signature@@ @@@_ @@гq)signature@@ @@@`-@@@@@a0@@@%@@b3( @@@9@@c6<@@@@@"G@@@<.signature_item@б@г Π'scoping'(@@ @@@d0)(()))))@Uj@A@@б@г!t89@@ @@@e@@б@г.signature_itemGH@@ @@@f @@г.signature_itemTU@@ @@@g-@@@@@h0@@@%@@i3( @@@9@@j6<@@@e@@vH@@@<1force_module_declpq@б@гX+module_decl{|'@@ @@@k0}||}}}}}@Uj@A@@г2module_declaration%Types+C@@ @@@l@@@@@m@@@ @@I@ @@-force_modtypeDJDW@б@г|'modtypeDZDa@@ @@@n0@4I@A@@г+module_type%TypesDeDv@@ @@@o@@@@@p@@@DF @@J@ @@2force_modtype_declw}w@б@гY3modtype_declarationww@@ @@@q0@4I@A@@г3modtype_declaration%Typesww@@ @@@r@@@@@s@@@wy @@K@ @@/force_signature  @б@г)signature@@ @@@t0@4I@A@@г&)signature%Types&'@@ @@@u@@@@@v@@@1 @@BL@ @@4force_signature_once<=@б@г)signatureGH@@ @@@w0IHHIIIII@4I@A@@г砐$listV1W5@гʠ.signature_item`"a0@@ @@@x@@@@@@z @@@$@@{!'@@@p@@M@@@'4force_signature_item{6<|6P@б@г.signature_item6S6a@@ @@@|0@@U@A@@г.signature_item%Types6e6y@@ @@@}@@@@@~@@@68 @@N@ @@@A@|B@(6B@#B@B@B@/@@@m@f0@)@@[@T @@e@^4@-@@@d@]3@@0@J_5@A10@[@A\z}@@@\@@@A@|@u @@L@E@@G@@@@@Q@J @ @  @ x ?@ 8 @  @  @ x ?@ 8 @  @  A@ g @  @  x@ q &@  @  @  @ @G@B-O@@@0@ @ A@EB@B@B@B@B@|@uK@D@@@{@t)@"@@~3@,@@@xN@G@@@@@u3@A@ H************************************************************************TA@@UA@L@ H ZBMM[BM@ H OCaml `CaC@ H fDgD3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt lE44mE4@ H rFsF@ H Copyright 1996 Institut National de Recherche en Informatique et xGyG@ H en Automatique. ~HHg@ H IhhIh@ H All rights reserved. This file is distributed under the terms of JJ@ H the GNU Lesser General Public License version 2.1, with the KKN@ H special exception on linking described in the file LICENSE. LOOLO@ H MM@ H************************************************************************NN5@/ Substitutions P77P7J@  Substitutions are used to translate a type from one context to another. This requires substituting paths for identifiers, and possibly also lowering the level of non-generic variables so that they are inferior to the maximum level of the new context. Substitutions can also be used to create a "clean" copy of a type. Indeed, non-variable node of a type are duplicated, with their levels set to generic level. That way, the resulting type is well-formed (decreasing levels), even if the original one was not. V```{}@ l When applied to a signature item, a substitution not only modifies the types present in its declaration, but also refreshes the identifier of the item. Effectively this creates new declarations, and so one should decide what the scope of this new declaration should be. This is decided by the [scoping] argument passed to the following functions. ~  E  @ T Composition of substitutions: apply (compose s1 s2) x = apply s2 (apply s1 x) S  T  @ / A forward reference to be filled in ctype.ml. WWK@0 Note: abstract m5mI@@-./boot/ocamlc"-g)-nostdlib"-I$boot*-use-prims2runtime/primitives0-strict-sequence*-principal(-absname"-w>+a-4-9-40-41-42-44-45-48-66-70+-warn-error"+a*-bin-annot,-safe-string/-strict-formats"-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"-c 3/home/barsac/ci/builds/workspace/step-by-step-build - @07 āĩ#*IV0@@@(Asttypes0'$O~78CamlinternalFormatBasics0cEXy*Su}Ck.Type_immediacy0dV^25b)̓ԆSj0lm?ƈ(Warnings0zdͦkUe$@0BYw>*Su}CkAv  @    @   S R@NM    @@@    poVU@ \ [@ed@߰ h g  @@~}@  @@ik@@@@ Q T@@  @:9@@@KJ@@UT / 2@YX@]\  ΰ԰@fe@ 1 4@@@P@