Caml1999I037[IwBA *IncludemodӠ%Error`@$diff|;#elt@+explanation@@B#got@@5typing/includemod.mliXX@@ E@(expected@@ Y Y@@(F@'symptom@@ZZ@@0G@@@A@YY@@@@@@W[@@@@8D@A@)core_diff};#elt@@A@A> $unitF@@@@@@Y@@@@@7\8\@@@@VH@A@1functor_arg_descr~;@@)Anonymous@@F_;?G_;J@@eJ@%Named$Path!t@@@@@X`KOY`K`@@wK@$Unit@@aaaebaak@@L@,Empty_struct@@jblpkbl~@@M@@@A@@@@@n^ "@@@@I@A@4core_sigitem_symptom;@@2Value_descriptionsT%Types1value_description@@@+Includecore.value_mismatch@@@@@@@@gh1s@@O@1Type_declarationss0type_declaration@@@-type_mismatch@@@@@@@@itxj@@P@6Extension_constructors :5extension_constructor@@@8>extension_constructor_mismatch@@@@@@@@kmO@@Q@7Class_type_declarations!U6class_type_declaration@@@$listK%Ctype3class_match_failure@@@@@@@@@@@nPToq@@ S@2Class_declarations͠y1class_declaration@@@$"3class_match_failure@@@@@@@@@@@ p q@@+T@@@A@@@@@f@@@@.N@A@8core_module_type_symptom;@@,Not_an_alias@@tCGtCU@@=V@1Not_an_identifier@@'uVZ(uVm@@FW@4Incompatible_aliases@@0vnr1vn@@OX@4Abstract_module_type@@9w:w@@XY@3Unbound_module_path!t@@@@@IxJx@@hZ@@@A@@@@@Ms!#@@@@kU@A@3module_type_symptom;@@'Mt_coreʐJ@@@@@`{a{ @@e@)Signatureː1signature_symptom@@@@@p|  q|  4@@f@'Functor̐/functor_symptom@@@@@} 5 9} 5 U@@g@5After_alias_expansion͐0module_type_diff@@@@@~ V Z~ V @@h@@@A@@@@@z@@@@[@A@ ;@@@As+module_type@@@W@@@@@@@@@@A  A  @@@@\@B@4;@@&Paramsΐ3functor_params_diff@@@@@D  D  @@i@&Resultϐ?@@@@@E  E  ,@@j@@@A@@@@@C  @@@@]@B@5functor_param_symptom;#arg@$path@@B3Incompatible_paramsАj1functor_parameter@@@@@H Y ]H Y @@k@(Mismatchѐp@@@@@I  I  @@l@@@A@YH@@@@@@G . 0@@@@#^@B@9arg_functor_param_symptom;@@@A=1functor_parameter@@@%Ident!t@@@@@@@@@@#K  $L  @@@@B_@B@m;@@@A3functor_params_info@@@ @@@ @@@@7N  8O 5 V@@@@V`@B@ ;@@¶ms@@g1functor_parameter@@@ @@@ NQ t {OQ t @@mm@#res@@+module_type@@@ [Q t \Q t @@zn@@@A@@@@@_P W Z`Q t @@@@~a@B@;@@#env@@#Env!t@@@sT  tT  @@r@(missings@@.signature_item@@@@@@U  U  @@s@-incompatibles@@@|!t@@@@/sigitem_symptom@@@@@@@@V  V  8@@t@#oks@@Ѡ@#intA@@@@)Typedtree/module_coercion@@@@@@@@W 9 =W 9 i@@u@)leftovers@@@V.signature_item@@@@@@@@/@@@@@@@@X j nX j @@v@@@A@@@@@S  Z  @@@@ b@B@R;@@$Core@@@"@@\  \  5@@w@7Module_type_declaration3modtype_declaration@@@ ?module_type_declaration_symptom@@@@@@!@@] 6 :^ W @@9x@+Module_type@@@@@'_  (_  @@Fy@@@A@@@@@+[  @@@@Ic@B@;@@3Illegal_permutation{/module_coercion@@@'@@>b  ?b &@@]z@0Not_greater_than@@@&@@Kc'+Lc'Q@@j{@-Not_less_than@@@%@@XdRVYdRy@@w|@,Incomparable)less_than@@@@@$hfif@@}@,greater_than@@@@@#sftf@@~@@@wez~xf@@@@@A@@@@@{a  @@@@d@B@#all;@@3In_Compilation_unita&stringQ@@@2*@@@1@@@3@@jj!@@G@,In_Signature8@@@0@@k"&k"I@@H@.In_Module_type%@@@/@@lJNlJr@@I@;In_Module_type_substitution!t@@@.F+module_type@@@,@@@+@@@-@@mswn@@J@3In_Type_declaration!t@@@*@@@)@@oo@@K@,In_Expansion@@@(@@p#pM@@L@@@A@@@@@i@@@@F@A@@@UqNQ@M@@@+explanationa;@@@A@!t@@@5@,#all@@@4@@6@@@@rRRrRv@@@@5N@A@*field_kindb;@@+Field_value@@%v&v@@DQ@*Field_type@@.w/w@@MR@/Field_exception@@7x8x@@VS@,Field_typext@@@yAy@@_T@,Field_module@@Iz Jz@@hU@-Field_modtype@@R{S{)@@qV@+Field_class@@[|*,\|*9@@zW@/Field_classtype@@d}:<e}:M@@X@@@A@@@@@hu@@A@P@A@*field_descc;@@$name@@@@@8yOczOp@@Z@$kind@@h@@@7OqO@@[@@@A@@@@@OOO@@@@Y@A@2kind_of_field_descd@*@@@9 @@@:@@;@@@\@@*field_desce@&@@@<@!t@@@=@@@>@@?@@@@@@]@@Ӡ(FieldMapf@#key;@@@A2@@@@@@@vv@@@@^@A@!t;!a@@A@A@I@B@@@'map.mliI V ZI V e@@@@+Stdlib__MapD@A@%empty!a@@@@@L  L  @@E@@#add@;@@@@!a@@  @@@$ @@@@@@@@@@3O  4O  @@2F@@+add_to_list@@@@@!a@@>$listK@@@@@@I @@@@@@@@@@@@@]X  ^X  @@\G@@&update@I@@@@@&optionL!a@@@@  @@@@@@v@@@z@@@@@@@@@@^^@@H@@)singleton@u@@@@!a@@@@@@@@@jW[jW{@@I@@&remove@@@@@!a@@@@@@@@@@@@oo@@J@@%merge@@@@@@`!a@@@@@k!b@@@@t!c@@@@@@@@@@@@@@@@@@@@@@@@@@@@vY]x@@K@@%union@@@@@@!a@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@)fj*f@@(L@@(cardinal@)!a@@@@#intA@@@@@@BC@@AM@@(bindings@B!a@@@@ @>@@@ߠ@@@@@@@@@c8<d8a@@bN@@+min_binding@c!a@@@@@[@@@堠@@@@@@bfb@@~O@@/min_binding_opt@!a@@@@#@{@@@ꠠ@@@@@@@@@JNJ|@@P@@+max_binding@!a@@@@@@@@@@@@@@484[@@Q@@/max_binding_opt@!a@@@@`@@@@@@@@@@@@@ @@R@@&choose@ݠ!a@@@@@@@@@@@@@@@@S@@*choose_opt@!a@@@@@@@@@@@@@@@@@@@T@@$find@@@@@!a@@@@@@@@@23@@1U@@(find_opt@@@@ @7!a@ @@@ ۠ @@@ @@ @@@OIMPIs@@NV@@*find_first@@=@@@$boolE@@@@@@\!a@@@@@T@@@@@@@@@@@x  y  D@@wW@@.find_first_opt@@f@@@)@@@@@@!a@@@@'@@@@@@@@@@@@ @@!@"*"."*"l@@X@@)find_last@@@@@"U@@@#@@$@!a@&@@@%@@@@'@@@(@@)@@*@#_#c#_#@@Y@@-find_last_opt@@@@@+|@@@,@@-@֠!a@/@@@.z@@@@0@@@1@@@2@@3@@4@$y$}$y$@@Z@@$iter@@@@@5@!a@9$unitF@@@6@@7@@8@ @@@: @@@;@@<@@=@%%%& @@[@@$fold@@ @@@>@!a@B@#acc@D@@?@@@@@A@0@@@C@  @@E@@F@@G@A'%')B'3'l@@@\@@#map@@!a@I!b@K@@H@M @@@JQ @@@L@@M@@N@`(e(ia(e(@@_]@@$mapi@@N@@@O@!a@R!b@T@@P@@Q@q @@@Su @@@U@@V@@W@))))@@^@@&filter@@r@@@X@!a@];@@@Y@@Z@@[@ @@@\@@@^@@_@@`@****@@_@@*filter_map@@@@@a@!a@eO!b@g@@@b@@c@@d@@@@f @@@h@@i@@j@ ,, ,,?@@`@@)partition@@@@@k@!a@q@@@l@@m@@n@ @@@o@@@@r@@@@p@@s@@t@@u@.../%@@a@@%split@@@@v@!a@z@@@w@ @@@{@@@@y@@@@x@@|@@}@@~@,$0'0+-$0'0\@@+b@@(is_empty@,!a@@@@@@@@@@C022!D022;@@Bc@@,is_singleton@C!a@@@@@@@@@@Z32l2p[32l2@@Yd@@#mem@F@@@@_!a@@@@@@@@@@@@v822w823@@ue@@%equal@@!a@@*@@@@@@@@@@@@@@@:@@@@@@@@@@<3j3n<3j3@@f@@'compare@@!a@@t@@@@@@@@@@@@@@@@@@@@@@@@@B44B44@@g@@'for_all@@@@@@!a@{@@@@@@@@ՠ @@@@@@@@@@@F5r5vF5r5@@h@@&exists@@@@@@!a@@@@@@@@@ @@@@@@@@@@@ K66" K66Q@@ i@@'to_list@ !a@@@@Ӡ@@@@@@@@@@@@@-R66.R67@@,j@@'of_list@@!@@@@!a@@@@@@?@@@@@@NV7]7aOV7]7@@Mk@@&to_seq@N!a@@@@&Stdlib#Seq!t@P@@@@@@@@@@@@u\888<v\888a@@tl@@*to_rev_seq@u!a@@@@'#Seq!t@t@@@Ǡ@@@@@@@@@`88`88@@m@@+to_seq_from@@@@@!a@@@@P#Seq!t@@@@Π@@@@@@@@@@@d9;9?d9;9p@@n@@'add_seq@l#Seq!t@@@@Ӡ@!a@@@@@@@٠ @@@ݠ@@@@@@@@i: :i: :=@@o@@&of_seq@#Seq!t@@@@۠@!a@@@@@@@@@@@@m::m::@@p@@@@ vv%@ _@@@/item_ident_nameg@ x.signature_item@@@A@!t@@@D@(Location!t@@@C@@@@B@@E@@F@  @@ 6`@@4is_runtime_componenth@ .signature_item@@@G$boolE@@@H@@I@ . /.@@ Ma@@(modtypesi#loc1!t@@@J@!t@@@K$mark%@@@L@ +module_type@@@M@ +module_type@@@N/module_coercion@@@O@@P@@Q@@R@@S@@T@ eEE f}@@ b@@4modtypes_consistencyj#loch!t@@@U@ !t@@@V@ ;+module_type@@@W@ B+module_type@@@X `@@@Y@@Z@@[@@\@@]@  @@ c@@3modtypes_constraintk%shape%Shape!t@@@^#loc!t@@@_@ H!t@@@`$mark@@@a@ |+module_type@@@b@ +module_type@@@c@t/module_coercion@@@e@;!t@@@d@@f@@g@@h@@i@@j@@k@@l@  h@@ d@@8strengthened_module_decll#loc!t@@@m)aliasable@@@n@ !t@@@o$mark@@@p@ 2module_declaration@@@q@ !t@@@r@ 2module_declaration@@@s/module_coercion@@@t@@u@@v@@w@@x@@y@@z@@{@ & 'D@@ Ee@@7check_modtype_inclusionm#loc)!t@@@|@ !t@@@}@ +module_type@@@~@ !t@@@@ +module_type@@@&optionLc@@@@@@@@@@@@@@@@@ dFF e@@ f@@3check_modtype_equivn#locg!t@@@@ !t@@@@ g!t@@@@ B+module_type@@@@ I+module_type@@@ g@@@@@@@@@@@@@@  @@ g@@*signatureso@ 9!t@@@$mark@@@@ m)signature@@@@ t)signature@@@a/module_coercion@@@@@@@@@@@@     Y@@ h@@4check_implementationp@ e!t@@@@ )signature@@@@ )signature@@@ @@@@@@@@@@  @@ i@@(compunitq@ !t@@@$mark@@@@ v@@@@ )signature@@@@ @@@@ )signature@@@@~!t@@@@/module_coercion@@@@!t@@@@@@@@@@@@@@@@@@@@ 4 5T@@ Sj@@1type_declarationsr#loc7!t@@@@ !t@@@$mark+@@@@ ?!t@@@@ 0type_declaration@@@@ !0type_declaration@@@ ?@@@@@@@@@@@@@@@@ qVV r@@ k@@.print_coercions@&Stdlib&Format)formatter@@@@)/module_coercion@@@ _@@@@@@@@  @@ l@@'symptomt;@@-Missing_field= !t@@@!t@@@ "@@@@@ "& "T@@ n@2Value_descriptions> !t@@@ }1value_description@@@ 1value_description@@@ G.value_mismatch@@@@@ `b @@ o@1Type_declarations? !t@@@ 0type_declaration@@@ 0type_declaration@@@ߠ j-type_mismatch@@@@@  =@@p@6Extension_constructors@ !t@@@ݠ 5extension_constructor@@@ܠ 5extension_constructor@@@۠ >extension_constructor_mismatch@@@@@>@|@@;q@,Module_typesA +module_type@@@٠ +module_type@@@@@12@@Pr@-Modtype_infosB !!t@@@נ 3modtype_declaration@@@֠ 3modtype_declaration@@@@@MN?@@ls@3Modtype_permutationC +module_type@@@Ԡ /module_coercion@@@@@d@Be@@@t@2Interface_mismatchD @@@Ҡ @@@@@wx@@u@7Class_type_declarationsE g!t@@@Р A6class_type_declaration@@@Ϡ G6class_type_declaration@@@Π  3class_match_failure@@@@@@@@8@@v@2Class_declarationsF !t@@@ˠ i1class_declaration@@@ʠ o1class_declaration@@@ɠ  3class_match_failure@@@@@@@@9;@@w@3Unbound_module_pathG!t@@@@@@@x@@@A@@@@@@@@@m@A@#posu;@@&Modulee !t@@@@@@@z@'Modtypef !t@@@@@ @@{@#Argg 1functor_parameter@@@@@    '@@.|@$Bodyh 1functor_parameter@@@@@ ( * ( E@@=}@@@A@@@@@"@@@@@y@A@ %Errorv##exnG@@@@@@A&_none_@@A@Q~@B@0application_namew;@@1Anonymous_functork@@A  B  @@`@5Full_application_pathl)Longident!t@@@@@S  T  @@r@6Named_leftmost_functors!t@@@@@c!!d!!/@@@@@A@@@@@g g g@@@@@A@ +Apply_errorx#E@#locu@@j!t@@@z!k!o{!k!@@@#envv@@ !t@@@!!!!@@@(app_namew@@[@@@!!!!@@@%mty_fx@@ U+module_type@@@!!!!@@@$argsy@@͠@ 1functor_arg_descr@@@@8+module_type@@@@@@@@!!!"@@@@@A@@B@3expand_module_aliasy*strengthen@@@@ h!t@@@@!t@@@a+module_type@@@@@@@@@@""""f@@@@Ӡ6Functor_inclusion_diffz@Ӡ$Defs@$left;@@@A~1functor_parameter@@@@@@@""""@@@@#@A@%right;@@@A@@@@@@@""""@@@@2@A@"eq;@@@A a/module_coercion@@@@@@@$""%"#@@@@C@A@$diff;@@@A 5functor_param_symptom1functor_parameter@@@ @@@@@@@@@@@##A##O@@@@_@A@%state;@@@A@@@@@J#P#TK#P#^@@@@i@A@@@N""O#_#d@m@@@$diff@ !t@@@@@1functor_parameter@@@@@@@+module_type@@@@@@@1functor_parameter@@@@@@@ +module_type@@@@@'Diffing&Define%patch@@@@@@@@@@#e#g#$@@@@@@"h"h$ $ @@@@Ӡ0Functor_app_diff{@Ӡ$Defs@$left;@@@A@ 1functor_arg_descr@@@p@C+module_type@@@o@@q@@@@$>$B$>$y@@@@@A@%right;@@@AT1functor_parameter@@@r@@@@$z$~$z$@@@@@A@"eq;@@@A(/module_coercion@@@s@@@@$$$$@@@@ @A@$diff;@@@A 5functor_param_symptom 1functor_arg_descr@@@u@@@t@@@v@@@@$$$%@@@@%@A@%state;@@@A@@@@@%%%%%@@@@/@A@@@$+$-%&%+@3@@@$diff@!t@@@w!f+module_type@@@x$argsW@ +1functor_arg_descr@@@z@+module_type@@@y@@{@@@|&Define%patch@@@}@@~@@@@@S%,%.T %%@@r@@@@W$$X %%@v@@@@ ٠*Includemod0r9L.DP(Warnings0mJɒkgrs-Stdlib__Uchar056uf4[_+Stdlib__Sys0 -ռ鱦s5/.Stdlib__String08۠dwx)Parsetree0Uҩ=p>*%"e+Outcometree0euWS~d栠$Misc0Z1X=_c)Longident0s `7mɕc(Location0a7cK_H%9)Load_path0I@18 ~+Includecore0"fTeБtPH,Identifiable0~ܽǞ+%Ident0ki8' x%+Š*Format_doc0]mWϓ:Mݠ*Errortrace0>"+$? QNL(1R#Env0J=,Wu1Diffing_with_keys0%h8Lc\5'Diffing0ɞyM۠*Data_types0I'Ue`wq]Ѡ%Ctype0k#GW3*Cmi_format0_j~GB00CamlinternalLazy0&͂7 Pˆ8CamlinternalFormatBasics0%FU(Q/Tu5Build_path_prefix_map0z HkGs%Btype0kWfDN8FN(Asttypes0>n{T8cئ@@@Caml1999T037*C~C*Includemodࠐ)Typedtree)Typedtree5typing/includemod.mliRglRgu@@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|Rgg{@@3zyyzzzzz@w@A}@ࠐ%Types%TypesSv{Sv@@A3@ @ASvv@@@%ErrorAUU@M@@БA+$diffBWW@А#elt@3@);@@@@@B@A@GG@BB@@@W[@@@@D@@AWW@@BAА+explanation@WW@@ @;& @B#got@@.C@XX@@E@(expected@@8C@YY@@F@'symptom@@$C@ZZ@@G@@@A@YY@@@@@@9@@@6@### X@@@Ш@А#elt)RX X@@.@@W@,@#((%Y@$@@Ш@А#elt.aYY@@3@@f@1@#--*Z@)@@Ш@А+explanation3p&Z1@@7@@t@5@@A@f@@3&%%&&&&&@@Agf@A+)core_diffC4\5\ @А#elt@3;::;;;;;@k;@@@A@A@@@@@@G@B@@@S\T\@@@@eH@@AW\X\@@@; @A@A(D@@@@@@@Y@@@@@@@@@@Aг$diffr\@А#elt9x\y\@@г$unit\\@@E@@@'F\2@@4@@3@G@A54@A+1functor_arg_descrD^ '^ 8@@;@@)Anonymous@@_;?_;J@@J@%Named$Path!t@@@a@@`KO`K`@@K@$Unit@@aaeaak@@L@,Empty_struct@@blpbl~@)ocaml.doc l For backward compatibility's sake, an empty struct can be implicitly converted to an unit module. cd@@@@@@@M@@@A@@@@@^ "@@@@I@@#AA_;A?@>@@@B@#>>`KQ`KV@3@г@$Path`KZ`K^@E`K_C@D@@N3@h;@@@A@@@@@%@@@#@A J@@@@L@#HHaagF@E@@@I@#EEblrC@2@@@FCِBA@AA@@@A@A@@A@=@@3        @@A>Q@A+4core_sigitem_symptomEff@@;@@2Value_descriptions1value_description@@@i+Includecore.value_mismatch@@@@@@@@9g:h1s@@KO@1Type_declarations0type_declaration@@@-type_mismatch@@@@@@@@UitxVj@@gP@6Extension_constructors 5extension_constructor@@@:>extension_constructor_mismatch@@@@@@@@qkrmO@@Q@7Class_type_declarations!֠6class_type_declaration@@@%Ctype3class_match_failure@@@@@@@@@ @@nPToq@@S@2Class_declarations 1class_declaration@@@ '#3class_match_failure@@@ @@@@@@@@pq@@T@@@A@@@@@f@@@@N@@#gg-@@г$diffh1o@г%Typesh1:h1?@h1@h1Q@@@3@QK;@@@A@@@@@(@@@&@A @@г+Includecoreh1Sh1^@h1_h1m@@@@@@h19@@@@@#itzit@@г$diffj@г%Types j j@Űjj@@@8@@гȠ+Includecorejj@ϰ!j"j@@@I@@@J&j@@@@@#Ϡϰ+k,k@@гѠ$diff5mK@гՠ%Types?l@l@ܰClDl@@@k@@гߠ+IncludecorePmQm*@Tm+UmI@@@|@@@}Yl@@@@@#^nPV_nPm@@г蠐$diffhoq@г젡%Typesroqzsoq@voqwoq@@@@@г$listoqoq@г%Ctypeoqoq@oqoq@@@ @@@ @@@oqy@@@@@#pp@@г$diffq@г%Typesqq@ qq@@@۰@@г$listqq@г%Ctypeqq@qq@@@$@@@) @@@5q@@@@ @@A@@@3@@A @A+8core_module_type_symptomFs!(s!@@@;@@,Not_an_alias@@tCGtCU@@V@1Not_an_identifier@@uVZuVm@@W@4Incompatible_aliases@@vnrvn@@ X@4Abstract_module_type@@ww@@Y@3Unbound_module_pathi!t@@@E@@xx@@&Z@@@A@@@@@s!#@@@@)U@@#88tCI6@5@@@9@#55%uV\3@2@@@6@#22+vnt0@/@@@3@#//1w-@,@@@0@#,,7x8x@#@г.$PathCxDx@5Gx3@4@@<3FEEFFFFF@o60q;@@@A@@@@@7@@@5@A :@@@@<@@A@8@@3LKKLLLLL@@A9<@A+3module_type_symptomGZz[z@@;@@'Mt_coreʐ@@@R@@i{j{ @@{e@)Signatureː1signature_symptomG@@@S@@y|  z|  4@@f@'Functor̐/functor_symptomG@@@T@@} 5 9} 5 U@@g@5After_alias_expansion͐0module_type_diffG@@@U@@~ V Z~ V @@h@@@A@@@@@z@@@@[@@#BB{{@;@гD8core_module_type_symptom{E@@K3@pe;@@@A@@@@@!@@@(;@@@A0@@@'8@M@@@@A  A  @@@@\@E;@@@A@@@@@C  E  ,@@@@]@5functor_param_symptomG;@@N@@O@B@A@GG@BB@@@G . 0I  @@@@^@9arg_functor_param_symptomG;@@@A @@@'9@P@@@@K  L  @@@@_@3functor_params_diffG;@@@A @@@':@Q@@@@N  O 5 V@@@@`@3functor_params_infoG;@@@A@@@@@P W ZQ t @@@@a@;@@@A@@@@@ S   Z  @@@@b@/sigitem_symptomG;@@@A@@@@@[  _  @@@@%c@?module_type_declaration_symptomG;@@@A@@@@@a  f@@@@-d@@Aq@@@@@##|  $|  @@г1signature_symptom-|  #@@@@@@@#3} 5 ;4} 5 B@@г/functor_symptom=} 5 F@@@@@@@#C~ V \D~ V q@@г0module_type_diffM~ V u@@@@@@@@A@@+SA  TA  @@;@@A+module_type@@@V@@@W@@@Z@@@@@@@@@Aг$diffnA  @г%TypesxA  yA  @|A  }A  @@@$а@@г3module_type_symptomA  A  @@'ڰ@@@3۰A  @@@+  C  C  @@;@@&Paramsΐ@@@[@@D  D  @@i@&Resultϐ@@@\@@E  @@j@@@A@@@@@@@@@#D  D  @@г3functor_params_diffD  @@% @@@@"@#E  E  @@г 0module_type_diffE  @@' @@@@$@@A@@+G . AG . V@А#arg@]/G . 5G . 9@@А$path@^:G . :G . ?@@"@; @B3Incompatible_paramsАH@_x1functor_parameter@@@a@@H Y ]H Y @@k@(Mismatchѐw@@@b@@I  /@@l@@@A@YH@@@@@@6@@@3@#%%H Y _H Y r@@А#arg*q!H Y v"H Y z@@г+%Types,H Y }-H Y @20H Y 0@1@@92@@@@4@#007I  8I  @*@г20module_type_diffAI  b@@9c@@@@6@@A@e@+ccGK  HK  @@;@@A~1functor_parameter@@@c%Ident!t@@@@@@@@@@r@@@o@@Aг5functor_param_symptomfL  x@г%TypespL  qL  @ tL  uL  @@@(Ȱ@@г#%IdentL  L  @(L  L  @@@2ٰ@@@>ڰL  @@@+N  N  2@@;@@7Af@@@@@@@@@@@@@@@Aг )core_diffO 5 M@г3functor_params_infoO 5 9O 5 L@@@@@@@@+P W ^P W q@@;@@¶ms@@:>1functor_parameter@@@@@@Q t {Q t @@m@#res@@L+module_type@@@Q t Q t @@n@@@A@@@@@@@@@#  Q t @@@Ш@г#$listQ t Q t @г()Q t Q t @@/?@@@4@ @@7@@C@-@#))#Q t @"@@Ш@г,-Q t +@@2P,@@5@@S@0@@A@@+S  S  @@;@@#env@@#Env!t@@@&T  T  @@)r@(missings@@.signature_item@@@&@@@&*U  +U  @@%Types ^ W ` ^ W e@E ^ W f ^ W y@@@MI@@гH?module_type_declaration_symptom ^ W { ^ W @@PS@@@\T ^ W _L@@@@N@#JJ _   _  @D@гL0module_type_diff _  @@Se@@@@P@@A@@+ a   a  @@;@@3Illegal_permutation -/module_coercion@@@&@@ *b   +b &@@ J@3In_Type_declaration!t@@@')@@@'@@ Ao Bo@@ SK@,In_Expansionr@@@'@@ Op# PpM@@ aL@@@A@@@@@ Si@@@@ dF@@#|| Zj [j@k@г~$diff dju@г&string lj mj@@3 k j j k k k k k@d_lrz1%$;@@@A@@@@@*@@@(@A@@г1signature_symptom j  j@@@@@ j@@@@@# k"( k"4@@г1signature_symptom k"8@@*@@@@@# lJP lJ^@@г0module_type_diff lJb@@:@@@@@# msy ms@@г%Ident n n@ n n@@@R@@г$diff n@г%Types n n@ n n@@@k@@г?module_type_declaration_symptom n n@@u@@@v n@@@@@# o o@@г%Ident o o@ o o@@@@@гà4core_sigitem_symptom o @@@@@@@#àð p% p1@@гŠ8core_module_type_symptom p5@@@@@@@@A@@@3        @@A@@ t EA@  A@  A@  A@HBA@A@B@B@[?B@KB@>B@1|B@+B@'B@!B@gaA@@3 6 5 5 6 6 6 6 6@ic@A#  =U >qNQ@@@ @U@ @A++explanationI KrRW LrRb@@;@@ A@E!t@@@'ܠ@ #all@@@(9@@(:@@@@ brRR crRv@@@@ tN@@@AВ@г#Env rrRe srRh@ vrRi wrRj@@@&3 v u u v v v v v@  @  A@ R )A@  A@ p jA@A@4.A@7B@ B@B@IB@B@B@#B@ B@B@A@@@_ W;@@@A_@@@(C@'@@@@F@@@C@A61@@@гO%Error rRm rRr@V rRsT@U@@]?V@@@j@HW@@Y@@3        @@@AZY@A+*field_kindJ u u@@;@@+Field_value@@ v v@@ Q@*Field_type@@ w w@@ R@/Field_exception@@ x x@@ S@,Field_typext@@ y y@@ T@,Field_module@@ z  z@@ U@-Field_modtype@@ { {)@@ V@+Field_class@@ |*, |*9@@ W@/Field_classtype@@ }:< }:M@@ X@@@A@@@@@ u@@A@ #P@@#LL vJ@I@@@M@#II wG@F@@@J@#FF %xD@C@@@G@#CC +yA@@@@@D@#@@ 1z >@=@@@A@#== 7{;@:@@@>@#:: =|*.8@7@@@;@#77 C}:>5@4@@@8@@A@4@@3 B A A B B B B B@@A69@A+*field_descK QOT RO^@@;@@$name@@ &@@@(L ^Oc _Op@@ pZ@$kind@@@@@(O jOq kO@@ |[@@@A@@@@@ nOO oO@@@@ Y@@# vOg@@@Ш@г &string Oi Oo@@(3 ~ } } ~ ~ ~ ~ ~@>7;@@@A@@@@@@@@@A@@0@@(M@,@#((# Ou@"@@Ш@г+*field_kind Ow,@@2-@@5@@(P@1@@A@-@@3        @@A.-@2kind_of_field_descĠ  @б@г^*field_desc  @@ @@@([3        @3ic@A@@г &string  @@ @@@(\@@@@@(]@@@  @@ \@@ @@*field_descŠ  @б@г*field_kind  @@ @@@(^3        @1F@A@@б@г!t%Ident  @   @@@@@@(_ @@г*field_desc@@ @@@(`'@@@@@(a*@@@0@@(b-3 @@@@@%]@@@@3(FieldMap,L!v}"v@3_@@УР #Map!S1v2v@ 5v6v@@365566666@Vk)@A @@#key@#keyEvFv@+ @;@@@A@@@)@@@@RvSv@@@@d^@@@Aг *field_desc\v @@$ @@ @@"M;@@@A@@@+@@@@@@@A@!tM;!a@)@A@A@I@B@@@'map.mliI V ZI V e@@@@+Stdlib__MapD@A@%empty!a@)@@@+@L  L  @@E@@#add@6@@@+@!a@)@  @@@+$ @@@+@@+@@+@@+@3O  4O  @@2F@@+add_to_list@@@@+@!a@)@>$listK@@@+@@@+I @@@+@@@+@@+@@+@@+@]X  ^X  @@\G@@&update@I@@@+@@&optionL!a@)@@@+  @@@+@@+@v@@@+z@@@+@@+@@+@@+@^^@@H@@)singleton@u@@@+@!a@)@@@+@@+@@+@jW[jW{@@I@@&remove@@@@+@!a@)@@@+@@@+@@+@@+@oo@@J@@%merge@@@@@+@`!a@)@@@+@k!b@)}@@@+t!c@){@@@+@@+@@+@@+@@@@+@@@@+@@@+@@+@@+@@+@vY]x@@K@@%union@@@@@+@!a@)o@ @@@+@@+@@+@@+@@@@+@@@@+@@@+@@+@@+@@+@)fj*f@@(L@@(cardinal@)!a@)j@@@+#intA@@@+@@+@BC@@AM@@(bindings @B!a@)e@@@+ @>@@@+@@@+@@@+@@+@c8<d8a@@bN@@+min_binding @c!a@)_@@@+@[@@@+@@@+@@+@bfb@@~O@@/min_binding_opt @!a@)Z@@@+#@{@@@+@@@+@@@+@@+@JNJ|@@P@@+max_binding @!a@)T@@@+@@@@+@@@+@@+@484[@@Q@@/max_binding_opt @!a@)O@@@+`@@@@+@@@+@@@+@@+@ @@R@@&choose@ݠ!a@)I@@@+@@@@+@@@+@@+@@@S@@*choose_opt@!a@)D@@@+@@@@+@@@+@@@+@@+@@@T@@$find@@@@+@!a@)=@@@+@@+@@+@23@@1U@@(find_opt@@@@+@7!a@)8@@@+۠ @@@+@@+@@+~@OIMPIs@@NV@@*find_first@@=@@@+}$boolE@@@+|@@+{@\!a@)0@@@+z@T@@@+y@@@+x@@+w@@+v@x  y  D@@wW@@.find_first_opt@@f@@@+u)@@@+t@@+s@!a@)'@@@+r'@@@@+q@@@+p@@@+o@@+n@@+m@"*"."*"l@@X@@)find_last@@@@@+lU@@@+k@@+j@!a@)@@@+i@@@@+h@@@+g@@+f@@+e@#_#c#_#@@Y@@-find_last_opt@@@@@+d|@@@+c@@+b@֠!a@)@@@+az@@@@+`@@@+_@@@+^@@+]@@+\@$y$}$y$@@Z@@$iter@@@@@+[@!a@) $unitF@@@+Z@@+Y@@+X@ @@@+W @@@+V@@+U@@+T@%%%& @@[@@$fold@@ @@@+S@!a@)@#acc@(@@+R@@+Q@@+P@0@@@+O@  @@+N@@+M@@+L@A'%')B'3'l@@@\@@#map@@!a@(!b@(@@+K@M @@@+JQ @@@+I@@+H@@+G@`(e(ia(e(@@_]@@$mapi@@N@@@+F@!a@(!b@(@@+E@@+D@q @@@+Cu @@@+B@@+A@@+@@))))@@^@@&filter@@r@@@+?@!a@(;@@@+>@@+=@@+<@ @@@+;@@@+:@@+9@@+8@****@@_@@*filter_map@@@@@+7@!a@(O!b@(@@@+6@@+5@@+4@@@@+3 @@@+2@@+1@@+0@ ,, ,,?@@`@@)partition@@@@@+/@!a@(@@@+.@@+-@@+,@ @@@++@@@@+)@@@@+*@@+(@@+'@@+&@.../%@@a@@%split@@@@+%@!a@(@@@+$@ @@@+!@@@@+"@@@@+#@@+ @@+@@+@,$0'0+-$0'0\@@+b@@(is_empty@,!a@(@@@+@@@+@@+@C022!D022;@@Bc@@,is_singleton@C!a@(@@@+@@@+@@+@Z32l2p[32l2@@Yd@@#mem @F@@@+@_!a@(@@@+@@@+@@+@@+@v822w823@@ue@@%equal!@@!a@(@*@@@+@@+@@+@@@@+@@@@+:@@@+ @@+ @@+ @@+ @<3j3n<3j3@@f@@'compare"@@!a@(@t@@@+ @@+@@+@@@@+@@@@+@@@+@@+@@+@@+@B44B44@@g@@'for_all#@@@@@+@!a@({@@@*@@*@@*@ՠ @@@*@@@*@@*@@*@F5r5vF5r5@@h@@&exists$@@@@@*@!a@(@@@*@@*@@*@ @@@*@@@*@@*@@*@ K66" K66Q@@ i@@'to_list%@ !a@(@@@*Ӡ@@@@*@@@*@@@*@@*@-R66.R67@@,j@@'of_list&@@!@@@*렠@!a@(@@*@@@*?@@@*@@*@NV7]7aOV7]7@@Mk@@&to_seq'@N!a@(@@@*&Stdlib#Seq!t@P@@@*堠@@@*@@@*@@*@u\888<v\888a@@tl@@*to_rev_seq(@u!a@(}@@@*'#Seq!t@t@@@*ࠠ@@@*@@@*@@*@`88`88@@m@@+to_seq_from)@@@@*@!a@(v@@@*P#Seq!t@@@@*ڠ@@@*@@@*@@*@@*@d9;9?d9;9p@@n@@'add_seq*@l#Seq!t@@@@*ՠ@!a@(l@@*@@@*@٠ @@@*ݠ@@@*@@*@@*@i: :i: :=@@o@@&of_seq+@#Seq!t@@@@*Π@!a@(e@@*@@@*@@@*@@*@m::m::@@p@@@PY7@@_ Map indexed by both field types and names. This avoids name clashes between different sorts of fields such as values and types. Uu@@@@@@@vvH@bI@/item_ident_namer@б@г'.signature_item%Types@ @@@@@@+3@@baA@[YA@JH@:8@@@@@@^\@31@@@@@@@qo@RP@<:@!@@@@@][@;9@@@@@@\Z@GE@20@@@@@@ki@LJ@'%@@@@@\@@@@@@@Aup@@В@г !t%Ident78@ ;<@@@@@@+ @@@г(Location!t(LocationQR@ UV@@@@@@/5 @@@г*field_descef@@ @@@/6@@@@1@@ @@/7=@@@ @@/8@@@y@@`@@@@4is_runtime_components@б@г.signature_item%Types@ &@@@@@@/93@(@A @@гa$bool*.@@ @@@/:@@@@@/;@@@ @@a@@ @@(modtypestEIEQ@б#locг!t(LocationSYSa@ SbSc@@@@@@/<3@<Z*@A @@б@г !t#EnvSgSj@ SkSl@@@@@@/= @@б$markг$boolSuSy@@ @@@/>+@@б@г+module_type }}@@ @@@/?:@@б@г+module_type}}@@ @@@/@I@@г,/module_coercion)}*}@@ @@@/AV@@@@@/BY@@@%@@/C\( @@B7@@/D_8Sp@@@L@@/EcT@@}i@@/Ff?SU@@@BEE@@Sb@@@@m4modtypes_consistencyuMN@б#locг!t(Location^_@ bc@@@@@@/G3eddeeeee@*@A @@б@г_!t#Envxy@ |}@@@@@@/H @@б@г+module_type@@ @@@/I)@@б@г+module_type@@ @@@/J8@@гQ$unit@@ @@@/KE@@@@@/LH@@@%@@/MK( @@@7@@/NN?@@hT@@/OQ@@@@@c@@@@X3modtypes_constraint+@б%shapeг%Shape!t%Shape-5-:@ -;-<@@@@@@0&3@~,@A @@б#locг!t(Location-D-L@ -M-N@@@@@@0' @@б@г!t#Env-R-U@ -V-W@@@@@@0(4 @@б$markгߠ$bool%-`&-d@@ @@@0)E@@б@г+module_type4hj5hu@@ @@@0*T@@б@г+module_typeChyDh@@ @@@0+c@@В@гW/module_coercionThUh@@ @@@0,t@@@г!t%Shapeghhh@ khlh@@@@@@0- @@@@ @ @@0.% @@@6 @@0/9@@@H@@00K@@eZ@@01-[@@@o@@02w@@@@03-@@@@@04-/"@@@%@А  [modtypes_constraint ~shape ~loc env ~mark exp_modtype constraint_modtype] checks that [exp_modtype] is a subtype of [constraint_modtype], and returns the module coercion and the shape of the constrained module. It also marks as used paired items in positive position in [exp_modtype], and also paired items in negative position in [constraint_modtype]. This marking in negative position allows to raise an [unused item] warning whenever an item in a functor parameter in [constraint_modtype] does not exist in [exp_modtypes]. This behaviour differs from the one in {!check_implementation} and {!compunit} which assumes that is not appropriate to raise warning about the interface file while typechecking the implementation file.   @@@@@@@d@@5@v@@@@@@8strengthened_module_decl@б#locгv!t(Location@ @@@@@@053@ C@A @@б)aliasableг$bool@@ @@@06@@б@г!t#Env@ @@@@@@07+ @@б$markг$bool@@ @@@08<@@б@г2module_declaration@@ @@@09K@@б@гy!t$Path()@ ,-@@@@@@0:c @@б@г2module_declaration<=1@@ @@@0;r@@гL/module_coercionI5JD@@ @@@0<@@@@@0=@@@%@@0>- @@@@@@0?C@@]R@@0@[@@@g@@0Ao@@@@0Bb@@@@0Cf@@@i @@ze@@"@@7check_modtype_inclusiontFJuFa@б#locг6!t(Locationdjdr@ dsdt@@@@@@0D3@*@A @@б@г!t#Envdxd{@ d|d}@@@@@@0E @@б@г++module_type%Typesdd@ dd@@@@@@0F2 @@б@г !t$Pathdd@ dd@@@@@@0GJ @@б@г[+module_type%Typesdd@ dd@@@@@@0Hb @@гT&option@г +explanation@@ @@@0Iy@@@@@@0K~ @@@"@@0L*@@@=@@0ME@@@X@@0N`@@@s@@0O{ @@@@0Pdf$@@@ FF'@` [check_modtype_inclusion ~loc env mty1 path1 mty2] checks that the functor application F(M) is well typed, where mty2 is the type of the argument of F and path1/mty1 is the path/unstrenghened type of M. -.W@@@@@@@?f@@7@p@@@@@@3check_modtype_equivDE@б#locг!t(LocationUV@ YZ@@@@@@0Q3\[[\\\\\@C@A @@б@гV!t#Envop@ st@@@@@@0R @@б@г&!t%Ident@ @@@@@@0S2 @@б@г+module_type@@ @@@0TA@@б@г"+module_type@@ @@@0UP@@г`$unit@@ @@@0V]@@@@@0W`@@@%@@0Xc( @@@7@@0Yf?@@@R@@0ZiZ@@o@@0[l@@@@@g@@@@s*signatures  @б@г!t#Env  @   @@@@@@0\3@(@A @@б$markг$bool ( ,@@ @@@0]@@б@г)signature 0 9@@ @@@0^"@@б@г)signature =  F@@ @@@0_1@@г//module_coercion, J- Y@@ @@@0`>@@@@@0aA@@@%@@0bD( @@B7@@0cG; #@@@N@@0dKV@@@A  @@Rh@@@@Q4check_implementationLM@б@гB!t#Env[\@ _`@@@@@@0e3baabbbbb@s(@A @@б@г)signatureqr@@ @@@0f@@б@г)signature@@ @@@0g @@г6$unit@@ @@@0h-@@@@@0i0@@@%@@0j3( @@@9@@0k6A@@@@ސ . Check an implementation against an interface [[[@@@@@@@i@@!@@@@@@@U(compunit@б@г!t#Env@ @@@@@@0l3@wA@A @@б$markг$bool@@ @@@0m@@б@г&string@@ @@@0n"@@б@г)signature@@ @@@0o1@@б@гܠ&string@@ @@@0p@@@б@г)signature%#&,@@ @@@0qO@@б@г_!t%Shape8095@ <6=7@@@@@@0rg @@В@гQ/module_coercionN;OJ@@ @@@0sx@@@г!t%ShapeaMbR@ eSfT@@@@@@0t @@@@ @ @@0u% @@@6 @@0v>@@@Q@@0wT@@@c@@0xf@@@u@@0yx@@@@@0z@@@@0{ @@@@@0|#@@@&@@j@@(@@1type_declarationsVZVk@б#locгX!t(Locationmsm{@ m|m}@@@@@@0}3@*@A @@б@г!t#Envmm@ mm@@@@@@0~ @@б$markг$boolmm@@ @@@0+@@б@г!t%Ident@ @@@@@@0C @@б@гv0type_declaration@@ @@@0R@@б@г0type_declaration @@ @@@0a@@гà$unit@@ @@@0n@@@@@0q@@@%@@0t( @@@7@@0w?@@]R@@0z,m@@@g@@0~o@@@@03mo@@@6VV@@Gk@@@@.print_coercion;AB@б@г&Format)formatterPQ@ TU@@@@@@73WVVWWWWW@(@A @@б@гi/module_coercionfg @@ @@@7@@г$units t@@ @@@7@@@@@7!@@@'@@7$/ @@@@@l@@@@*A+'symptom]!t@@@791value_description@@@7?1value_description@@@7.value_mismatch@@@7@@`b@@o@1Type_declarations?!t@@@7\0type_declaration@@@7b0type_declaration@@@7-type_mismatch@@@7@@=@@p@6Extension_constructors@!t@@@75extension_constructor@@@75extension_constructor@@@7>extension_constructor_mismatch@@@7@@>@|@@%q@,Module_typesA+module_type@@@7+module_type@@@7@@()@@:r@-Modtype_infosB!t@@@73modtype_declaration@@@73modtype_declaration@@@7@@DE?@@Vs@3Modtype_permutationC+module_type@@@7^/module_coercion@@@7@@[@B\@@@mt@2Interface_mismatchD1@@@76@@@7@@no@@u@7Class_type_declarationsE!!t@@@76class_type_declaration@@@7 6class_type_declaration@@@7à 3class_match_failure@@@7@@@7@@8@@v@2Class_declarationsFI!t@@@7Ǡ%1class_declaration@@@7Ƞ+1class_declaration@@@7ɠ1-3class_match_failure@@@7@@@7@@9;@@w@3Unbound_module_pathG#!t@@@7@@@@x@@@A@@@@@@@@@m@@#DD/"3@.@гE%Ident"7"<@L"=">@@@T3@oe;@@@A@@@@@@@@@A @@гT(Location"A"I@["J"K@@@c@@г^&string "N_@@e`@@@@b@#^^`d`v@B@г`%Identzz@gz z@@@o7@@гjk)z*z@@q@@@гmn2z3z@@tI@@гp+Includecore>?@wBu@v@@~Yw@@@@y@#uuIJ@Y@гw%IdentUV@~YZ@@@q@@гcd@@z@@гlm!@@@@г+Includecorex$y/@|0@@@@@@@@#>B>X@p@г%Ident>\>a@>b>c@@@@@г>f>{@@@@г||@@@@г+Includecore||@|@@@Ͱ@@@@@#@@г@@ݰ@@г@@@@@@@#@@г%Ident @@@@@@г)@@@@г,@@@@@@@#@D@W@@г%Types @[ @`@@a@l@@@&@@г)Typedtree@o@x@ư@y@@@6@@@@@#Ġİ&'@@гƠ&string01@@G@@гˠ&string:@@P@@@@@#ˠ˰@A@@г͠%IdentLM@԰PQ@@@h@@гנذZ[@@q@@гڠ۰cd@@z@@гݠ$listm4@гᠡ%Ctypewx@{ |3@@@@@@ @@@@@#9=9O@@г頡%IdentSYS^@S_S`@@@@@гScSt@@@@гSwS@@@@г$list@г%Ctype@@@@ װ@@@ذ @@@@@#@@г$Path@  @ @@ @@@@@@A@ @@3@@A @A+#posdO@@;@@&Modulee!t@@@9[@@@@ z@'Modtypef!t@@@9\@@   @@ {@#Argg1functor_parameter@@@9]@@      '@@ (|@$Bodyh1functor_parameter@@@9^@@ % ( * & ( E@@ 7}@@@A@@@@@ )@@@@ :y@@#BB 0 1@9@гD%Ident < =@K @I@J@@R3 ? > > ? ? ? ? ?@Xc;@@@A@@@@@@@@@A P@@@@R@#NN L M@E@гP%Ident X  Y @W \ U@V@@^W@@@@Y@#UU c   d  @M@гWX l  V@@]+W@@@@Y@#UU r ( , s ( 0@M@гWX { ( 4V@@]:W@@@@Y@@A@U@@3 z y y z z z z z@:@AVY@%ErroriP  G Q  G V@#@I@@@9l@@A  G G  G e@@ ~@@г +explanation  G Z @@3        @]@A@@@@@@@A+0application_namejQ  g l  g |@@;@@1Anonymous_functork@@      @ , [(functor (_:sig end) -> struct end)(Int)]       @@@@@@@ @5Full_application_pathl)Longident!t@@@9@@      @0 [F(G(X).P)(Y)]      !@@@@@@@ @6Named_leftmost_functors !t@@@9@@ !! !!/@59 [F(struct end)...(...)] !!!0!!!N@@@@@@@!@@@A@@@@@! g g@@@@!@@#YY!   W@H@@@ZN 䐠XW@WW@@@W@W@#SS!  !  @:@гU)Longident!*  !+  @Z!.  X@Y@@c3!-!,!,!-!-!-!-!-@;@@@A@@@@@0@@@.@A _@@@@au! _^@^^@@@^@^@#ZZ!E!! !F!! @C@г\)Longident!Q!!$!R!!-@c!U!!.a@b@@j'c@@@@e!-cb@bb@@@b@b@@A@^@@3!`!_!_!`!`!`!`!`@2@A_p@+Apply_errortR!n!P!Z!o!P!e@# @#locu@@ 2!t@@@9!}!k!o!~!k!@@!@#envv@@v!t@@@9!!!!!!@@!@(app_namew@@@@@9!!!!!!@@!@%mty_fx@@ +module_type@@@9!!!!!!@@!@$argsy@@!*@ 1functor_arg_descr@@@9@ :+module_type@@@9@@9@@@9İ!!!!!"@@!@@@A!!P!P!""@@!@@#ZZS!!k!r@R@@Ш@г](Location!!k!u!!k!}@d!!k!~!!k!@@@l3!!!!!!!!@<6@A @@q@@9@k@#gg`!!!@_@@Ш@гj#Env!!!!!!@q!!!!!!@@@y@@|@@9@v@#rrm"!!@l@@Ш@гu0application_name" !!"!!@@}-@@@@90@|@#xxr"!!@q@@Ш@г{|"!!"!!@@>@@@@9A@@#||d"'!!@c@@Ш@г$list"0!" "1!"@В@г%Error"?!!"@!!@"C!!"D!!@@@d@@@г%Types"Q!!"R!!@"U!!"V!"@@@v@@@w@@@x"[!!+@@@@9|@@@@@@|@3expand_module_aliasz"g"""h""-@б*strengthenг".$bool"t"":"u"">@@ @@@93"v"u"u"v"v"v"v"v@ @A@@б@гp!t#Env"""B"""E@ """F"""G@@@@@@9 @@б@г!t$Path"""K"""O@ """P"""Q@@@@@@92 @@г!++module_type%Types"""U"""Z@ """["""f@@@@@@9H @@@@@9K$ @@@7@@9N? @@_T@@9Q"""/@@@"""@@"@@@@X6Functor_inclusion_diffS""h"o""h"@"@@Б$DefsT""""""@"@@БA+$left{U""""""@@;@@ A!}1functor_parameter@@@9@@@@#""#""@@@@#@@@Aг %Types#""#""@#""@@@3########@N$;@@@A,@@@9@9@@@@@@@@A@@ @@3#!# # #!#!#!#!#!@ @A! @A+%right|V#/""#0""@@;@@ A@@@@9@@@@#8""#9""@@@@#J@@@Aг $left#B"" @@3#@#?#?#@#@#@#@#@@-PJ;@@@A#@@@9@9@@@@@@@@A@@@@3#M#L#L#M#M#M#M#M@ @A@A+"eq}W#[""#\""@@;@@!A#i/module_coercion@@@9@@@@#f""#g"#@@@@#x@@@Aг )Typedtree#r""#s""@#v""@@@3#u#t#t#u#u#u#u#u@6PJ$;@@@A,@@@9@9@@@@@@@@A@@ @@3########@ @A! @A+$diff~X### ###@@;@@!8A"5functor_param_symptom"1functor_parameter@@@9#Q@@@9@@@9@@@@######O@@@@#@@@Aг%Error###4###9@###:@@г %Types######@'######,@@@/3########@Ruo@;@@@AH@@@9@9@@@@/@@@,@A@@г6$unit###.###2@@>@@@L###:@@<@@3########@@A=<@A+%stateY##P#Y##P#^@@;@@!A@@@@@##P#T@@@@$@@@A@@@3########@*ic@A@@A@A@A@rlA@A@@3########@@A 3$##$$$$$@@A$""$#_#d@@@$""@@$diff$#e#k$#e#o@б@г!t#Env$!#e#q$"#e#t@ $%#e#u$&#e#v@@@@@@:3$($'$'$($($($($(@G@;5A@A@A@A@PJA@@@2L@A@@б@В@г#$list$G#z#$H#z#@г"1functor_parameter%Types$U#z#~$V#z#@ $Y#z#$Z#z#@@@@@@:4 @@@ @@@:9@@@г"+module_type%Types$r#z#$s#z#@ $v#z#$w#z#@@@@@@:Q @@@@!@ @@:X/ @@б@В@г$ $list$##$##@г#1functor_parameter%Types$##$##@ $##$##@@@@@@:~ @@@ @@@: @@@г#0+module_type%Types$##$##@ $##$##@@@@@@:  @@@@!@ @@: / @@г'Diffing&Define%patch'Diffing$##$##@$##$##@@$Defs$##$#$@$#$@$#$$#$@@@)@@@:ϰ@@@6@@:Ұ_ @@@@@:հ @@@@@:ذ@@@%#e#g@@%@@@@@%@ @@@ @@3% % % % % % % % @ @A3%% % %%%%%@@A%"h"%$ $ @@@%"h"h@@0Functor_app_diffZ%"$$%#$$%@%4@@Б$Defs[%2$+$4%3$+$8@%D@@БA+$left\%A$>$G%B$>$K@@;@@"A@#1functor_arg_descr@@@:@#+module_type@@@:@@:@@@@%X$>$B%Y$>$y@@@@%j@@@AВ@г%Error%h$>$N%i$>$S@%l$>$T%m$>$e@@@&3%l%k%k%l%l%l%l%l@Y@@~A@QKA@'!A@A@A@@@{@@v@@@oG;@@@AO@@@:@:@@@@6@@@3@A&!@@@г?%Types%$>$h%$>$m@F%$>$nD@E@@M/F@@@Z08G@@I@@3%%%%%%%%@0@AJI@A+%right]%$z$%$z$@@;@@#SA$.1functor_parameter@@@:@@@@%$z$~%$z$@@@@%@@@Aг %Types%$z$%$z$@%$z$@@@3%%%%%%%%@Z$;@@@A,@@@;@:@@@@@@@@A@@ @@3%%%%%%%%@ @A! @A+"eq^%$$%$$@@;@@#A%/module_coercion@@@;@@@@%$$%$$@@@@%@@@Aг )Typedtree%$$%$$@%$$@@@3%%%%%%%%@6YS$;@@@A,@@@; @;@@@@@@@@A@@ @@3&&&&&&&&@ @A! @A+$diff_&$$&$$@@;@@#A$5functor_param_symptom$1functor_arg_descr@@@; %@@@; @@@;@@@@&,$$&-$%@@@@&>@@@Aг%Error&8$$&9$%@&<$%@@г %Error&G$$&H$$@'&K$$&L$$@@@/3&K&J&J&K&K&K&K&K@Ruo@;@@@AH@@@;@; @@@@/@@@,@A@@г6$unit&b$$&c$$@@>@@@L&f$$:@@<@@3&d&c&c&d&d&d&d&d@@A=<@A+%state`&r%% &s%%%@@;@@$A@@@@@&v%%@@@@&@@@A@@@3&u&t&t&u&u&u&u&u@*ic@A@@@:A@A@A@rlA@A@@3&&&&&&&&@@A 3&&&&&&&&@@A&$+$:&%&%+@@@&$+$-@@$diff֠&%,%2&%,%6@б@г!t#Env&%8%<&%8%?@ &%8%@&%8%A@@@@@@;3&&&&&&&&@A@ysA@ A@A@A@PJA@@@2@A@@б!fг%B+module_type%Types& %E%K& %E%P@ & %E%Q& %E%\@@@@@@; ( @@б$argsг&\$list& %`%& %`%@В@г%X1functor_arg_descr%Error& %`%j& %`%o@ & %`%p& %`%@@@@@@;!P @@@г%+module_type%Types' %`%' %`%@ ' %`%' %`%@@@@@@;"h @@@@ @ @@;#o* @@@C @@@;%t'% %`%iA@@гX&Define%patch'Diffing'9 %%': %%@'= %%'> %%@@$Defs'D %%'E %%@'G %%@'J %%'K %%@@@'@@@;@@x3@@;'T %`%d @@@@;'X %E%I@@@@@;@@@'^%,%.@@'o@@@@@6@@0@@ @@3'c'b'b'c'c'c'c'c@ @A3'f'e'e'f'f'f'f'f@@A'k$$''l %%@@@'n$$@@@%@8@4%@@.(A@A@,&A@@k@c@"c]@@ @@F@?@@%@p@P @  S@ L @  @  d@ ] @  A@A@B@A@:4B@C@@@@@@D@?@@@3''''''''@=@@ysA@ A@A@A@PJA@@@2@@-d@@@S@AAK'DiffingD@AC@AܱB@A A@Au @@AA+An A A @ H************************************************************************'A@@'A@L@ H 'BMM'BM@ H OCaml 'C'C@ H 'D'D3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt 'E44'E4@ H 'F'F@ H Copyright 1996 Institut National de Recherche en Informatique et (G(G@ H en Automatique. (H( Hg@ H (Ihh(Ih@ H All rights reserved. This file is distributed under the terms of (J(J@ H the GNU Lesser General Public License version 2.1, with the (K(KN@ H special exception on linking described in the file LICENSE. ( LOO(!LO@ H (&M('M@ H************************************************************************(,N(-N5@ * Inclusion checks for the module language (2P77(3P7e@ m* For backward compatibility's sake, an empty struct can be implicitly converted to an unit module. %i D* signature items that could not be compared due to type divergence  4 Extract name, kind and ident from a signature item (>txx(?tx@ * Map indexed by both field types and names. This avoids name clashes between different sorts of fields such as values and types. . Typechecking (G11(H1C@ * [modtypes_constraint ~shape ~loc env ~mark exp_modtype constraint_modtype] checks that [exp_modtype] is a subtype of [constraint_modtype], and returns the module coercion and the shape of the constrained module. It also marks as used paired items in positive position in [exp_modtype], and also paired items in negative position in [constraint_modtype]. This marking in negative position allows to raise an [unused item] warning whenever an item in a functor parameter in [constraint_modtype] does not exist in [exp_modtypes]. This behaviour differs from the one in {!check_implementation} and {!compunit} which assumes that is not appropriate to raise warning about the interface file while typechecking the implementation file.  * [check_modtype_inclusion ~loc env mty1 path1 mty2] checks that the functor application F(M) is well typed, where mty2 is the type of the argument of F and path1/mty1 is the path/unstrenghened type of M. # /* Check an implementation against an interface  & kind (V"U(W"_@ -* [(functor (_:sig end) -> struct end)(Int)] 1* [F(G(X).P)(Y)] {:* [F(struct end)...(...)] `@-./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(( H/home/touraine/ci/builds/workspace/main/flambda/false/label/ocaml-arm-32 >10/.-,+*)('&%$#"! @@0:\ Ged^3((((((((@(@@(Asttypes0>n{T8cئ%Btype0kWfDN8FN5Build_path_prefix_map0z HkGs8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ*Cmi_format0_j~GB0$Q0k#GW3*Data_types0I'Ue`wq]Ѡ'Diffing0ɞyM۠1Diffing_with_keys0%h8Lc\5#Env0J=,Wu*Errortrace0>"+$? QNL(1R*Format_doc0]mWϓ:Mݠ%Ident0ki8' x%+Š,Identifiable0~ܽǞ+%0"fTeБtPH)0r9L.DP)Load_path0I@18 ~(Location0a7cK_H%9)Longident0s `7mɕc$Misc0Z1X=_c+Outcometree0euWS~d栠)Parsetree0Uҩ=p>*%"e$Path0(|r>8۠dwx)Primitive0²~$xzT෠%Shape0mA;HXߠ&Stdlib0Lku]8_٠.Stdlib__Buffer08APF< t..Stdlib__Digest0l!LHgErζ .Stdlib__Domain0Bj|5s)ڠ.Stdlib__Either0Vy`u~c à.Stdlib__Format0ɢb tLir/Stdlib__Hashtbl0ѱN][/!,Stdlib__Lazy0* -S$.)"0D.Stdlib__Lexing0e<.V +Stdlib__Map0hؤ5O8% By.Stdlib__Result06 ]/J+Stdlib__Seq0nwzG&amg+Stdlib__Set0kb'G|PIF(.Stdlib__String0s.Type_immediacy0A^abOhՠ)0ebDשZ%Types0R.z78m)Unit_info0ڀh%(/Value_rec_types0`4xiVC(Warnings0mJɒkgr@$"#ӓ#@ @$h p$#D@%%h@@^@"ŕ"##z@@ M °&ے'@@S;)@() @@  ʰ%&$@@@ԐB  #@@@(R(y@  C%“%@ T $"%%@.@@ K @[z@@ ۓ *@(('@@@@@@P@@