Caml1999I037#*Errortrace(positiong;@@%First@@5typing/errortrace.mliTT@@B@&Second@@ T T@@C@@@A@@@@@T@@A@A@A@-swap_positionh@$@@@I@@@J@@K@V V%@@/D@@)print_posi*Format_doc'printer@@@L@@@M@4W&&5W&Q@@DE@@-expanded_typej;@@"ty@@%Types)type_expr@@@OJYSjKYSx@@ZG@(expanded@@)type_expr@@@NWYSyXYS@@gH@@@A@@@@@[YSS\YS@@@@kF@A@1trivial_expansionk@$)type_expr@@@P4@@@Q@@R@o`p`7@@I@@$diffl;!a@S@A#got@@ b9Jb9R@@K@(expected@@b9Sb9_@@L@@@A@Y@@@@@b99b9a@@@@J@A@(map_diffm@@!a@U!b@W@@T@5@@@V@@@X@@Y@@Z@ee@@M@@+escape_kindn;!a@[@A+Constructorʐ$Path!t@@@^@@ii.@@O@$Univݐ)type_expr@@@]@@j/1j/D@@P@$Selfސ@@mm@@Q@+Module_typeߐ*!t@@@\@@nn@@R@(EquationE@@oo@@S@*Constraint@@p p @@T@@@A@Y@@@@@h@@@@N@A@&escapeo;!a@a@A$kind@@m @@@b%s  &s  4@@5V@'context@@&optionL)type_expr@@@_@@@`9t 5 9:t 5 S@@IW@@@A@Y@@@@@?r  @t 5 U@@@@OU@A@*map_escapep@@!a@d!b@f@@c@F@@@e@@@g@@h@@i@_v W W`v W @@oX@@'explainq@$listK!a@l@@@j@$prevN@@@k@U!b@p@@@m@@n@@o^ @@@q@@r@@s@x  z  @@Y@@+unificationr;@@+Unification@@}  }  @@[@@@@@@@@@}  @@A@Z@A@*comparisons;@@*Comparison@@~  2~  <@@]@@@@@@@@@~  @@A@\@A@.fixed_row_caset;@@0Cannot_be_closed@@A T VA T h@@_@/Cannot_add_tags퐠c&stringQ@@@t@@@u@@B i kB i @@`@@@A@@@@@@ > >@@@@^@A@'variantu;'variety@v@A6Incompatible_types_for@@@@@@@@@F  F  @@ b@'No_tags@@@@(Asttypes%label@@@@)row_field@@@@@@@@@.-@@@@(G  )G  ,@@8c@/No_intersection@=@@@@@@:I A C;I A j@@Jd@)Fixed_row,@@@@@@ 1fixed_explanation@@@~@^!@@@@@@ZJ k m[K { @@je@;Presence_not_guaranteed_forL@@@{@@@z@x@@@|@@@}uM  vM  *@@f@(Opennessg@@@w@@@@x@@@yN + -N + z@@g@@@A@@@@@@D  @@@@a@A@#objv;'variety@@A-Missing_field@@@@@@@@@@@R  R  @@i@,Abstract_row@@@@@@@@S  S  @@j@5Self_cannot_be_closed@#@@@@@@U  U  2@@k@@@A@@@@@@P | |@@@@h@A@2first_class_modulew;@@5Package_cannot_scrape '!t@@@@@X N RX N s@@m@1Package_inclusion #doc@@@@@Y t xY t @@n@0Package_coercion #doc@@@@@Z  Z  @@"o@@@A@@@@@W 4 4@@@@%l@A@#eltx;!a@'variety@@B$Diff=!a@@@@@  D@@@@?^  @^ @@Ov@'Variant>T'variety@@@@@!a@@@@[_\_G@@kw@#Obj?'variety@@@@@6!a@@@@w`HJx`Ht@@x@&Escape@+!a@@@@@R @@@@auwau@@y@7Function_label_mismatchA)arg_label@@@@@@@@bb@@z@3Incompatible_fieldsB$nameC@@@@@cc@@{@$diffD@@~)type_expr@@@@@@cc@@|@@!a@@@@@cc @@}@2First_class_moduleE@@@@!a@@@@@d!#d!Y@@~@)Rec_occurF)type_expr@@@)type_expr@@@@̠!a@@@@@ff@@@@@A@_@@@@@@\  @@@@%u@A@!ty;!a@'variety@@B@A@@@@@@ _@@@@@@8h9h@@@@HF@A@%tracez;'variety@@A@A0 )type_expr@@@Ġ@@@Š@@@@@UjVj5@@@@eG@A@%error{;'variety@@A@A@@@Ǡ @@@Ƞ@@@@@ok66pk6g@@@@H@A@#map|@@!a@!b@@@@> 'variety@@@@G @@@@@@@@miimi@@I@@3incompatible_fields}$name@@@#gotg)type_expr@@@(expectedp)type_expr@@@x)type_expr@@@ՠ@@@@@@@@@@@op @@J@@*swap_trace~@!a@ܠ'variety@@@@  @@@@@@r  r B@@K@@1unification_error;@@%traceN@@@@@@@@~~@@M@@@@@@@@@~~@'unboxed~ ~@@~  @@@@L@A@.equality_error;@@%traceP@@%@@@@@@484Q@@)O@%substQ@@@)type_expr@@@⠠@)type_expr@@@@@@@@6RV7Rz@@FP@@@@@@@@@:;R|@@@@JN@A@-moregen_error;@@%traceS@@[@@@@@@O~P~@@_R@@Z@@@@@@S~~T~@'unboxedZ~[~@@^~ @@@@mQ@A@1unification_error%trace}8@@@@@@@@@@@@uv @@S@@.equality_error%trace@@@@@@%subst#@S)type_expr@@@@Z)type_expr@@@@@@@@@@@@@@@@   p@@T@@-moregen_error%traceƠF@@@@@@}@@@@@@rrr@@U@@0comparison_error;@@.Equality_errorX,@@@@@6@@W@-Moregen_errorY!@@@@@797Z@@X@@@A@@@@@@@@@V@A@6swap_unification_error@{@@@~@@@@@@@@Y@@Ӡ'Subtype@#elt;!a@/@A$Diff\f@@@0@@ @@![@@@A@Y@@@@@@@@A&Z@A@!t;!a@1@A@A/@@@2@@@3Y@@@@@2 3 &@@@@B\@A@%trace;@@@A$)type_expr@@@4@@@5@@@@GH@@@@W]@A@+error_trace;@@@A@@@6@@@7@@@@YZ6@@@@i^@A@7unification_error_trace;@@@Aw2@@@8@@@9@@@@k8:l8j@@@@{_@A@%error;@@%traceb@@/@@@<}~@@a@1unification_tracec@@S@@@:@@@;@@b@@@@@@@@@@@@@`@@@%error%trace$@@@=1unification_traceH@@@>:@@@?@@@@@A@R@@c@@#map@@!a@C!b@E@@B@ @@@D @@@F@@G@@H@TVTz@@d@@@@{~@e@@@@9Ϡ*Errortrace0 k"&LrF(Warnings0mJɒkgrWA+9*X*Format_doc0]mWϓ:Mݠ0CamlinternalLazy0&͂7 Pˆ8CamlinternalFormatBasics0%FU(Q/Tu(Asttypes0>n{T8cئ@@@Caml1999T037d _C*Errortraceࠐ%Types%Types5typing/errortrace.mliRR@@A3@@@@@@#intA;@@@A@@@@@&_none_@@A@A@$charB;@@A@@@@@@A@&stringQ;@@ A@@@@@ @@@%bytesC;@@A@@@@@@@@%floatD;@@A@@@@@@@@$boolE;@@%falsec@@@$trued@@#@@@A@@@@@$@A@$unitF;@@"()e@@.@@@A@@@@@/@A@ #exnG;@@@A@@@@@3@@@#effH;@@O@A@A@@@@@@<@@@,continuationI;@@Q@@P@B@A@nY@@@@@@K@@@%arrayJ;@@R@A@A@@@@@@U@@@ $listK;@@S@A"[]f@@b@"::g@@@T@@o@ @@A@Y@@@@@r@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@A@@@@@@@@%int32N;@@A@@@@@@@@%int64O;@@A@@@@@@@@&lazy_tP;@@X@AJA@Y@@@@@@@@5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@A[A@Y@@@@@@@@*atomic_locU;@@Z@AdA@@@@@@@@@.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@@A54@)Not_foundZ#O@@@A =<@-Out_of_memoryW#W@@@AED@.Stack_overflow^#_@@@AML@.Sys_blocked_io_#g@@@A$U'T'@)Sys_error[#o@j@@A-^0]0@:Undefined_recursive_modulea#x@@w@s@u@@h@@A>oAnA@:Continuation_already_takenb#@@@AFwIvI@&Stdlib@A|R{@@3zyyzzzzz@w@A}@A+(positionATT@@;@@%First@@TT@@B@&Second@@TT@@C@@@A@@@@@T@@A@A@@#@@@@@#T@@@@@@A@@@@-swap_positionVV@б@г9(positionVV@@ @@@ 3@D>@A@@гH(positionVV%@@ @@@ @@@@@ @@@V @@D@@ @@)print_posW&*W&3@г*Format_doc'printer*Format_docW&?W&I@ W&JW&Q@@г|(positionW&6W&>@@ @@@ 3@DY2@A@@@$ @@@  @@@W&&@@$E@@@@ A+-expanded_typeBYSX YSe@@;@@"ty@@1)type_expr@@@ -YSj.YSx@@?G@(expanded@@>)type_expr@@@ #:YSy;YS@@LH@@@A@@@@@>YSS?YS@@@@PF@@#FYSl@@@Ш@г"#NYSnOYSw@@)3MLLMMMMM@IqB8;@@@A@@@@@@@@@A@@1@@ !@,@#(("\YS@!@@Ш@г+,dYS*@@1+@@4@@ $@/@@A@+@@3eddeeeee@@A,+@1trivial_expansionĠr` s`@б@г)type_expr}`~`&@@ @@@ /3~~@2ic@A@@гm-expanded_type`*`7@@ @@@ 0@@@@@ 1@@@` @)ocaml.docn o [trivial_expansion ty] creates an [expanded_type] whose expansion is also [ty]. Usually, you want [Ctype.expand_type] instead, since the expansion carries useful information; however, in certain circumstances, the error is about the expansion of the type, meaning that actually performing the expansion produces more confusing or inaccurate output. [_@@@@@@@I@@@@@@@@@3A+$diffCb9Ab9E@А!a@ 33@H]6;@@ 2@A@A@G@B@@@b99b9a@@@@J@@Ab9>b9@@@BA@;@A#got@@D@ 4b9Jb9R@@K@(expected@@(D@ 8b9Sb9_@@L@@@A@Y@@@@@!@@@@#b9M@@@Ш@А!a6b9Ob9Q@@"@@ 5;@ @#b9[@@@Ш@А!a"Eb9] @@&@@ 9I@$@@A@?@@3  @H@A@?@(map_diffȠee@б@б@А!a@ ND@ D3&%%&&&&&@aqQ@A,e-e@@А!b@ PD@ E 7e8e@@@ @@ F@@б@г$diffEeFe@А!a'"LeMe@@@-@@@ H) @@г$diffZe[e@А!b/7aebe@@@5@@@ J> @@@@@ KA@@@4@@ LDne@@@qe@ڐ C [map_diff f {expected;got}] is [{expected=f expected; got=f got}] ~dccdc@@@@@@@M@@'@W@@@@@@dA++escape_kindDhh@А!a@ R3@y4;@@ Q@A@A@G@B@@@hp @= Scope escape related errors gg@@@@@@@@@N@@Ahh@@@;$@A+Constructorʐ$Path!t@@@ @@ii.@@O@$Univݐ)type_expr@@@ @@j/1j/D@@P@$Selfސ@@mm@@Q@+Module_typeߐ*!t@@@ @@nn@@ R@(EquationgE@ @@oo@@S@*Constraint@@pc@@T@@@A@Y@@@@@he@@W@#QQii$@F@гS$Path#i($i,@X'i-V@W@@aX@@@@Z@#VV.j/3/j/7@N@гXY7j/;W@@^X@@@@Z@#VV=mT@S@@@W@#SSCnDn@J@гU$PathOnPn@\SnZ@[@@c\@@@@^@#ZZZo[o@U@А!a_bo]@@@@_@#[[gp@Y@@@\@@A@>@@@@@@@3qppqqqqq@@A@A+&escapeEr  r  @А!a@ 3@;@@ @A@A@G@B@@@r  t 5 U@@@@U@@Ar  r  @@@;@A$kind@@!F@ @@@ s  s  4@@V@'context@@)type_expr@@@ @@@ t 5 9t 5 S@@W@@@A@Y@@@@@-@@@*@#$$s  "@@@Ш@г'+escape_kinds  (s  3@А!a/Ks  %s  '@@@6N @@9@@ Q@2@#..#t 5 @@"@@Ш@г1&optiont 5 M,@г56t 5 Ct 5 L@@<g@@@Ah6@@D@@ k@:@@A@a@@3@j@Aba@*map_escapev W [v W e@б@б@А!a@ !F@ 3      @t@Av W iv W k@@А!b@ #F@  v W ov W q@@@ @@ @@б@г&escape(v W y)v W @А!a'"/v W v0v W x@@@-@@@ ) @@г&escape=v W >v W @А!b/7Dv W Ev W @@@5@@@ > @@@@@ A@@@4@@ DQv W h@@@Tv W W@@eX@@@@K'explain_x  `x  @б@г⠐$listjx  kx  @А!a@ 3F@ $3rqqrrrrr@j}%@Axx  yx  @@@ @@@ & @@б@б$prevг砐&optiony  y  @А!a"y  y  @@@(@@@ ($ @@б@А!a/*y  y  @@г&optiony  y  @А!b@ 5F@ )?y  y  @@@ @@@ +F@@@N@@ ,I@@>,@@ -Ly  @@г%&optionz  z  @А!b![z  z  @@@'@@@ /b @@@@@ 0ey  @@@d@@ 1ig@@@x  @@Y@@@@oA++unificationF}  }  @@;@@+Unification@@}  }  @@ [@@@@@@@@@}  @d. Type indices |   |  @@@@@@@A@Z@@#@@@@@@@@y搠@@@@@@@3@?@A$'@A+*comparisonG(~  )~  &@@;@@*Comparison@@2~  23~  <@@D]@@@@@@@@@6~  @@A@G\@@#    @ @@@ @@@@ @@3;::;;;;;@#WQ@A @A+.fixed_row_caseHJ@ > CK@ > Q@@;@@0Cannot_be_closed@@TA T VUA T h@@f_@/Cannot_add_tags퐠ܠ.@@@ B@@@ D@@gB i khB i @@y`@@@A@@@@@k@ > >@@@@|^@@#  rA T X@@@@!@#xB i myB i |@@г$listB i @г#&stringB i B i @@+3@PkeI;@@@A@@@@@'@@@%@A@@@5 +@@@@-@@A@)@@3@@A*-@A+'variantID  D  @А'variety@ P3@e_;@@ O@A@A@G@B@@@D  N + z@@@@a@@AD  D  @@@;@A6Incompatible_types_for@@@ Q@0@@ R@@@ TF  F  @@b@'No_tagsW@@@ U\@(Asttypes%label@@@ @)row_field@@@ @@ @@@ @_@@ @@@ G  G  ,@@c@/No_intersection@p%@@@ @@@ I A CI A j@@#d@)Fixed_row@@@ @@@ .1fixed_explanation@@@ @H@@@ @@@ 4J k m5K { @@Fe@;Presence_not_guaranteed_for@@@ @@@ @*@@@ @@@ QM  RM  *@@cf@(Openness@@@ @ȠB@@@ @@@ iN + -@@zg@@@A@@@@@@@@@@#rF  sF  @@г&string|F  }F  @@ְ@@@г'variantF  @@F  F  @@@@@@#G  G  @@г(positionG  G  @@@@г $listG  G  @В@гǠ(AsttypesG  G  @̰G  G  @@@@@@гϠаG  G  @@@@@@@@G  #@@@гԠ'variantG  %@@+G  #G  $@@@.@@@#ְ֠I A EI A T@@@гؠ'variantI A c@гܠ+unificationI A WI A b@@G@@@H@@@#ݠݰJ k oJ k x@@гߠ(positionK { K { @@Y@@г䠐.fixed_row_case K {  K { @@c@@г預K { K { @@l@@@г점'variantK { @г+unification$K { %K { @@~@@@@@@#,M  -M  @@г(position6M  7M  @@@@г&string@M  AM  @@@@@г'variantJM  #@г*comparisonRM  SM  "@@ @@@@@@#ZN + /[N + 7@@г(positiondN + :eN + B@@ @@@г 'variantnN + s@г *comparisonvN + hwN + r@@а@@@Ѱ@@@@A@@@3wvvwwwww@@A@A+#objJP | P | @А'variety@3@;@@@A@A@G@B@@@P | |U  2@@@@h@@AP | P | @@@;@A-Missing_field(@@@{@@@@5@@@@@ R  R  @@i@,Abstract_rowC@@@ @K@@ @@@S  S  @@j@5Self_cannot_be_closed@\@@@@@@U  J@@k@@@A@@@@@@O@@@L@#FFR  R  @2@гH(positionR  R  @@Pj@@гM&string R   R  @@Ut@@@гR#obj R  P@@W R   R  @@@^V@@X@#TT S   S  @E@гV(position S   !S  @@^@@@г[#obj *S  Y@@` .S   /S  @@@g_@@a@#]] 5U   6U  @R@@г_#obj ?U  /@гc+unification GU  # HU  .@@k@@@p@@h@@A@@@3 H G G H H H H H@@A@A+2first_class_moduleK VW 4 9 WW 4 K@@;@@5Package_cannot_scrape !t@@@?@@ gX N R hX N s@@ ym@1Package_inclusion #doc@@@@@@ wY t x xY t @@ n@0Package_coercion #doc@@@A@@ Z   Z  @@ o@@@A@@@@@ W 4 4@@@@ l@@#44 X N T X N i@+@г6$Path X N m X N q@= X N r;@<@@D3        @&U;@@@A@@@@@@@@@A B@@@@D@#@@ Y t z Y t @7@гB*Format_doc Y t  Y t @I Y t G@H@@PI@@@@K@#GG Z   Z  @>@гI*Format_doc Z   Z  @P Z  N@O@@W3P@@@@R@@A@N@@3        @3@AOR@A+#elt'variety@M@@@@@h!a@M@M@@@@ S_ T_G@@ ew@#Obj?ޠ'variety@M@@@@@!a@M@M@ @@@  w`HJ x`Ht@@ x@&Escape@!a@M@@@@@ M@@@@@@ auw au@@ y@7Function_label_mismatchA)arg_label@@@@@@@@ b b@@ z@3Incompatible_fieldsB$nameC@@ @@@ c c@@ {@$diffD@@  )type_expr@@@!@@@# c c@@ |@@!a@,M@&@@'@@@* c c @@ }@2First_class_moduleE@@@-@!a@4M@.@@/@@@2 d!# d!Y@@ ~@)Rec_occurF )type_expr@@@5 )type_expr@@@6@8!a@=M@7@@8@@@; #f&@@ 4@@@A@_@@@@@@-@@@*@# .^   /^  @@г$diff 8^   9^ @А!P >^   ?^  @@@(S@@@г#elt H^ @А!a%` N^  O^  @@@'e S^   T^  @@@1h V^ '@@)@#%% [_ \_@@г''variant e_* f_1@А).} k_! l_)@@@5@@@г+#elt u_D"@А,1 z_6 {_8@@А'variety1 _: _B@@@? _51@@3@#// `HL `HO@@г1#obj `H[ `H^@А38 `HR `HZ@@@?@@@г5#elt `Hq,@А6; `Hc `He@@А'variety; `Hg `Ho@@@Iİ `Hb;@@=@#99 auy au@ @г;&escape au au@А=Bٰ au au@@@Iܰ@@@г?#elt au:@А!aF au au@@@H au au@@@R auH@@J@#FF b b@8@гH$diff bB@гL(Asttypes b b@S b b@@@[@@@` T@@@@V@#RR c c@#@#TTO c@N@@Ш@гW&string c c@@_*@@b@@-@^@#ZZO c@N@@Ш@г]$diff 'c X@гab .c /c @@hC@@@mDb@@p@@$G@f@@гb#elt ;cY@АchR @c Ac@@@fW Ec Fc@@@tZ Hcf@@h@#dd Md!% Nd!7@N@гf2first_class_module Wd!9 Xd!K@@nl@@@гk#elt ad!Vb@Аlqx fd!P gd!R@@@o} kd!S ld!T@@@} nd!Oo@@q@#mm sf tf@Q@гop |f }f@@v@@гrs f f@@y@@@гu#elt f@Аv{ f f@@@y f f@@@ f@@{@@A@@@3        @@A@A+!tGM h h@А!a@3        @;@@Ǡ@@@B@A@@@@@@@@ƠGG@BB@@@ h h@@@@ F@@A h h@@ А'variety@+ h h@@ @;3 @B@A d @N@ˠN@@@@@@@Ѡ_@@@@@@*@@@'@@Aг$list h0@г#elt h h@А!a [ h h@@А'variety$b h h@@@.e h@@@4gJ@@L@@3        @g@AML@A+%traceHN %j &j@А'variety@3 , + + , , , , ,@~R;@@@A@A@@@@@@G@B@@@ Dj Ej5@@@@ VG@@A Hj  Ij@@ q@; @AiA [)type_expr@@@-O@@@@@@@@@@@@@@Aг!t cj4@г jj kj$@@=@@А'varietyB rj* sj2@@@'E uj1@@3@@3 s r r s s s s s@F@A43@A+%errorIO k6D k6I@А'variety@ 3        @]mD;@@@A@A@@>@@@?@G@B@@@ k66 k6g@@@@ H@@A k6; k6C@@ @; @AA @@@!,P@"@@@%@@@@@@@@@@Aг!t k6f@г-expanded_type k6M k6Z@@=@@А'varietyB k6\ k6d@@@'E k6L1@@3@@3        @F@A43@#mapJ mim mip@б@б@А!a@[P@N3        @_oF@A mit miv@@А!b@]P@O  miz mi|@@@ @@P@@б@г^!tmimi@А!a'" mimi@@А'variety@_P@Q.mimi@@@9 @@@T6!mi@@г!t)mi*mi@А!b=E0mi1mi@@А'variety#L7mi8mi@@@J*@@@WT?mi@@@' @@XX"@@@K@@Y[Fmis@@@Imii @@ZI@@"@@b3incompatible_fieldsKToUo@б$nameг'&stringapbp@@ @@@`3cbbccccc@}!@A@@б#gotгw)type_exprtpup@@ @@@a@@б(expectedг)type_exprpp@@ @@@b$@@г#eltpp @г)type_exprpp@@ @@@c;@@@@@d@pp@@@ @@@gHp@@6+ @@hLp!@@K@@@iPp%@@bW@@jTp)@@@o,@@J@@.@@[*swap_traceLr r @б@г,!tr -r .@А!a@uP@k3@z%@Ar r !@@А'variety@wP@lr #r +@@@# @@@or "@@гV!tr Ar B@А!a*%r 3r 5@@А'variety#, r 7 r ?@@@7*@@@r4r 2@@@' @@s8"@@@r  @@+K@@@@>*ocaml.text  The traces (['variety t]) are the core error types. However, we bundle them up into three "top-level" error types, which are used elsewhere: [unification_error], [equality_error], and [moregen_error]. In the case of [equality_error], this has to bundle in extra information; in general, it distinguishes the three types of errors and allows us to distinguish traces that are being built (or processed) from those that are complete and have become the final error. These error types have the invariants that their traces are nonempty; we ensure that through three smart constructors with matching names. -tDD.|@@@@@@3,++,,,,,@Ql@AA+1unification_errorMP:~;~@@;@@%traceN@@Ƞ `@@@x@@@zL~M~@@^M@@@@@@@@@Q~R~@'unboxedX~ Y~@@\~  @@@@mL@@#!!c~@@@Ш@г$%errorl~ @г(+unificationt~u~@@03srrsssss@HB;@@@@@@@@@*'@@@A@@@9/@@<@@{@3@@@@.+*@'@@S21@A+.equality_errorOQ)@@;@@%traceP@@ w@@@@@@484Q@@O@%substQ@@$@)type_expr@@@@)type_expr@@@@@@@@RVRz@@P@@@@@@@@@R|@@@@N@@#33)4=@(@@Ш@г6%error4K4P@г;*comparison4@4J@@C3@V;@@@@@@@@@"@@@@A@@@M @@P@@ @G@#CC-R[@,@@Ш@гF$listRv6@В@гJKR_Rh@@Q#@@@гMNRkRt@@T-@@@`.@@@e/ R^P@@i@@3@T@@@@P@@3        @2@AQP@A+-moregen_errorRR~~@@;@@%traceS@@ @@@@@@+~,~@@=R@@@@@@@@/~~0~@'unboxed6~7~@@:~ @@@@KQ@@#  A~@@@Ш@г#%errorJ~@г'*comparisonR~S~@@/3QPPQQQQQ@zB;@@@@@@@@@+(@@@A@@@9 /@@<@@ @3@@@@/,+@(@@3^]]^^^^^@ @A43@1unification_errorTkl@б%traceг%errorxy@г +unification@@ @@@ 3@3tn@A@@@ @@@" @@г\1unification_error @@ @@@#@@/@@$ @@@ @@S@@@@.equality_errorU  @б%traceг9%error 3 8@г *comparison ( 2@@ @@@%3@Cd+@A@@@ @@@' @@б%substгT$list Z ^@В@г)type_expr C L@@ @@@(&@@@г)type_expr O X@@ @@@)5@@@@@ @@*< @@@1 @@@,A  B/@@г.equality_error b p@@ @@@-O@@H@@.R < @@nS@@/V  " @@@#  @@4T@@@@]-moregen_errorV.rv/r@б%traceг%error;r<r@г *comparisonErFr@@ @@@03GFFGGGGG@+@A@@@ @@@2 @@г@-moregen_errorYrZr@@ @@@3@@/@@4br @@@err @@vU@@@@A+0comparison_errorWSqr@@;@@.Equality_errorX@@@5@@6@@W@-Moregen_errorYw@@@6@@797Z@@X@@@A@@@@@@ E Wraps up the two different kinds of [comparison] errors in one type @@@@@@@@@V@@#..$@'@г0.equality_error(1@@73@jRH;@@@A@@@@@&$@@@A7@@@@9@#557;7H@.@г7-moregen_error7M8@@>9@@@@;@@A@7065@55@@@5@5@@3@ @ACF@6swap_unification_errorZ@б@г1unification_error@@ @@@@3@;|@A@@г1unification_error@@ @@@A@@@@@B@@@ @k * Lift [swap_trace] to [unification_error] \\\@@@@@@@!Y@@@{萠@@@@@@1'SubtypefT()@:e@@БA+#elt[U78@А!a@D3>==>>>>>@VkD;@@C@A@A@G@B@@@LM @@@@^Z@@APQ@@y@;@A$Diff\#V@E@@@G@@c@@t[@@@A@Y@@@@@@@A@#lm@ @г$diffv*@А!a:|}@@@#=2@@@@@@A@4@@3|{{|||||@=@A54@A+!t]V  @А!a@V3@TdE;@@U@A@A@@j@@@k@TG@B@@@  &@@@@\@@A  @@@; @AA1+W@W@@@Y@@@[Y@@@@@@@@@@Aг$list "@г#elt  !@А!aA  @@@"D @@@'E0@@2@@3@E@A32@  Just as outside [Subtype], we split traces, completed traces, and complete errors. However, in a minor asymmetry, the name [Subtype.error_trace] corresponds to the outside [error] type, and [Subtype.error] corresponds to the outside [*_error] types (e.g., [unification_error]). This [error] type has the invariant that the subtype trace is nonempty; note that no such invariant is imposed on the unification trace. (*@@@@@@3@Yi@@AA+%trace^W@@;@@Ay )type_expr@@@q@@@s@@@@@@@@]@@@Aг!t @г@@3@.(;@@@A0@@@@p@@@@@@@@A @@@* @@!@@:! @A++error_trace_X12$@@;@@QA!@@@@@@@@@@?@6@@@@Q^@@@Aг!tI5 @г-expanded_typeQ'R4@@3POOPPPPP@hb\);@@@A1@@@@@@@@!@@@@A@@@+ !@@#@@3^]]^^^^^@ @A$#@A+7unification_error_trace`Yl8?m8V@@;@@A @@@@@@@@@@z8:{8j@䐠4 To avoid shadowing 8k8@@@@@@@@@_@@@Aг%error8e@г +unification8Y8d@@(3@Jrl7;@@@A?@@@@@@@@/,@@@A@@@9 /@@1/.@..@@@.@.@@3@@A=<@@+%erroraZ@@;@@%traceb@@@@@ް@@a@1unification_tracec@@Z @@@@@@@@b@@@@@@@@@@@@@`@@#""@@@Ш@г%+error_trace@@-3@Y@A@@2@@@.@#** @@@Ш@г-%error)@г1+unification@@9@@@>4@@A@@ @8@@@@4@@ 43@%errord@б%traceг+error_trace+,@@ @@@3-,,-----@<vp@A@@б1unification_traceгҠ7unification_error_trace>2?I@@ @@@@@г%errorKMLR@@ @@@ @@@@#T  @@5*@@'X  @@@[@@lc@@@@.#mapefTZgT]@б@б@А!a@*[@ 3qppqqqqq@E\@AwTaxTc@@А!b@,[@! TgTi@@@ @@"@@б@г!tTqTr@А!a'"TnTp@@@-@@@$) @@г!tTyTz@А!b/7TvTx@@@5@@@&> @@@@@'A@@@4@@(DT`@@@TV@@d@@@@K@oA@=A@A@A@a[A@ @@t@m@@3@\o@A3@@A{~@@@@@@WQA@+@@A@uN@+ A@x@W*A@pQA@@@A@A@A@]>A@ x YA@  A@  A@[A@A@]A@-@K@D@A@A@A@q@j@@A@@@@K@F@@@3@@A@uA@2,A@A@A@pj@@@v@@@Z@A@ H************************************************************************4A@@5A@L@ H :BMM;BM@ H OCaml @CAC@ H FDGD3@ H Florian Angeletti, projet Cambium, Inria Paris LE44ME4@ H Antal Spector-Zabusky, Jane Street, New York RFSF@ H XGYG@ H Copyright 2018 Institut National de Recherche en Informatique et ^H_Hg@ H en Automatique. dIhheIh@ H Copyright 2021 Jane Street Group LLC jJkJ@ H pKqKN@ H All rights reserved. This file is distributed under the terms of vLOOwLO@ H the GNU Lesser General Public License version 2.1, with the |M}M@ H special exception on linking described in the file LICENSE. NN5@ H O66O6@ H************************************************************************PP@ p* [trivial_expansion ty] creates an [expanded_type] whose expansion is also [ty]. Usually, you want [Ctype.expand_type] instead, since the expansion carries useful information; however, in certain circumstances, the error is about the expansion of the type, meaning that actually performing the expansion produces more confusing or inaccurate output.  D* [map_diff f {expected;got}] is [{expected=f expected; got=f got}] >* Scope escape related errors ᠠ w The type_expr argument of [Univ] is always a [Tunivar _], we keep a [type_expr] to track renaming in {!Printtyp} kEGl@/* Type indices ( Common E  E  @- Unification H - /H - @@4 Equality & Moregen L  L  @= Always [Second] for Moregen N + CN + d@( Common Q  Q  @- Unification T  T  @( Common ]  ]  @ < Unification & Moregen; included in Equality for simplicity eZ\eZ@ * The traces (['variety t]) are the core error types. However, we bundle them up into three "top-level" error types, which are used elsewhere: [unification_error], [equality_error], and [moregen_error]. In the case of [equality_error], this has to bundle in extra information; in general, it distinguishes the three types of errors and allows us to distinguish traces that are being built (or processed) from those that are complete and have become the final error. These error types have the invariants that their traces are nonempty; we ensure that through three smart constructors with matching names.  F* Wraps up the two different kinds of [comparison] errors in one type : +* Lift [swap_trace] to [unification_error] ͠ * Just as outside [Subtype], we split traces, completed traces, and complete errors. However, in a minor asymmetry, the name [Subtype.error_trace] corresponds to the outside [error] type, and [Subtype.error] corresponds to the outside [*_error] types (e.g., [unification_error]). This [error] type has the invariant that the subtype trace is nonempty; note that no such invariant is imposed on the unification trace. 5* To avoid shadowing Z@-./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/.-,+*)('&%$#"! @@0L&fE[&376677777@4@@(Asttypes0>n{T8cئ8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ[0 k"&LrF*Format_doc0]mWϓ:Mݠ%Ident0">WA+9*X,Identifiable0 {d\FX'`(Location0a7cK_H%9)Longident0s `7mɕc+Outcometree0kX%d5Q/+)Parsetree0T鿁ۘ7Qu$Path0Y2kf֯J._Ϡ)Primitive0²~$xzT෠%Shape0oNՄBH&Stdlib0Lku]8_٠.Stdlib__Buffer08APF< t..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__Seq0nwzG&amg+Stdlib__Set0\$;7 +Stdlib__Sys0 -ռ鱦s5/-Stdlib__Uchar056uf4[_.Type_immediacy0A^abOhՠʐ0^Y~# )Unit_info0ڀh%((Warnings0mJɒkgr@X@@-@@n@S9˓@@ذ_@ҰYK@H5@Ő0@  @'@!+@@2@ k N@&eR@@@ @C    @@ ؓ @ ʓ @ h V@Ȑ@,B+@@ђ@I@@@"@ )@ W ҕ@Y@ ? fK/@ X _Kr@@P@@