Caml1999I036#A*Errortrace(positionh;@@%First@@5typing/errortrace.mliTT@@B@&Second@@ T T@@C@@@A@@@@@T@@A@A@A@-swap_positioni@$@@@F@@@G@@H@V V%@@/D@@)print_posj*Format_doc'printer@@@I@@@J@4W&&5W&Q@@DE@@-expanded_typek;@@"ty@@%Types)type_expr@@@LJYSjKYSx@@ZG@(expanded@@)type_expr@@@KWYSyXYS@@gH@@@A@@@@@[YSS\YS@@@@kF@A@1trivial_expansionl@$)type_expr@@@M4@@@N@@O@o`p`7@@I@@$diffm;!a@P@A#got@@ b9Jb9R@@K@(expected@@b9Sb9_@@L@@@A@Y@@@@@b99b9a@@@@J@A@(map_diffn@@!a@R!b@T@@Q@5@@@S@@@U@@V@@W@ee@@M@@+escape_kindo;!a@X@A+Constructorʐ$Path!t@@@[@@ii.@@O@$Univݐ)type_expr@@@Z@@j/1j/D@@P@$Selfސ@@mm@@Q@+Module_typeߐ*!t@@@Y@@nn@@R@(EquationE@@oo@@S@*Constraint@@p p @@T@@@A@Y@@@@@h@@@@N@A@&escapep;!a@^@A$kind@@m @@@_%s  &s  4@@5V@'context@@&optionL)type_expr@@@\@@@]9t 5 9:t 5 S@@IW@@@A@Y@@@@@?r  @t 5 U@@@@OU@A@*map_escapeq@@!a@a!b@c@@`@F@@@b@@@d@@e@@f@_v W W`v W @@oX@@'explainr@$listK!a@i@@@g@$prevN@@@h@U!b@m@@@j@@k@@l^ @@@n@@o@@p@x  z  @@Y@@+unifications;@@+Unification@@}  }  @@[@@@@@@@@@}  @@A@Z@A@*comparisont;@@*Comparison@@~  2~  <@@]@@@@@@@@@~  @@A@\@A@.fixed_row_caseu;@@0Cannot_be_closed@@A T VA T h@@_@/Cannot_add_tags퐠c&stringQ@@@q@@@r@@B i kB i @@`@@@A@@@@@@ > >@@@@^@A@'variantv;'variety@s@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@@@x@@@w@x@@@y@@@zuM  vM  *@@f@(Opennessg@@@t@@@@u@@@vN + -N + z@@g@@@A@@@@@@D  @@@@a@A@#objw;'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_modulex;@@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@#elty;!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@4Tuple_label_mismatchB@@@@@@@@@@@cc@@{@3Incompatible_fieldsC$nameD@@@@@dd)@@|@$diffE@@-)type_expr@@@@@@d*d>@@}@@!a@@@@@ddO@@~@2First_class_moduleF@@@@à!a@ @@@@ePReP@@@)Rec_occurG)type_expr@@@)type_expr@@@@!a@*@@@@%g&g@@5@@@@A@_@@@@@@-\  @@@@ 'variety@@@@G @@@@@@@@nn@@J@@3incompatible_fields~$name@@@#got~)type_expr@@@(expected)type_expr@@@)type_expr@@@ՠ@@@@@@@@@@@pq:@@K@@*swap_trace@!a@ܠ'variety@@@@  @@@@@@s<<s<q@@L@@1unification_error;@@%traceO@@@@@@@@  5@@N@@@@@@@@@C@'unboxed;B@@8 @@@@+M@A@.equality_error;@@%traceQ@@%@@@@@@0cg1c@@@P@%substR@@Π@)type_expr@@@⠠@)type_expr@@@@@@@@MN@@]Q@@@@@@@@@QEER@@@@aO@A@-moregen_error;@@%traceT@@[@@@@@@fg@@vS@@Z@@@@@@jk@'unboxedqr@@u @@@@R@A@1unification_error%trace}O@@@@@@@@@@@@8@@T@@.equality_error%trace,@@@@@@%subst:@j)type_expr@@@@q)type_expr@@@@@@@@@@@@@@@@::O@@U@@-moregen_error%traceƠ]@@@@@@}@@@@@@@@V@@0comparison_error;@@.Equality_errorY,@@@@@ACAe@@X@-Moregen_errorZ!@@@@@fhf@@Y@@@A@@@@@))@@@@W@A@6swap_unification_error@{@@@~@@@@@@  @@Z@@Ӡ'Subtype@#elt;!a@,@A$Diff]}@@@-@@(%))%:@@8\@@@A@Y@@@@@.@@@A=[@A@!t;!a@.@A@AӠ/@@@/@@@0Y@@@@@I<>J<U@@@@Y]@A@%trace;@@@A$)type_expr@@@1@@@2@@@@^ "_ @@@@@n^@A@+error_trace;@@@A@@@3@@@4@@@@pACqAe@@@@_@A@7unification_error_trace;@@@AwI@@@5@@@6@@@@gig@@@@`@A@%error;@@%tracec@@/@@@9@@b@1unification_traced@@j@@@7@@@8$@@c@@@@@@@@@&@@@@a@@@%error%trace$@@@:1unification_traceH@@@;:@@@<@@=@@>@(*6@@d@@#map@@!a@@!b@B@@?@ @@@A @@@C@@D@@E@@@e@@@@@f@@@@9Ϡ*Errortrace0RV*Sh4X(Warnings0;w.Q=1)Unit_info08a AnMͼ %Types0#`O(ߍLF.Type_immediacy0GuQT@<=-Stdlib__Uchar0d"W-x9.Stdlib__Domain0iW',P6wz.Stdlib__Buffer0_?K|/V>O}~Nࠠ&Stdlib0y{x!O!%Shape0OĸT>b)Primitive0{mV|{J $Path09{ְZsv)Parsetree0Z<4$PC+Outcometree0yl4>Yfܠ)Longident0@#j,6.Nt蠠(Location0nݹV 2f-V ,Identifiable0XnAZ4eҠ%Ident0y43a$+*Format_doc0Mv9630A 0CamlinternalLazy0;x#5䢜hLm8CamlinternalFormatBasics0oZ2t,ݠ(Asttypes0E\eǥ]k6e@@@Caml1999T036d`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@4Tuple_label_mismatchB  @@@@@@ @@@"@@ c c@@ {@3Incompatible_fieldsC$nameD@@ @@@# d d)@@ |@$diffE@@% )type_expr@@@&@@@( d* d>@@ }@@!a@1M@+@@,@@@/ d dO@@ ~@2First_class_moduleF@@@2@,!a@9M@3@@4@@@7 ePR eP@@ )@)Rec_occurG *)type_expr@@@: 0)type_expr@@@;@P!a@BM@<@@=@@@@ ;g>@@ L@@@@A@_@@@@@@E@@@B@#00 F^   G^  @@г2$diff P^   Q^ @А49h V^   W^  @@@@k@@@г6#elt `^ 1@А!a=x f^  g^  @@@?} k^   l^  @@@I n^ ?@@A@#== s_ t_@ @г?'variant }_* ~_1@АAF _! _)@@@M@@@гC#elt _D:@АDI _6 _8@@А'varietyI _: _B@@@W _5I@@K@#GG `HL `HO@*@гI#obj `H[ `H^@АKPð `HR `HZ@@@Wư@@@гM#elt `HqD@АNSҰ `Hc `He@@А'varietySٰ `Hg `Ho@@@aܰ `HbS@@U@#QQ auy au@8@гS&escape au au@АUZ au au@@@a@@@гW#elt auR@А!a^ au au@@@` au au@@@j  au`@@b@#^^ b b@P@г`$diff bZ@гd(Asttypes b b@k b b@@@s*@@@x+ l@@@@n@#jj c c@Y@гl$diff 'cc@гp&option /c 0c@гu&string 8c 9c@@}M@@@N @@@Ox@@@@z@#vv Ad Bd@G@#xxs Hd!@r@@Ш@г{&string Qd" Rd(@@f@@@@$i@@#~~s Zd.@r@@Ш@г$diff cd:|@г jd0 kd9@@@@@@@@@)@@@г#elt wdL}@А |dE }dG@@@ dI dJ@@@ dD@@@# ePT ePf@r@г2first_class_module ePh ePz@@@@@г#elt eP@А eP eP@@@ eP eP@@@ eP~@@@# g g@u@г g g@@Ͱ@@г g g@@ְ@@@г#elt g@А g g@@@ g g@@@ g@@@@A@@@3        @@A@A+!tHM i i@А!a@3        @;@@Ԡ@@@B@A@@@@@@@@ӠGG@BB@@@ i i1@@@@ G@@A i i @@ 8А'variety@+ i  i@@ C@;3 @B@A I@N@ؠN@@@@@@@ޠ_@@@@@@*@@@'@@Aг$list ;i-0@г#elt Ci) Di,@А!a [ Ji Ki@@А'variety$b Qi Ri'@@@.e Ti@@@4gJ@@L@@3 S R R S S S S S@g@AML@A+%traceIN ak3A bk3F@А'variety@3 h g g h h h h h@~R;@@@A@A@@@@@@G@B@@@ k33 k3d@@@@ H@@A k38 k3@@@ @; @AiA )type_expr@@@-O@@@@@@@@@@@@@@Aг!t k3c@г k3J k3S@@=@@А'varietyB k3Y k3a@@@'E k3I1@@3@@3        @F@A43@A+%errorJO les lex@А'variety@-3        @]mD;@@,@A@A@@K@@@L@+G@B@@@ lee le@@@@ I@@A lej ler@@ @; @AA @@@.,P@/@@@2@@@@@@@@@@Aг!t le@г-expanded_typele|le@@=@@А'varietyB le le@@@'E le{1@@3@@3        @F@A43@#mapKnn@б@б@А!a@hP@[3#""#####@_oF@A)n*n@@А!b@jP@\ 4n5n@@@ @@]@@б@г^!tBnCn@А!a'"InJn@@А'variety@lP@^.UnVn@@@9 @@@a6]n@@г!tenfn@А!b=Elnmn@@А'variety#Lsntn@@@J*@@@dT{n@@@' @@eX"@@@K@@f[n@@@n @@J@@"@@b3incompatible_fieldsLpp@б$nameгc&stringqq@@ @@@m3@}!@A@@б#gotг)type_exprqq@@ @@@n@@б(expectedг)type_exprqq$@@ @@@o$@@г렐#eltq7q:@г)type_exprq)q2@@ @@@p;@@@@@q@q4q5@@@ @@@tHq(@@6+ @@uLq!@@K@@@vPq%@@bW@@wTq)@@@p,@@ K@@.@@[*swap_traceMs<@s<J@б@г,!ts<\s<]@А!a@P@x3@z%@As<Ns<P@@А'variety@P@y*s<R+s<Z@@@# @@@|2s<M"@@гV!t:s<p;s<q@А!a*%As<bBs<d@@А'variety#,Hs<fIs<n@@@7*@@@4Ps<a@@@' @@8"@@@Vs<<@@gL@@@@>*ocaml.text1  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. iussj}@@@@@@3hgghhhhh@Ql@AA+1unification_errorNPvw@@;@@%traceO@@Ƞ @@@@@@5@@N@@@@@@@@@C@'unboxed;B@@8 @@@@M@@#!!!@@@Ш@г$%error0 @г(+unification$/@@03@HB;@@@@@@@@@*'@@@A@@@9/@@<@@@3@@@@.+*@'@@S21@A+.equality_errorPQEJEX@@;@@%traceQ@@ @@@@@@cgc@@P@%substR@@`@)type_expr@@@@)type_expr@@@@@@@@@@ Q@@@@@@@@@EE@@@@ O@@#33)cl@(@@Ш@г6%error cz c@г;*comparisoncocy@@C3@V;@@@@@@@@@"@@@@A@@@M @@P@@ @G@#CC-$@,@@Ш@гF$list-6@В@гJK89@@Q#@@@гMNBC@@T-@@@`.@@@e/GP@@i@@3@T@@@@P@@3GFFGGGGG@2@AQP@A+-moregen_errorSRUV@@;@@%traceT@@ @@@@@@@gh@@yS@@@@@@@@kl@'unboxedrs@@v @@@@R@@#  }@@@Ш@г#%error@г'*comparison@@/3@zB;@@@@@@@@@+(@@@A@@@9 /@@<@@ @3@@@@/,+@(@@3@ @A43@1unification_errorU @б%traceг%error#@г Ѡ+unification@@ @@@-3@3tn@A@@@ @@@/ @@г\1unification_error'8@@ @@@0@@/@@1  @@@ @@T@@@@.equality_errorV:>:L@б%traceг9%errorObOg@г ؠ*comparisonOWOa@@ @@@23@Cd+@A@@@ @@@4 @@б%substг$listOO@В@г))type_expr&Or'O{@@ @@@5&@@@г8)type_expr5O~6O@@ @@@65@@@@@ @@7< @@@1 @@@9AGOq/@@г.equality_errorOOPO@@ @@@:O@@H@@;RXOk @@nS@@<V\OQ @@@_::@@pU@@@@]-moregen_errorWjk@б%traceг%errorwx@г Y*comparison@@ @@@=3@+@A@@@ @@@? @@г@-moregen_error@@ @@@@@@/@@A @@@ @@V@@@@A+0comparison_errorXS).)>@@;@@.Equality_errorY@@@B@@ACAe@@X@-Moregen_errorZw@@@C@@fhf@@Y@@@A@@@@@))@7 E Wraps up the two different kinds of [comparison] errors in one type (@@@@@@@@@W@@#..AEAS@'@г0.equality_errorAW1@@73@jRH;@@@A@@@@@&$@@@A7@@@@9@#55fjfw@.@г7-moregen_errorf|8@@>9@@@@;@@A@7lِ65@55@@@5@5@@3        @ @ACF@6swap_unification_error[@б@г1unification_error$%@@ @@@M3&%%&&&&&@;|@A@@г1unification_error34@@ @@@N@@@@@O@@@> @ * Lift [swap_trace] to [unification_error] KL@@@@@@@]Z@@@$@@@@@@1'SubtypegTde@vf@@БA+#elt\Ust"@А!a@Q3zyyzzzzz@VkD;@@P@A@A@G@B@@@%:@@@@[@@A@@@;@A$Diff]#V@R@@@T@@%)@@\@@@A@Y@@@@@@@A@#%+%/@ @г$diff%6*@А!a:%3%5@@@#=2@@@@@@A@4@@3@=@A54@A+!t^V<F<G@А!a@c3@TdE;@@b@A@A@@w@@@x@aG@B@@@<><U@@@@]@@A<C<E@@@; @AAm+W@d@@@f@@@hY@@@@@@@@@@Aг$list<Q@г#elt <M <P@А!aA<J<L@@@"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. 'WY(@@@@@@3&%%&&&&&@Yi@@AA+%trace_W4 '5 ,@@;@@AyF)type_expr@@@~@@@@@@@C "D @@@@@U^@@@Aг!tM ? @гT 5U >@@3SRRSSSSS@.(;@@@A0@@@@}@@@@@@@@A @@@* @@!@@:! @A++error_trace`XmAHnAS@@;@@QA]@@@@@@@@@@{AC|Ae@@@@_@@@Aг!tAd @г-expanded_typeAVAc@@3@hb\);@@@A1@@@@@@@@!@@@@A@@@+ !@@#@@3@ @A$#@A+7unification_error_traceaYgng@@;@@A @@@@@@@@@@gig@ 4 To avoid shadowing gg@@@@@@@@@`@@@Aг%errorg@г +unificationgg@@(3@Jrl7;@@@A?@@@@@@@@/,@@@A@@@9 /@@1N/.@..@@@.@.@@3@@A=<@@+%errorbZ@@;@@%tracec@@@@@  @@b@1unification_traced@@Z.@@@@@@$@@,c@@@@@@@@@&@@@@0a@@#""&@@@Ш@г%+error_trace/0@@-3.--.....@Y@A@@2@@@.@#** :@@@Ш@г-%errorC)@г1+unificationKL@@9@@@>4@@A@@ @8@@@@4@@ 43@%erroreZ(.[(3@б%traceг+error_traceg6@h6K@@ @@@(3ihhiiiii@<vp@A@@б1unification_traceгҠ7unification_error_tracez6a{6x@@ @@@)@@г%error6|6@@ @@@* @@@@+#6O @@5*@@,'6: @@@(*@@d@@@@.#mapf@б@б@А!a@7[@-3@E\@A@@А!b@9[@. @@@ @@/@@б@г!t@А!a'"@@@-@@@1) @@г!t@А!b/7@@@5@@@3> @@@@@4A@@@4@@5D@@@@@ e@@@@K@oA@=A@A@A@a[A@ @@t@m@@3@\o@A3        @@A@@@@@@A@g@@9 @A@@gGA@ @fA@A@/@L@D>A@ A@A@zA@  A@  A@ Z +A@[A@A@]A@-@K@D@A@A@A@q@j@@A@@@@K@F@@@3UTTUUUUU@@A@uA@2,A@A@A@pj@@@v@@@Z@A@ H************************************************************************pA@@qA@L@ H vBMMwBM@ H OCaml |C}C@ H DD3@ H Florian Angeletti, projet Cambium, Inria Paris E44E4@ H Antal Spector-Zabusky, Jane Street, New York FF@ H GG@ H Copyright 2018 Institut National de Recherche en Informatique et HHg@ H en Automatique. IhhIh@ H Copyright 2021 Jane Street Group LLC JJ@ H KKN@ H All rights reserved. This file is distributed under the terms of LOOLO@ H the GNU Lesser General Public License version 2.1, with the MM@ 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}] U>* 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  f f@ * 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"-cXY ;/builds/workspace/main/flambda/false/label/ocaml-freebsd-64 >10/.-,+*)('&%$#"! @@0KW5L $'3srrsssss@p@@(Asttypes0E\eǥ]k6e8CamlinternalFormatBasics0oZ2t,ݠ0CamlinternalLazy0;x#5䢜hLm0RV*Sh4X*Format_doc0Mv9630A %Ident0y43a$+,Identifiable0XnAZ4eҠ(Location0nݹV 2f-V )Longident0@#j,6.Nt蠠+Outcometree0yl4>Yfܠ)Parsetree0Z<4$PC$Path09{ְZsv)Primitive0{mV|{J %Shape0OĸT>b&Stdlib0y{x!O!.Stdlib__Buffer0_?K|/V>O}~Nࠠ.Stdlib__Domain0iW',P6wz.Stdlib__Either0FԤ) 4'>.Stdlib__Format0)n[-Ob/Stdlib__Hashtbl0^iaxG$+,Stdlib__Lazy0OM>x9.@d{?g@@ +@͓@KUޒ@@`@+g@  4@%i_@7T  m@  @@P@@