Caml1999I0312 N#"(Printtyp)longident@&Stdlib&Format)formatter@@@@)Longident!t@@@$unitF@@@@@@@@3typing/printtyp.mliVzzVz@@'A@%ident@&#)formatter@@@@%Ident!t@@@"@@@@@@@@ W!W@@FB@,tree_of_path@$Path!t@@@+Outcometree)out_ident@@@@@@;X&@@?@@@@@&Format)formatter@@@As@@@B@@C@@D@@E@@F@qr)a@@z@.type_or_scheme8@@$Type@@cyc}@@|+Type_scheme@@c~c@@}@@A@@@@@cc@@A@{A@1tree_of_signature@`)signature@@@Gn,out_sig_item@@@H@@@I@@J@@@~@.tree_of_typexp@>@@@K@)type_expr@@@L(out_type@@@M@@N@@O@@@@3modtype_declaration@!t@@@P@)formatter@@@Q@3modtype_declaration@@@R@@@S@@T@@U@@V@Q@@ @@*class_type@ )formatter@@@W@*class_type@@@X@@@Y@@Z@@[@RRR@@(A@9tree_of_class_declaration@!t@@@\@1class_declaration@@@]@*rec_status@@@^,out_sig_item@@@_@@`@@a@@b@&'@@LB@1class_declaration@!t@@@c@SP)formatter@@@d@ 1class_declaration@@@eL@@@f@@g@@h@@i@JK(@@pC@:tree_of_cltype_declaration@A!t@@@j@&6class_type_declaration@@@k@-*rec_status@@@l6,out_sig_item@@@m@@n@@o@@p@n))oI@@D@2cltype_declaration@e!t@@@q@)formatter@@@r@R6class_type_declaration@@@s@@@t@@u@@v@@w@@@E@.type_expansion@@@@x@&Format)formatter@@@y@*Errortrace-expanded_type@@@z@@@{@@|@@}@@~@ 9@@G@1prepare_expansion@-expanded_type@@@-expanded_type@@@@@@ : : : @@H@;report_ambiguous_type_error@)formatter@@@@r!t@@@@!t@@@!t@@@@@@!t@@@!t@@@@@@@@@@.+)formatter@@@ @@@@@@@<9)formatter@@@.@@@@@@@JG)formatter@@@<@@@@@@@@@@@@@@@@@@@@@@@@>  ? !=@@dI@8report_unification_error@c`)formatter@@@@!t@@@@1unification_error@@@9type_expected_explanationҠ@)formatter@@@t@@@@@@@@@@)formatter@@@@@@@@@@)formatter@@@@@@@@@@@@@@@@@@@@@@@@!?!?!"@@J@5report_equality_error@)formatter@@@@@@@@@@EL@7report_comparison_error@DA)formatter@@@@@@@@!t@@@@0comparison_error@@@@@c`)formatter@@@U@@@@@@@qn)formatter@@@c@@@@@g@@@@@@@@@@@@@@@@e#@#@f##@@M@Ӡ'Subtype@,report_error@)formatter@@@[@!t@@@\@'Subtype%error@@@]@'@@@^@@@_@@`@@a@@b@@c@##$Y$a@@N@@@##$b$e@O@@+print_items@@:!t@@@@z.signature_item@@@%!a@@@@@@@@@R!t@@@@.signature_item@@@@@@Š,out_sig_item@@@O*@@@@@@@@@@@@@@@$y$y$$@@ P@?rewrite_double_underscore_paths@!t@@@@!t@@@!t@@@@@@@@ %% %%@@ +Q@1printed_signature@@@@@ 0 -)formatter@@@@)signature@@@ )@@@@@@@@@@ '&E&E (&E&@@ MR@@q(Printtyp0 w"!qC3Ȇ(Warnings0zdͦkUe$%Types0lm?ƈ.Type_immediacy0dV^25b)̓ԆSj%Subst0BYw>*Su}Ck-Stdlib__Uchar0*Ujmyc6]]W.Stdlib__String0I3UK# +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__Digest0aI]2t*x4%".Stdlib__Buffer0K ɦb+Z8)#KH"&Stdlib0yӶ~*%Shape0H[DTċwToe@Q)Primitive0յ_9|br$Path0L%SsN|#Ɣj)Parsetree0`ⰧkRE+Outcometree0gCtr@A7RQQ6@@054455555@2@A8@ࠐ%Types%TypesFS]bGS]g@@A0EDDEEEEE@D @AKS]]@@I@ࠐ+Outcometree+OutcometreeYThmZThx@@A0XWWXXXXX@ @A^Thh@@@)longident1hVz~iVz@б@гw)formattersVztVz@@ @@@@@б@г)Longident!t)LongidentVzVz@@@@@1@@г預$unitVzVz@@ @@@>@@@@@A@@@*@@D- @@@Vzz@@A@@@J%identXWW@б@г)formatterWW@@ @@@0@c[@A@@б@г%Ident!t%IdentWW@@@@@@@г0$unitWW@@ @@@#@@@@@ &@@@,@@ )/ @@@W@@B@@@/,tree_of_pathkXX@б@г$Path!t$PathXX@@@@@0@Mb$@A@@г)out_identXX@@ @@@@@@@@@@@X @@0C@ @@$pathl)Y*Y@б@г8)formatter4Y5Y @@ @@@065566666@1K@A@@б@гF!t$PathHYIY@@ @@@@@г$unitUYVY@@ @@@!@@@@@$@@@*@@'- @@@cY@@uD@@@-.string_of_pathmnZ"oZ0@б@гz!t$Path|Z2}Z8@@ @@@0~}}~~~~~@I^"@A@@г䠐&stringZ<ZB@@ @@@@@@@@@@@Z @@E@ @@)type_pathn\DH\DQ@б@г)formatter\DS\D\@@ @@@0@1I@A@@б@г!t$Path\D`\Df@@ @@@@@г"$unit\Dj\Dn@@ @@@!@@@@@$@@@*@@'- @@@\DD@)ocaml.doc e Print a type path taking account of [-short-paths]. Calls should be within [wrap_printing_env]. ]oo^@@@@@@@F@@<(Out_nameqA``@@Б&createoaa@б@гh&stringaa@@ @@@0@dy=@A@@г(out_nameaa@@ @@@@@@@@@@@)a @@;G@ @@%printp4b5b@б@г(out_name?b@b&@@ @@@0A@@AAAAA@1F@A@@г&stringNb*Ob0@@ @@@@@@@@@@@Yb @@kH@ @@@^7@0 @@0]\\]]]]]@2 @A0`__`````@O@Ae`fc14@@@h`@@A()namespacerBse6;te6D@@8@@$Types@@}fGI~fGO@@K&Modulet@@gPRgPZ@@L+Module_typeu@@h[]h[j@@M%Classv@@ikmikt@@N*Class_typew@@juwju@@O%Otherx@@kk@А 9 Other bypasses the unique name for identifier mechanism kk@@@@@@@P@@A@@@@@e66@@A@J@GGfGKE@@@@H@DDgPTB@@@@E@AAh[_?@@@@B@>>iko<@@@@?@;;juy9@@@@<@88k6@@@@96@A@(@@0@@@@@@I@A1A@0strings_of_pathsymm@б@г)namespacemm@@ @@@0@#@A@@б@г$listmm@г!t$Pathmm@@ @@@@@@@@@# @@г$list/m0m @г&string9m:m@@ @@@:@@@@@@? @@@#@@B*@@@H@@EK@@@Lm@q W Print a list of paths, using the same naming context to avoid name collisions Xn YoLl@@@@@@@kQ@,@X-raw_type_exprzdqnreqn@б@гs)formatteroqnpqn@@ @@@0qppqqqqq@q,@A@@б@г=)type_exprqnqn@@ @@@@@г⠐$unitqnqn@@ @@@@@@@@!@@@'@@$* @@@qnn@@R@@@*/string_of_labelrr@б@г(Asttypes)arg_label(Asttypesrr@@@@@0@H]$@A@@г&stringrr@@ @@@@@@@@@@@r @@S@ @@1wrap_printing_env,tt@б%errorг$booltt@@ @@@0@3M!@A@@б@г#Env!t#Envtt@@@@@@@б@б@гd$unittt@@ @@@'@@А!a@C@0t t @@@ @@5@@А!a9't(t@@@ @@>,t@@@/@@B2@@SH@@E3t @@@6t@@HT@@@L.Naming_context/CCyDy@@Б&enable-PzQz @б@г&$bool[z \z @@ @@@0]\\]]]]]@t.@A@@г$unitjz kz @@ @@@@@@@@@@@uz @ q When contextual names are enabled, the mapping between identifiers and names is ensured to be one-to-one. {  | Z @@@@@@@U@@%%reset.~  ~  @б@г$unit~  ~  @@ @@@0@>S,@A@@г$unit~  ~  @@ @@@@@@@@@@@~   @א: Reset the naming context     @@@@@@@V@@%@xQ@=@@0@*?@A0@i@Ay@  @@@y@@)ConflictswDE  E  @@Б&exists0F  F  @б@гG$unitF  F  @@ @@@0@@@vO@@@2W@A@@гӠ$boolF   F  @@ @@@@@@@@@@@F   @8 o [exists()] returns true if the current naming context renamed an identifier to avoid a name collision G   H  8@@@@@@@2X@@,A(+explanation1E,J : A-J : L@@8@@$kind2@@@@ְ9K O U:K O e@@LZ$name3@@@@ٰEL f lFL f x@@X[)root_name4@@@@ܰQM y RM y @@d\(locationr@(Location!t@@@!ϰaN  bN  @@t]@@A@@@@@eJ : <fO  @@@@xY@994mK O Y@@Ш@г<)namespacevK O [wK O d@@D0uttuuuuu@jS8@@@A@@@@@@@@@A@@K@G@@G@CC>L f p@@Ш@гF&stringL f qL f w@@N@@Q@G@@M@IIDM y @@Ш@гL&stringM y M y @@T(@@W@G@+@S@OOFN  @@Ш@гR(LocationRN  P@@Z:Q@@]@G@!=@U@@A@Q@@0@<@ARQ@1list_explanationssQ  Q  @б@г$unitQ  Q  @@ @@@!0@W@A@@гj$listQ  Q  @г+explanationQ  Q  @@ @@@!@@@@@@! @@@$@@!!'@@@Q  @ [list_explanations()] return the list of conflict explanations collected up to this point, and reset the list of collected explanations R  T g z@@@@@@@^@)@4:print_located_explanationst V |  V | @б@г&Format)formatterW  W  @@ @@@!0@Pe/@A@@б@г$list*W  +W  @г+explanation4W  5W  @@ @@@!@@@@@@!  @@г$unitFW  GW  @@ @@@!-@@@@@!0@@@6@@!39 @@@TV | ~@@f_@@@92print_explanationsu_Y  `Y  @б@гn&Format)formattermY  nY  @@ @@@!0onnooooo@Um"@A@@гѠ$unit|Y  }Y  @@ @@@!@@@@@!@@@Y   @ < Print all conflict explanations collected up to this point Z  Z  F@@@@@@@`@@%%resetv\ H N\ H S@б@г$unit\ H U\ H Y@@ @@@!0@>V,@A@@г$unit\ H ]\ H a@@ @@@!@@@@@!@@@\ H J @@a@ @@@@A@@}@vL@8@@0@%:@A0@@AE  ] b e@@ The [Conflicts] module keeps track of conflicts arising when attributing names to identifiers and provides functions that can print explanations for these conflict in error messages B  D e @@@@@@@E  @@%resetx_ g k_ g p@б@гR$unit_ g r_ g v@@ @@@!0@ /@%@A@Q@@@wP@@8+#b@A@@гp$unit_ g z_ g ~@@ @@@!@@@$@@!!'@@@&_ g g @@8c@ @@')type_expry1g!2g*@б@г@)formatter<g,=g5@@ @@@!0>==>>>>>@@U@A@@б@г )type_exprMg9NgB@@ @@@!@@г$unitZgF[gJ@@ @@@!@@@@@!!@@@'@@!$* @@@hg@  Print out a type. This will pick names for type variables, and will not reuse names for common type variables shared across multiple type expressions. (It will also reset the printing state, which matters for other type formatters such as [prepared_type_expr].) If you want multiple types to use common names for type variables, see [prepare_for_printing] and [prepared_type_expr]. ta  uf@@@@@@@d@@74prepare_for_printingzmm@б@г$listmm@гR)type_exprmm@@ @@@!0@Zo6@A@@@ @@@! @@г$unitmm@@ @@@!@@@@@!@@@m @ِ 4 [prepare_for_printing] resets the global printing environment, a la [reset], and prepares the types for printing by reserving names and marking loops. Any type variables that are shared between multiple types in the input list will be given the same name when printed with [prepared_type_expr]. iLLl;@@@@@@@e@@*7add_type_to_preparation{r*.r*E@б@г)type_exprr*Gr*P@@ @@@!0@Cb,@A@@г;$unitr*Tr*X@@ @@@"@@@@@"@@@r** @ l [add_type_to_preparation ty] extend a previous type expression preparation to the type expression [ty] oq')@@@@@@@ f@@%2prepared_type_expr| tZ^ tZp@б@г )formatter tZr tZ{@@ @@@"0        @>S,@A@@б@г)type_expr %tZ &tZ@@ @@@"@@г$unit 2tZ 3tZ@@ @@@"@@@@@"!@@@'@@"$* @@@ @tZZ@e u The function [prepared_type_expr] is a less-safe but more-flexible version of [type_expr] that should only be called on [type_expr]s that have been passed to [prepare_for_printing]. Unlike [type_expr], this function does no extra work before printing a type; in particular, this means that any loops in the type expression may cause a stack overflow (see #8860) since this function does not mark any loops. The benefit of this is that if multiple type expressions are prepared simultaneously and then printed with [prepared_type_expr], they will use the same names for the same type variables.  Lu M} @@@@@@@ _g@@75constructor_arguments} X  Y &@б@г g)formatter c ( d 1@@ @@@"0 e d d e e e e e@Pe,@A@@б@г15constructor_arguments t 5 u J@@ @@@"@@г֠$unit  N  R@@ @@@" @@@@@" !@@@'@@" $* @@@   @@ h@@@*3tree_of_type_scheme~ SW Sj@б@гb)type_expr Sl Su@@ @@@" 0        @CX@A@@г^(out_type Sy S@@ @@@" @@@@@"@@@ SS @@ i@ @@+type_scheme  @б@г )formatter  @@ @@@"0        @1F@A@@б@г)type_expr  @@ @@@"@@г H$unit  @@ @@@"@@@@@"!@@@'@@"$* @@@ @@ j@@@*2shared_type_scheme  @б@г )formatter  @@ @@@"0        @CX@A@@б@г)type_expr ( )@@ @@@"@@г $unit 5 6@@ @@@"@@@@@"!@@@'@@"$* @@@ C@h d [shared_type_scheme] is very similar to [type_scheme], but does not reset the printing context first. This is intended to be used in cases where the printing should have a particularly wide context, such as documentation generators; most use cases, such as error messages, have narrower contexts for which [type_scheme] is better suited.  O P"R@@@@@@@ bk@@79tree_of_value_description [TX \Tq@б@г!t%Ident iTs jTz@@ @@@"0 k j j k k k k k@Sh/@A@@б@г 71value_description zT~ {T@@ @@@"@@г 1,out_sig_item T T@@ @@@"@@@@@"!@@@'@@"$* @@@ TT@@ l@@@*1value_description  @б@г!t%Ident  @@ @@@"0        @F^"@A@@б@г )formatter  @@ @@@"@@б@г 1value_description  @@ @@@"  @@г 0$unit  @@ @@@"!-@@@@@""0@@@%@@"#3( @@@9@@"$6<@@@ @@ m@@@<%label  @б@г )formatter  @@ @@@"%0        @Um@A@@б@г 1label_declaration  @@ @@@"&@@г u$unit  !@@ @@@"'@@@@@"(!@@@'@@")$* @@@ .@@ @n@@@*+constructor 9  :+@б@г H)formatter D. E7@@ @@@"*0 F E E F F F F F@CX@A@@б@г 7constructor_declaration U; VR@@ @@@"+@@г $unit bV cZ@@ @@@",@@@@@"-!@@@'@@".$* @@@ p@@ o@@@*8tree_of_type_declaration {[_ |[w@б@г !t%Ident y} y@@ @@@"/0        @F["@A@@б@г W0type_declaration y y@@ @@@"0@@б@г f*rec_status y y@@ @@@"1 @@г `,out_sig_item y y@@ @@@"2-@@@@@"30@@@%@@"43( @@@9@@"56<@@@ [[@@ p@@@<0type_declaration  @б@г !t%Ident  @@ @@@"60        @Xp"@A@@б@г )formatter  @@ @@@"7@@б@г 0type_declaration  @@ @@@"8 @@г b$unit  @@ @@@"9-@@@@@":0@@@%@@";3( @@@9@@"<6<@@@ @@ 0q@@@<=tree_of_extension_constructor ) *@б@г k!t%Ident 7!% 8!,@@ @@@"=0 9 8 8 9 9 9 9 9@Xp"@A@@б@г 5extension_constructor H!0 I!E@@ @@@">@@б@г *ext_status W!I X!S@@ @@@"? @@г ,out_sig_item d!W e!c@@ @@@"@-@@@@@"A0@@@%@@"B3( @@@9@@"C6<@@@ u@@ r@@@<5extension_constructor dh d}@б@г !t%Ident  @@ @@@"D0        @Xp"@A@@б@г )formatter  @@ @@@"E@@б@г k5extension_constructor  @@ @@@"F @@г $unit  @@ @@@"G-@@@@@"H0@@@%@@"I3( @@@9@@"J6<@@@ dd@@ s@@@<:extension_only_constructor  9@б@г !t%Ident ;? ;F@@ @@@"K0        @Xp"@A@@б@г )formatter ;J ;S@@ @@@"L@@б@г 5extension_constructor ;W ;l@@ @@@"M @@г g$unit ;p ;t@@ @@@"N-@@@@@"O0@@@%@@"P3( @@@9@@"Q6<@@@ #@@ 5t@@@<.tree_of_module . /@б@г p!t%Ident < =@@ @@@"R0 > = = > > > > >@Xp"@A@@б(ellipsisг $bool O P@@ @@@"S@@б@г +module_type ^ _@@ @@@"T"@@б@г **rec_status m  n@@ @@@"U1@@г $,out_sig_item z {$@@ @@@"V>@@@@@"WA@@@%@@"XD( @@B ;@@@"Y @@"ZL @@@S @@"[PV@@@ @@ u@@@V'modtype %) %0@б@г )formatter %2 %;@@ @@@"\0        @o@A@@б@г x+module_type %? %J@@ @@@"]@@г $unit %N %R@@ @@@"^@@@@@"_!@@@'@@"`$* @@@ %%@@ v@@@*)signature SW S`@б@г )formatter Sb Sk@@ @@@"a0        @CX@A@@б@г )signature So Sx@@ @@@"b@@г _$unit S| S@@ @@@"c@@@@@"d!@@@'@@"e$* @@@SS@@*w@@@*/tree_of_modtype#$@б@г +module_type./@@ @@@"f00//00000@CX@A@@г /out_module_type=>@@ @@@"g@@@@@"h@@@H @@Zx@ @@;tree_of_modtype_declarationST@б@г !t%Identab@@ @@@"i0cbbccccc@4I"@A@@б@г /3modtype_declarationrs@@ @@@"j@@г ),out_sig_item@@ @@@"k@@@@@"l!@@@'@@"m$* @@@@@y@@@*2functor_parameters@б#sepб@г&Format)formatter@@ @@@"n0@Jb&@A@@б@г$unit@@ @@@"o@@г$unit@@ @@@"p@@@@@"q!@@@'@@"r$* @@б@б@А!b@"F@"s1@@б@г&Format)formatter @@ @@@"tE@@гQ$unit $@@ @@@"uR@@@@@"vU@@@,@@"wX' @@б@г$list)A)E@Вг&option)4):@г _!t%Ident+),,)3@@ @@@"x@@@@@@"z @@А!b_;)=<)?@@@f@@"{@@@8@@@"}G)+6@@б@гU&Format)formatterT)IU)Y@@ @@@"~@@г$unita)]b)a@@ @@@"@@@@@"@@@*@@"& @@@j@@"p@@@@"İt@@@w@  Print a list of functor parameters while adjusting the printing environment for each functor argument. Currently, we are disabling disambiguation for functor argument name to avoid the need to track the moving association between identifiers and syntactic names in situation like: got: (X: sig module type T end) (Y:X.T) (X:sig module type T end) (Z:X.T) expect: (_: sig end) (Y:X.T) (_:sig end) (Z:X.T)   @@@@@@@z@%@A(.type_or_schemeFchcv@@8@@$Type@@cyc}@@|+Type_scheme@@c~c@@}@@A@@@@@cc@@A@{@@@@@@c@@@@@@A@@@0@#B@A@1tree_of_signature@б@г)signature%Types@@ @@@"0@IC@A@@гn$list@г,out_sig_item@@ @@@"@@@@@@" @@@$@@"!'@@@@@ ~@@@'.tree_of_typexp@б@г}.type_or_scheme @@ @@@"0@@X@A@@б@г)type_expr@@ @@@"@@г(out_type+,@@ @@@"@@@@@"!@@@'@@"$* @@@9@@K@@@*3modtype_declarationD E@б@г!t%IdentRS%@@ @@@"0TSSTTTTT@F["@A@@б@гg)formatterc)d2@@ @@@"@@б@г/3modtype_declarationr6sI@@ @@@" @@гԠ$unitMQ@@ @@@"-@@@@@"0@@@%@@"3( @@@9@@"6<@@@@@@@@@<*class_typeRVR`@б@г)formatterRbRk@@ @@@"0@Um@A@@б@гt*class_typeRoRy@@ @@@"@@г$unitR}R@@ @@@"@@@@@"!@@@'@@"$* @@@RR@@A@@@*9tree_of_class_declaration@б@г!t%Ident@@ @@@"0@F["@A@@б@г1class_declaration@@ @@@"@@б@г*rec_status  @@ @@@" @@г,out_sig_item@@ @@@"-@@@@@"0@@@%@@"3( @@@9@@"6<@@@)@@;B@@@<1class_declaration45@б@гv!t%IdentBC@@ @@@"0DCCDDDDD@Xp"@A@@б@гW)formatterST @@ @@@"@@б@г1class_declarationbc @@ @@@" @@гĠ$unito$p(@@ @@@"-@@@@@"0@@@%@@"3( @@@9@@"6<@@@@@C@@@<:tree_of_cltype_declaration)-)G@б@г!t%IdentIMIT@@ @@@"0@Xp"@A@@б@гg6class_type_declarationIXIn@@ @@@"@@б@гv*rec_statusIrI|@@ @@@" @@гp,out_sig_itemII@@ @@@"-@@@@@"0@@@%@@"3( @@@9@@"6<@@@))@@D@@@<2cltype_declaration@б@г$!t%Ident@@ @@@"0@Xp"@A@@б@г)formatter@@ @@@"@@б@г6class_type_declaration@@ @@@" @@гr$unit@@ @@@"-@@@@@"0@@@%@@"3( @@@9@@"6<@@@.@@@E@@@<.type_expansion9:@б@г.type_or_schemeDE @@ @@@"0FEEFFFFF@Um@A@@б@гY&Format)formatterX Y @@ @@@"@@б@г*Errortrace-expanded_type*Errortracel m 1@@@@@$(@@гΠ$unity 5z 9@@ @@@$5@@@@@$8@@@*@@$;- @@@A@@$>D@@@@@G@@@D1prepare_expansion : > : O@б@г9-expanded_type*Errortrace : Q : i@@ @@@$0@`u"@A@@гK-expanded_type*Errortrace : m : @@ @@@$ @@@@@$!@@@ : : @@H@ @@;report_ambiguous_type_error    @б@г)formatter    @@ @@@$"0@4L@A@@б@г !t#Env    @@ @@@$#@@б@Вг!t$Path    @@ @@@$$)@@г!t$Path    @@ @@@$%:@@@@@$&? @@б@г$list$  %  @Вг2!t$Path4  5  @@ @@@$'^@@гC!t$PathE  F  @@ @@@$(o@@@@@$)t @@@3@@@$+yU  1@@б@б@гe)formattera  b  @@ @@@$,@@гà$unitn !o !@@ @@@$-@@@@@$.@@б@б@г)formatter !  !@@ @@@$/@@г䠐$unit ! !@@ @@@$0@@@@@$1@@б@б@г)formatter !# !,@@ @@@$2Ͱ@@г$unit !0 !4@@ @@@$3ڰ@@@@@$4ݰ@@г$unit !9 !=@@ @@@$5@@@@@$6 !" @@@7@@$7 !  @@@\@@$8  @@@@@$9@@@@@$:  @@@@@$;@@@@@$< @@@  !@@I@#@@ 8report_unification_error!?!C!?![@б@г)formatter!^!`!^!i@@ @@@$=0@"7@A@@б@г!t#Env !m!o !m!t@@ @@@$>@@б@г1unification_error*Errortrace!m!x!m!@@ @@@$?&@@б9type_expected_explanationб@г4)formatter0!!1!!@@ @@@$@9@@г$unit=!!>!!@@ @@@$AF@@@@@$BI@@б@б@гU)formatterQ!!R!!@@ @@@$CZ@@г$unit^!!_!!@@ @@@$Dg@@@@@$Ej@@б@б@гv)formatterr!!s!!@@ @@@$F{@@гԠ$unit!!!!@@ @@@$G@@@@@$H@@г䠐$unit!!!"@@ @@@$I@@@@@$J!! @@@7@@$K!! @@z_@@@$L @@$M!!@@@ @@$N@@@@@$O@@@@@$P@@@!?!?!@@J@#@@5report_equality_error""""@б@г)formatter" """ "+@@ @@@$Q0@@A@@б@гG.type_or_scheme"/"1"/"?@@ @@@$R@@б@г!t#Env"C"E"C"J@@ @@@$S#@@б@г.equality_error*Errortrace"C"N"C"g@@ @@@$T5@@б@б@г)formatter "k"n "k"w@@ @@@$UF@@гn$unit"k"{"k"@@ @@@$VS@@@@@$WV@@б@б@г1)formatter-"k"."k"@@ @@@$Xg@@г$unit:"k";"k"@@ @@@$Yt@@@@@$Zw@@г$unitJ""K""@@ @@@$[@@@@@$\S"k" @@@7@@$]W"k"m @@@]@@$^`@@@r@@$_u@@@@@$`@@@@@$a@@@f""@@xK@@@4report_moregen_errorq""r""@б@г)formatter|""}""@@ @@@$b0~}}~~~~~@@A@@б@г.type_or_scheme""""@@ @@@$c@@б@г!t#Env""""@@ @@@$d#@@б@гG-moregen_error*Errortrace"""#@@ @@@$e5@@б@б@г)formatter## ##@@ @@@$fF@@г$$unit####@@ @@@$gS@@@@@$hV@@б@б@г)formatter##"##+@@ @@@$ig@@гE$unit##/##3@@ @@@$jt@@@@@$kw@@гU$unit#8#:#8#>@@ @@@$l@@@@@$m ##! @@@7@@$n ##  @@@]@@$o`@@@r@@$pu@@@@@$q@@@@@$r@@@""@@.L@@@7report_comparison_error'#@#D(#@#[@б@г6)formatter2#^#`3#^#i@@ @@@$s043344444@@A@@б@г.type_or_schemeC#m#oD#m#}@@ @@@$t@@б@гY!t#EnvU##V##@@ @@@$u#@@б@г0comparison_error*Errortraceg##h##@@ @@@$v5@@б@б@г|)formatterx##y##@@ @@@$wF@@гڠ$unit####@@ @@@$xS@@@@@$yV@@б@б@г)formatter####@@ @@@$zg@@г$unit####@@ @@@${t@@@@@$|w@@г $unit####@@ @@@$}@@@@@$~## @@@7@@$## @@@]@@$`@@@r@@$u@@@@@$@@@@@$@@@#@#@@@M@@@'SubtypeG####@@Б,report_errorʠ###$ @б@г)formatter$ $$ $@@ @@@$0@.@A@@б@г!t#Env $$" $$'@@ @@@$@@б@г'Subtype%error*Errortrace $+$/!$+$G@@@@@$)@@б@г&string/$K$O0$K$U@@ @@@$8@@г$unit<$Y$]=$Y$a@@ @@@$E@@@@@$H@@@%@@$K( @@@=@@$N@@@@T@@$QW@@@P##@@bN@@@W@m@@0RQQRRRRR@Zo @A0UTTUUUUU@\@AZ##[$b$e@@@]##@@+print_items̠g$y$}h$y$@б@б@г{!t#Envw$y$x$y$@@ @@@$0yxxyyyyy@@4@@@&O@A  @@б@гJ.signature_item$y$$y$@@ @@@$@@г &option$y$$y$@А!a@$H@$)$y$$y$@@@ @@@$0@@@ @@$3#@@@9@@$6<@@б@г!t#Env$$$$@@ @@@$H@@б@г_$list$$$$@г.signature_item$$$$@@ @@@$a@@@@@@$f @@г{$list$$$$@Вг,out_sig_item$$$$@@ @@@$@@гu&option$$$$@А!ak $$ $$@@@q@@@$ @@@ @@$!@@@5@@@$$$3@@@B@@$I6@@@b@@$e9@@@v@@$'$y$=@@@*$y$y@@@<P@B@@?rewrite_double_underscore_paths͠5%%6%%@б@гG!t#EnvC%%D%%@@ @@@$0EDDEEEEE@"@A@@б@гU!t$PathW%%X%%@@ @@@$@@гe!t$Pathg%%h%%@@ @@@$$@@@@@$'@@@-@@$*0 @@@u%%@@Q@@@01printed_signatureΠ&E&I&E&Z@б@г䠐&string&E&\&E&b@@ @@@$0@Ia@A@@б@г)formatter&E&f&E&o@@ @@@$@@б@гh)signature&E&s&E&|@@ @@@$ @@г $unit&E&&E&@@ @@@$-@@@@@$0@@@%@@$3( @@@9@@$6<@@@&E&E@ [printed_signature sourcefile ppf sg] print the signature [sg] of [sourcefile] with potential warnings for name collisions %%&&D@@@@@@@R@ @I@w;@4@@@yO@H @@@@@{uA@@U@N"@@@-@(@@"@#@@ @@L@8@@w@pI@B @@y@r$@ @  @  O@ H @  @  P@ I @  @  L@ E @  @  @  @  A@ p 7@ 0@@b@[ @@c@\@@@ya@Z@@,@%x@p@@@@%@@@@0NMMNNNNN@@A@ H************************************************************************WA@@XA@L@ H ]BMM^BM@ H OCaml cCdC@ H iDjD3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt oE44pE4@ H uFvF@ H Copyright 1996 Institut National de Recherche en Informatique et {G|G@ 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@4 Printing functions P77P7O@ f* Print a type path taking account of [-short-paths]. Calls should be within [wrap_printing_env]. Ƞ :* Other bypasses the unique name for identifier mechanism  X* Print a list of paths, using the same naming context to avoid name collisions _ B Call the function using the environment for type path shortening uu^@ / This affects all the printing functions below v_cv_@ : Also, if [~error:true], then disable the loading of cmis ww@ r* When contextual names are enabled, the mapping between identifiers and names is ensured to be one-to-one. K;* Reset the naming context  * The [Conflicts] module keeps track of conflicts arising when attributing names to identifiers and provides functions that can print explanations for these conflict in error messages  p* [exists()] returns true if the current naming context renamed an identifier to avoid a name collision  * [list_explanations()] return the list of conflict explanations collected up to this point, and reset the list of collected explanations ٠ =* Print all conflict explanations collected up to this point H * Print out a type. This will pick names for type variables, and will not reuse names for common type variables shared across multiple type expressions. (It will also reset the printing state, which matters for other type formatters such as [prepared_type_expr].) If you want multiple types to use common names for type variables, see [prepare_for_printing] and [prepared_type_expr]. j 5* [prepare_for_printing] resets the global printing environment, a la [reset], and prepares the types for printing by reserving names and marking loops. Any type variables that are shared between multiple types in the input list will be given the same name when printed with [prepared_type_expr]. ! m* [add_type_to_preparation ty] extend a previous type expression preparation to the type expression [ty] 砠 v* The function [prepared_type_expr] is a less-safe but more-flexible version of [type_expr] that should only be called on [type_expr]s that have been passed to [prepare_for_printing]. Unlike [type_expr], this function does no extra work before printing a type; in particular, this means that any loops in the type expression may cause a stack overflow (see #8860) since this function does not mark any loops. The benefit of this is that if multiple type expressions are prepared simultaneously and then printed with [prepared_type_expr], they will use the same names for the same type variables.  e* [shared_type_scheme] is very similar to [type_scheme], but does not reset the printing context first. This is intended to be used in cases where the printing should have a particularly wide context, such as documentation generators; most use cases, such as error messages, have narrower contexts for which [type_scheme] is better suited.  \ Prints extension constructor with the type signature: type ('a, 'b) bar += A of float @ K Prints only extension constructor without type signature: A of float uu@ * Print a list of functor parameters while adjusting the printing environment for each functor argument. Currently, we are disabling disambiguation for functor argument name to avoid the need to track the moving association between identifiers and syntactic names in situation like: got: (X: sig module type T end) (Y:X.T) (X:sig module type T end) (Z:X.T) expect: (_: sig end) (Y:X.T) (_:sig end) (Z:X.T)  v- for toploop $g$g$g$x@ Simple heuristic to rewrite Foo__bar.* as Foo.Bar.* when Foo.Bar is an alias for Foo__bar. This pattern is used by the stdlib. $$%G%~@ * [printed_signature sourcefile ppf sg] print the signature [sg] of [sourcefile] with potential warnings for name collisions 3@-./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"-c34 3/home/barsac/ci/builds/workspace/step-by-step-build - @0JkT:O`K0EDDEEEEE@B@@(Asttypes0'$O~75Build_path_prefix_map0xөvĠ8CamlinternalFormatBasics0cEXy*Su}Ck.Type_immediacy0dV^25b)̓ԆSj0lm?ƈ(Warnings0zdͦkUe$@0 w"!qC3ȆAE@@@@@@?@@@@@ n m@@ut@@@ w v@@=<  %@@@  ذ'@@@ l n@@UT@@@kj@ML@@@`_@@ , +@@@ed;:@ O N  ް@+]@  @@@@  mlDC@@ X W@YX@  @  @@ a `  @    @feXW@@@@@@@yx@@@@@P@