Caml1999I037cHF*IncludemodӠ%Errord@$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@@@*@@@@@@@@jj!@@G@,In_Signature8@@@@@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@@@+explanatione;@@@A@!t@@@@,#all@@@@@@@@@rRRrRv@@@@5N@A@*field_kindf;@@+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_descg;@@$name@@@@@yOczOp@@Z@$kind@@h@@@OqO@@[@@@A@@@@@OOO@@@@Y@A@2kind_of_field_desch@,@@@@@ @@@@@@@@\@@*field_desci@*@@@@@@!t@@@@@"@@@@@@@@@@]@@Ӡ(FieldMapj@#key;@@@A6@@@@@@@vv@@@@^@A@!t;!a@@A@A@I@B@@@'map.mliI V ZI V e@@@@+Stdlib__MapD@A@%empty!a@@@@@L  L  @@E@@#add@=@@@@@@!a@@@@& @@@@@*@@@@@@@@@@9O  :O  @@8F@@+add_to_list@%@@@@@@!a@@@@J$listK@@@@@@@@U @@@@@@@@@@@@@iX  jX  @@hG@@&update@U@@@@@@@&optionL!a@ @@@@@  @@@@@@@@@@@@@@@@ @@ @@ @@ @^^@@H@@)singleton@@@@@@@!a@@@@@@@@@@@jW[jW{@@I@@&remove@@@@@@@ !a@@@@@@ʠ@@@@@@@@oo@@J@@%merge@@@@@@@@p!a@(@@@@@ @}!b@+@@@!@@"!c@.@@@#@@$@@%@@&@@'@ "@@@)@@*@@@@,@@-@@@/@@0@@1@@2@$vY]%x@@#K@@%union@@@@@3@@4@!a@@@@5@@@6à @@@7@@8@@9@@:@@;@B@@@<@@=@J@@@>@@?N @@@A@@B@@C@@D@]fj^f@@\L@@(cardinal@_!a@E@@@F@@G#intA@@@H@@I@xy@@wM@@(bindings@z!a@L@@@J@@K5@t@@@M@@@N@@@O@@P@8<8a@@N@@+min_binding@!a@S@@@Q@@R@@@@T@@@U@@V@bfb@@O@@/min_binding_opt@!a@Y@@@W@@XM@@@@Z@@@[@@@\@@]@JNJ|@@P@@+max_binding@ޠ!a@`@@@^@@_@@@@a@@@b@@c@484[@@Q@@/max_binding_opt@!a@f@@@d@@e@@@@g@@@h@@@i@@j@ @@R@@&choose@!a@m@@@k@@l@@@@n@@@o@@p@;<@@:S@@*choose_opt@=!a@s@@@q@@rϠ@7@@@t@@@u@@@v@@w@^_@@]T@@$find@J@@@x@@y@g!a@|@@@z@@{@@}@@~@z{@@yU@@(find_opt@f@@@@@@!a@@@@@@ @@@@@@@@IMIs@@V@@*find_first@@@@@@@$boolE@@@@@@@@!a@@@@@@@@@@@@@@@@@@    D@@W@@.find_first_opt@@@@@@@/@@@@@@@@۠!a@@@@@@m@@@@@@@@@@@@@@@"*"."*"l@@X@@)find_last@@@@@@@a@@@@@@@@ !a@@@@@@@@@@@@@@@@@@)#_#c*#_#@@(Y@@-find_last_opt@@@@@@@@@@@@@@@:!a@@@@@@̠@4@@@@@@@@@@@@@@[$y$}\$y$@@ZZ@@$iter@@K@@@@@@!a@@@$unitF@@@@@@@@@@v@@@@@@@@@@@@@%%%& @@[@@$fold@@y@@@@@@!a@@@@#acc@@@@@@@@@@@@@@@@@@@@@@@@@@@'%')'3'l@@\@@#map@@!a@@@!b@@@@@@ˠ@@@@@Ϡ@@@@@@@@(e(i(e(@@]@@$mapi@@@@@@@@!a@@@!b@@@@@@@@@@@@@@@@@@@@@ )) ))@@ ^@@&filter@@@@@@@@!a@@@w@@@@@@@@@@#@@@@@'@@@@@@@@6**7**@@5_@@*filter_map@@&@@@@@@!a@@@Ѡ!b@@@@@@@@@@@T@@@@@X@@@@@@@@g ,,h ,,?@@f`@@)partition@@W@@@@@ @!a@@@ @@@ @@ @@ @@@@@@@@@@@@@@@@@@@@@@@.../%@@a@@%split@@@@@@@!a@@@@@@@ @@@@B@@@@@@@@@@@ @@!@$0'0+$0'0\@@b@@(is_empty@Р!a@"@@@#@@$4@@@%@@&@022!022;@@c@@,is_singleton@!a@'@@@(@@)M@@@*@@+@32l2p32l2@@d@@#mem@@@@,@@-@ !a@.@@@/@@0m@@@1@@2@@3@ 822!823@@e@@%equal@@!a@<@@4@@@5@@@6@@7@@8@@9@6@@@:@@;@>@@@=@@>@@@?@@@@@A@@B@Q<3j3nR<3j3@@Pf@@'compare@@!a@K@@C@@@D@@@E@@F@@G@@H@g@@@I@@J@o@@@L@@M @@@N@@O@@P@@Q@B44B44@@g@@'for_all@@r@@@R@@S@!a@Y@@T@@@U@@V@@W@@X@@@@Z@@[@@@\@@]@@^@F5r5vF5r5@@h@@&exists@@@@@_@@`@!a@f@@a@@@b@@c@@d@@e@Ǡ@@@g@@h'@@@i@@j@@k@K66"K66Q@@i@@'to_list@ܠ!a@n@@@l@@m@@@@o@@@p@@@q@@r@R66R67@@j@@'of_list@@@@@s@!a@w@@t@@@u@@v@@@x@@y@ V7]7a!V7]7@@k@@&to_seq@"!a@|@@@z@@{&Stdlib#Seq!t@"@@@}@@@~@@@@@@I\888<J\888a@@Hl@@*to_rev_seq@K!a@@@@@@)#Seq!t@H@@@@@@@@@@@@o`88p`88@@nm@@+to_seq_from@[@@@@@@x!a@@@@@@V#Seq!t@u@@@@@@@@@@@@@@d9;9?d9;9p@@n@@'add_seq@t#Seq!t@@@@@!a@@@@@@@@@ @@@@@@@@@@@@@i: :i: :=@@o@@&of_seq@#Seq!t@@@@@!a@@@@@@@@@@@@@@m::m::@@p@@@@ vv@ _@@@/item_ident_namek@ `.signature_item@@@@@@ !t@@@ @(Location!t@@@ @f@@@@@ @@ @  @@ `@@4is_runtime_componentl@ .signature_item@@@ @@$boolE@@@@@@  .@@ 7a@@(modtypesm#loc5!t@@@@@@ !t@@@@@$mark+@@@@@@ +module_type@@@@@@ +module_type@@@@@ /module_coercion@@@@@@@@@@@@@ @ YEE Z}@@ xb@@4modtypes_consistencyn#locv!t@@@!@@"@ !t@@@#@@$@ 5+module_type@@@%@@&@ >+module_type@@@'@@( \@@@)@@*@@+@@,@@-@  @@ c@@3modtypes_constrainto%shape%Shape!t@@@.@@/#loc!t@@@0@@1@ J!t@@@2@@3$mark@@@4@@5@ +module_type@@@6@@7@ +module_type@@@8@@9@/module_coercion@@@;@E!t@@@:@@<@@=@@>@@?@@@@@A@@B@  h@@ d@@8strengthened_module_declp#loc!t@@@C@@D)aliasable@@@E@@F@ !t@@@G@@H$mark@@@I@@J@ 2module_declaration@@@K@@L@ !t@@@M@@N@ 2module_declaration@@@O@@P/module_coercion@@@Q@@R@@S@@T@@U@@V@@W@@X@ < =D@@ [e@@7check_modtype_inclusionq#locY!t@@@Y@@Z@ !t@@@[@@\@ +module_type@@@]@@^@ !t@@@_@@`@ +module_type@@@a@@b&optionL @@@c@@@d@@e@@f@@g@@h@@i@ FF @@ f@@3check_modtype_equivr#loc!t@@@j@@k@ 2!t@@@l@@m@ !t@@@n@@o@ j+module_type@@@p@@q@ s+module_type@@@r@@s @@@t@@u@@v@@w@@x@@y@  @@ g@@*signaturess@ e!t@@@z@@{$mark@@@|@@}@ )signature@@@~@@@ )signature@@@@@/module_coercion@@@@@@@@@@@@     Y@@h@@4check_implementationt@ !t@@@@@@ )signature@@@@@@ )signature@@@@@ @@@@@@@@@@ !@@?i@@(compunitu@ !t@@@@@$mark'@@@@@@ @@@@@@ )signature@@@@@@ @@@@@@ )signature@@@@@@!t@@@@@@/module_coercion@@@@!t@@@@@@@@@@@@@@@@@@@@z{T@@j@@1type_declarationsv#loc!t@@@@@@ (!t@@@@@$mark@@@@@@ !t@@@@@@ j0type_declaration@@@@@@ s0type_declaration@@@@@@@@@@@@@@@@@@@@@VV@@k@@.print_coercionw@&Stdlib&Format)formatter@@@@@@/module_coercion@@@@@@@@@@@@@@@l@@'symptomx;@@-Missing_fieldA !t@@@ !t@@@ x@@@@@ "& "T@@(n@2Value_descriptionsB !t@@@ 1value_description@@@ 1value_description@@@.value_mismatch@@@@@,`b-@@Ko@1Type_declarationsC !t@@@ޠ 0type_declaration@@@ݠ 0type_declaration@@@ܠ-type_mismatch@@@@@OP=@@np@6Extension_constructorsD ?!t@@@ڠ 5extension_constructor@@@٠ 5extension_constructor@@@ؠ>extension_constructor_mismatch@@@@@r>@s|@@q@,Module_typesE 5+module_type@@@֠ ;+module_type@@@@@@@r@-Modtype_infosF w!t@@@Ԡ Q3modtype_declaration@@@Ӡ W3modtype_declaration@@@@@?@@s@3Modtype_permutationG-+module_type@@@Ѡ /module_coercion@@@@@@B@@@t@2Interface_mismatchH 7@@@Ϡ <@@@@@@@u@7Class_type_declarationsI !t@@@͠ 6class_type_declaration@@@̠ 6class_type_declaration@@@ˠ 3class_match_failure@@@@@@@@8@@v@2Class_declarationsJ !t@@@Ƞ 1class_declaration@@@Ǡ 1class_declaration@@@Ơ643class_match_failure@@@@@@@@9;@@<w@3Unbound_module_pathK!t@@@@@-.@@Lx@@@A@@@@@1@@@@Om@A@#posy;@@&Modulei&!t@@@@@FG@@ez@'Modtypej6!t@@@@@VW @@u{@#Argk1functor_parameter@@@@@e  f  '@@|@$Bodyl(1functor_parameter@@@@@t ( *u ( E@@}@@@A@@@@@x@@@@y@A@ %Errorz##exnG@@@@@@A&_none_@@A@~@B@0application_name{;@@1Anonymous_functoro@@    @@@5Full_application_pathp)Longident!t@@@@@    @@@6Named_leftmost_functorw!t@@@@@!!!!/@@@@@A@@@@@ g g@@@@@A@ +Apply_error|#E@#locy@@!t@@@!k!o!k!@@@#envz@@m!t@@@!!!!@@@(app_name{@@[@@@!!!!@@ @%mty_f|@@+module_type@@@!!!!@@@$args}@@#@ 1functor_arg_descr@@@@+module_type@@@@@@@@!!!"@@4@@@A@5@B@3expand_module_alias}*strengthen@@@@@@!t@@@@@@!t@@@@@+module_type@@@@@@@@@@C""D""f@@b@@Ӡ6Functor_inclusion_diff~@Ӡ$Defs@$left;@@@A1functor_parameter@@@@@@@`""a""@@@@@A@%right;@@@A@@@@@@@o""p""@@@@@A@"eq;@@@A/module_coercion@@@@@@@"""#@@@@@A@$diff;@@@A {5functor_param_symptom1functor_parameter@@@Ԡi@@@@@@@@@@####O@@@@@A@%state;@@@A@@@@@#P#T#P#^@@@@@A@@@""#_#d@@@@$diff@L!t@@@@@@@I1functor_parameter@@@@@@ڠ@R+module_type@@@@@@@@@d1functor_parameter@@@@@@ߠ@m+module_type@@@@@@@'Diffing&Define%patch@@@@@@@@@@#e#g#$@@@@@@"h"h$ $ @"@@@Ӡ0Functor_app_diff@Ӡ$Defs@$left;@@@A@1functor_arg_descr@@@@+module_type@@@@@@@@@+$>$B,$>$y@@@@J@A@%right;@@@A1functor_parameter@@@@@@@<$z$~=$z$@@@@[@A@"eq;@@@A/module_coercion@@@@@@@M$$N$$@@@@l@A@$diff;@@@AH5functor_param_symptomM1functor_arg_descr@@@5@@@@@@@@@@h$$i$%@@@@@A@%state;@@@A@@@@@r%%s%%%@@@@@A@@@v$+$-w%&%+@@@@$diff@!t@@@@@!f+module_type@@@@@$args@1functor_arg_descr@@@Ƞ@*+module_type@@@@@@@@@@&Define%patch@@@@@@@@@@%,%. %%@@@@@@$$ %%@@@@@ ٠*Includemod0?3l,堠(Warnings0Ef{&/Value_rec_types0`4xiVC)Unit_info0'T Χ@aR%Types0"|Vȷ`X )Typedtree0L+=%Eȧk]U젠.Type_immediacy00$ jbv\"k&%Subst0=aqT/!p+-Stdlib__Uchar0=H^V9>ɠ+Stdlib__Sys0b'8=OIn.Stdlib__String0 w_OA4D"Q~~+Stdlib__Set0ܔ@Z8XWaa2+Stdlib__Seq0?72#[O.Stdlib__Result0p~ !ԥ//+Stdlib__Map0*4ɇ2.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Digest0#z25I*.Stdlib__Buffer0,I[?z&Stdlib0t0VoS%{<F:%Shape0 M``ll)Primitive0dU=\I/}$Path0k.tbGmᠠ)Parsetree0v o[pY Y+Outcometree0BuG^)= 9c $Misc0Kvor#2D)Longident0wP q;ɡ(Location0nBɊOn?7~ؠ)Load_path0,j " nn7ݠ+Includecore0 XNrּ9-VѠ,Identifiable0]/*N %Ident0>ЃzV)j⠠*Format_doc0uy@GmWUࠠ*Errortrace0:~i0yXD#Env02O<r7 1Diffing_with_keys0.*Wpp=3+*Data_types0v\3,Svh%Ctype0 qQ4ߨ3נjq*Cmi_format0{)ݬ[ƥ  0CamlinternalLazy0zY# #4#-8CamlinternalFormatBasics0|.e1R$|o5Build_path_prefix_map0zd,J4z%Btype07zx# (Asttypes0eT$BbRM dc@@@Caml1999T037,Y3[C*Includemodࠐ)Typedtree)Typedtree5typing/includemod.mliRglRgu@@A3@@@@@@#intA;@@#intA@@@@@&_none_@@A@A@$charB;@@$charA@@@@@ @A@&stringQ;@@&stringA@@@@@@@@%bytesC;@@%bytesA@@@@@@@@%floatD;@@%floatA@@@@@@@@$boolE;@@%falsec@@%@$trued@@+@@@A@@@@@,@A@$unitF;@@"()e@@6@@@A@@@@@7@A@ #exnG;@@@A@@@@@;@@@#effH;@@O@A@A@@@@@@D@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@T@@@%arrayJ;@@R@A%arrayA@@@@@@_@@@ $listK;@@S@A"[]f@@l@"::g@@@T@@y@ @@A@Y@@@@@|@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@@@@ .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@@A5!4!@)Not_foundZ#O@@@A&=)<)@-Out_of_memoryW#W@@@A.E1D1@.Stack_overflow^#_@@@A6M9L9@.Sys_blocked_io_#g@@@A>UATA@)Sys_error[#o@j@@AG^J]J@:Undefined_recursive_modulea#x@@w@s@u@@h@@AXo[n[@:Continuation_already_takenb#@@@A`wcvc@&Stdlib@ARgg@@3@@A@ࠐ%Types%TypesSv{Sv@@A3@ @ASvv@@@%ErrorAUU@M@@БA+$diffBWW@А#elt@q3@);@@o@@p@B@A@GG@BB@@@W[@@@@D@@AWW@@BAА+explanation@rWW@@ @;& @B#got@@.C@sXX@@E@(expected@@8C@wYY@@F@'symptom@@$C@{ZZ@@"G@@@A@YY@@@@@@9@@@6@### X@@@Ш@А#elt)R#X$X@@.@@tW@,@#((%+Y@$@@Ш@А#elt.a2Y3Y@@3@@xf@1@#--*:Z@)@@Ш@А+explanation3pAZ1@@7@@|t@5@@A@f@@3A@@AAAAA@@Agf@A+)core_diffCO\P\ @А#elt@3VUUVVVVV@k;@@@A@A@@@@@@G@B@@@n\o\@@@@H@@Ar\s\@@@; @A@A(D@&@@@@@@Y@@@@@@@@@@Aг$diff\@А#elt9\\@@г$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_symptomE5f6f@@;@@2Value_descriptions1value_description@@@i+Includecore.value_mismatch@@@@@@@@TgUh1s@@fO@1Type_declarations0type_declaration@@@ߠ-type_mismatch@@@@@@@@pitxqj@@P@6Extension_constructors 5extension_constructor@@@:>extension_constructor_mismatch@@@@@@@@kmO@@Q@7Class_type_declarations!֠6class_type_declaration@@@%Ctype3class_match_failure@@@ @@@ @@@ @@nPToq@@S@2Class_declarations 1class_declaration@@@ 7#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@Ű+j,j@@@8@@гȠ+Includecore8j9j@ϰ|  ?|  @@г1signature_symptomH|  #@@@@@@@#N} 5 ;O} 5 B@@г/functor_symptomX} 5 F@@@@@@@#^~ V \_~ V q@@г0module_type_diffh~ V u@@@@@@@@A@@+nA  oA  @@;@@A+module_type@@@!3@@@!4@@@!7@@@@@@@@@Aг$diffA  @г%TypesA  A  @A  A  @@@$а@@г3module_type_symptomA  A  @@'ڰ@@@3۰A  @@@+  C  C  @@;@@&ParamsҐ@@@!8@@D  D  @@i@&ResultӐ@@@!9@@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@@@!>@@H Y ]H Y @@-k@(MismatchՐw@@@!?@@)I  /@@:l@@@A@YH@@@@@@6@@@3@#%%4H Y _5H Y r@@А#arg*q<H Y v=H Y z@@г+%TypesGH Y }HH Y @2KH Y 0@1@@92@@@@4@#00RI  SI  @*@г20module_type_diff\I  b@@9c@@@@6@@A@e@+ccbK  cK  @@;@@A~1functor_parameter@@@!@%Ident!t@@@"@@@"@@@@r@@@o@@Aг5functor_param_symptomL  x@г%TypesL  L  @ L  L  @@@(Ȱ@@г#%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@@J>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@@@0f2T  3T  @@Dr@(missings@@.signature_item@@@0i@@@0kEU  FU  @@Ws@-incompatibles@@@!t@@@0n@6@@@0o@@0p@@@0rbV  cV  8@@tt@#oks@@ݠ@J@@@0u@/module_coercion@@@0v@@0w@@@0yW 9 =W 9 i@@u@)leftovers@@@.signature_item@@@0~@@@@0@t@@@0@@0@@@0X j nX j @ǐ C signature items that could not be compared due to type divergence Y  Y  @@@@@@@v@@@A@@@@@@@@@#T  @@@Ш@г#EnvT  T  @T  T  @@@@@@@0g@@#U  @@@Ш@г$listU  U  @г%TypesU  U  @U  U  @@@!@@@" @@@@0l%@@#V  @@@Ш@г$listV  3V  7@В@г%Ident V   V  @ V   V  @@@H@@@г/sigitem_symptom V  " V  1@@S@@@T@@@U V  $@@@@0sY@@# 'W 9 @@@@Ш@г$list 0W 9 d 1W 9 h@В@гƠ#int =W 9 C >W 9 F@@u@@@гˠ)Typedtree JW 9 I KW 9 R@Ұ NW 9 S OW 9 b@@@@@@@@@ TW 9 B$@@@@0z@@#ՠհ [X j w@@@Ш@гؠ$list dX j @В@Цгޠ%Types tX j { uX j @ xX j  yX j @@@@@"it X j  X j @@@@А"it X j  X j @@@г#int X j  X j @@ʰ@@@ ˰ X j z@@@Ͱ X j y@@@@0@ o@@@@@@@A@@+ [   [  @@;@@$Core@@@0@@ \   \  5@@ w@7Module_type_declaration*3modtype_declaration@@@0@@@0@@@0@@ ] 6 : ^ W @@ x@+Module_type/@@@0@@ _  @@ y@@@A@@@@@@@@@#66 \   \  @/@г84core_sigitem_symptom \  !9@@?):@@@@<@#88 ] 6 < ] 6 S@%@г:$diff ^ W /@г>%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@@+ 4a   5a  @@;@@3Illegal_permutation H/module_coercion@@@0@@ Eb   Fb &@@ Wz@0Not_greater_than@@@0@@ Sc'+ Tc'Q@@ e{@-Not_less_than@@@0@@ adRV bdRy@@ s|@,Incomparable)less_than@@@@@0 rf sf@@ }@,greater_than@@@@@0 ~f f@@ ~@@@ ez~L@@ @@@A@@@@@O@@@L@#MM b   b  @D@гO)Typedtree b   b @V b T@U@@]ѰV@@@@X@#TT c'- c'=@M@гV0module_type_diff c'AW@@]X@@@@Z@#VV dRX dRe@O@гX0module_type_diff dRiY@@_Z@@@@\@#XX ez ez@?@#ZZU f@T@@Ш@г]0module_type_diff f f@@e@@h@@0 @d@#``[ f@Z@@Ш@гc0module_type_diff fd@@je@@m@@0@i@@@e@@A@@@3        @@A0@A+#allH i i@@;@@3In_Compilation_unit < @@@1}w@@@1~@@@1@@ j j!@@ G@,In_Signature@@@1@@ k"& k"I@@ *H@.In_Module_typet@@@1@@ &lJN 'lJr@@ 8I@;In_Module_type_substitution!t@@@1 w +module_type@@@1@@@1@@@1@@ Gmsw Hn@@ YJ@3In_Type_declaration!t@@@1)@@@1@@ \o ]o@@ nK@,In_Expansionr@@@1@@ jp# kpM@@ |L@@@A@@@@@ ni@@@@ F@@#|| uj vj@k@г~$diff ju@г&string j j@@3        @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 0p5@@@@@@@@A@@@3 / . . / / / / /@@A@@ t EA@  A@  A@  A@HBA@A@B@B@[?B@KB@>B@1|B@+B@'B@!B@gaA@@3 Q P P Q Q Q Q Q@ic@A#  XU YqNQ@@@ [U@ @A++explanationI frRW grRb@@;@@ A@E!t@@@1@ #all@@@2@@2@@@@ }rRR ~rRv@@@@ N@@@AВ@г#Env rRe rRh@ rRi rRj@@@&3        @  @  A@ R )A@  A@ p jA@A@4.A@7B@ B@B@IB@B@B@#B@ B@B@A@@@_ W;@@@A_@@@2@1@@@@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@@ 2W@/Field_classtypeĐ@@ )}:< *}:M@@ ;X@@@A@@@@@ -u@@A@ >P@@#LL 4vJ@I@@@M@#II :wG@F@@@J@#FF @xD@C@@@G@#CC FyA@@@@@D@#@@ Lz >@=@@@A@#== R{;@:@@@>@#:: X|*.8@7@@@;@#77 ^}:>5@4@@@8@@A@4@@3 ] \ \ ] ] ] ] ]@@A69@A+*field_descK lOT mO^@@;@@$name@@ >@@@2# yOc zOp@@ Z@$kind@@@@@2& Oq O@@ [@@@A@@@@@ OO O@@@@ Y@@# Og@@@Ш@г &string Oi Oo@@(3        @>7;@@@A@@@@@@@@@A@@0@@2$@,@#((# Ou@"@@Ш@г+*field_kind Ow,@@2-@@5@@2'@1@@A@-@@3        @@A.-@2kind_of_field_descȠ  @б@г^*field_desc  @@ @@@223        @3ic@A@@г &string  @@ @@@23@@@@@24@@25 @@@  @@ \@@@@*field_descɠ  @б@г*field_kind  @@ @@@263        @3H@A@@б@г!t%Ident@ @@@@@@27 @@г*field_desc#$@@ @@@28'@@@@@29@@2:, @@@4@@2; @@2<17@@@5@@F]@@@@7(FieldMap0LBv}Cv@T_@@УР #Map!SRvSv@ VvWv@@3WVVWWWWW@Zo)@A @@#key@#keyfvgv@+ @;@@@A @@@3@@@@svtv@@@@^@@@Aг *field_desc}v @@$ @@ @@"M;@@@A@@@7 @@@@@@@A@!tM;!a@3@A@A@I@B@@@'map.mliI V ZI V e@@@@+Stdlib__MapD@A@%empty!a@3@@@7 @L  L  @@E@@#add@8@@@7 @@7 @!a@3@@7 @& @@@7@@7*@@@7@@7@@7@@7@9O  :O  @@8F@@+add_to_list@%@@@7@@7@!a@3@@7@J$listK@@@6@@@6@@6U @@@6@@@6@@6@@6@@6@iX  jX  @@hG@@&update@U@@@6@@6@@&optionL!a@3@@@6@@6  @@@6@@6@@6@@@@6@@6@@@6@@6@@6@@6@^^@@H@@)singleton@@@@6@@6@!a@3@@6@@@6@@6@@6@jW[jW{@@I@@&remove @@@@6@@6@ !a@3@@@6@@6ʠ@@@6@@6@@6@oo@@J@@%merge @@@@@6@@6@p!a@3@@@6@@6@}!b@3@@@6@@6!c@3@@@6@@6@@6@@6@@6@ "@@@6@@6@@@@6@@6@@@6@@6@@6@@6@$vY]%x@@#K@@%union @@@@@6@@6@!a@3@@6@@@6à @@@6@@6@@6@@6@@6@B@@@6@@6@J@@@6@@6N @@@6@@6@@6@@6@]fj^f@@\L@@(cardinal @_!a@3@@@6@@6#intA@@@6@@6@xy@@wM@@(bindings @z!a@3@@@6@@65@t@@@6@@@6@@@6@@6@8<8a@@N@@+min_binding@!a@3@@@6@@6@@@@6@@@6@@6@bfb@@O@@/min_binding_opt@!a@3@@@6@@6M@@@@6@@@6@@@6@@6@JNJ|@@P@@+max_binding@ޠ!a@3@@@6@@6@@@@6@@@6@@6@484[@@Q@@/max_binding_opt@!a@3y@@@6@@6@@@@6@@@6@@@6@@6@ @@R@@&choose@!a@3r@@@6@@6@@@@6@@@6@@6@;<@@:S@@*choose_opt@=!a@3l@@@6@@6Ϡ@7@@@6@@@6@@@6@@6@^_@@]T@@$find@J@@@6@@6@g!a@3c@@@6@@6@@6@@6@z{@@yU@@(find_opt@f@@@6@@6@!a@3\@@@6@@6 @@@6@@6@@6@IMIs@@V@@*find_first@@@@@6@@6$boolE@@@6@@6~@@6}@!a@3Q@@@6|@@6{@@@@6z@@@6y@@6x@@6w@    D@@W@@.find_first_opt@@@@@6v@@6u/@@@6t@@6s@@6r@۠!a@3E@@@6q@@6pm@@@@6o@@@6n@@@6m@@6l@@6k@"*"."*"l@@X@@)find_last@@@@@6j@@6ia@@@6h@@6g@@6f@ !a@38@@@6e@@6d@@@@6c@@@6b@@6a@@6`@)#_#c*#_#@@(Y@@-find_last_opt@@@@@6_@@6^@@@6]@@6\@@6[@:!a@3,@@@6Z@@6Y̠@4@@@6X@@@6W@@@6V@@6U@@6T@[$y$}\$y$@@ZZ@@$iter@@K@@@6S@@6R@!a@3@@6Q$unitF@@@6P@@6O@@6N@@6M@v@@@6L@@6K@@@6J@@6I@@6H@%%%& @@[@@$fold@@y@@@6G@@6F@!a@3@@6E@#acc@3 @@6D@@6C@@6B@@6A@@6@@@@@6?@@6>@@@6=@@6<@@6;@@6:@'%')'3'l@@\@@#map@@!a@3@@69!b@3@@68@@67@ˠ@@@66@@65Ϡ@@@64@@63@@62@(e(i(e(@@]@@$mapi@@@@@61@@60@!a@2@@6/!b@2@@6.@@6-@@6,@@@@6+@@6*@@@6)@@6(@@6'@ )) ))@@ ^@@&filter@@@@@6&@@6%@!a@2@@6$w@@@6#@@6"@@6!@@6 @#@@@6@@6'@@@6@@6@@6@6**7**@@5_@@*filter_map@@&@@@6@@6@!a@2@@6Ѡ!b@2@@@6@@6@@6@@6@T@@@6@@6X@@@6@@6@@6@g ,,h ,,?@@f`@@)partition @@W@@@6@@6 @!a@2@@6 @@@6 @@6 @@6 @@6@@@@6@@6@@@@6@@@@6@@6@@6@@6@.../%@@a@@%split!@@@@6@@5@!a@2@@@5@@5@ @@@5@B@@@5@@@@5@@5@@5@@5@$0'0+$0'0\@@b@@(is_empty"@Р!a@2@@@5@@54@@@5@@5@022!022;@@c@@,is_singleton#@!a@2@@@5@@5M@@@5@@5@32l2p32l2@@d@@#mem$@@@@5@@5@ !a@2@@@5@@5m@@@5@@5@@5@ 822!823@@e@@%equal%@@!a@2@@5@@@5@@@5@@5@@5@@5@6@@@5@@5@>@@@5@@5@@@5@@5@@5@@5@Q<3j3nR<3j3@@Pf@@'compare&@@!a@2@@5@@@5@@@5@@5@@5@@5@g@@@5@@5@o@@@5@@5 @@@5@@5@@5@@5@B44B44@@g@@'for_all'@@r@@@5@@5@!a@2@@5@@@5@@5@@5@@5@@@@5@@5@@@5@@5@@5@F5r5vF5r5@@h@@&exists(@@@@@5@@5@!a@2y@@5@@@5@@5@@5@@5@Ǡ@@@5@@5'@@@5@@5@@5@K66"K66Q@@i@@'to_list)@ܠ!a@2q@@@5@@5@@@@5@@@5@@@5@@5@R66R67@@j@@'of_list*@@@@@5@!a@2h@@5@@@5@@5@@@5@@5@ V7]7a!V7]7@@k@@&to_seq+@"!a@2c@@@5@@5&Stdlib#Seq!t@"@@@5@@@5@@@5@@5@I\888<J\888a@@Hl@@*to_rev_seq,@K!a@2\@@@5@@5)#Seq!t@H@@@5@@@5@@@5@@5@o`88p`88@@nm@@+to_seq_from-@[@@@5@@5@x!a@2S@@@5@@5V#Seq!t@u@@@5@@@5@@@5@@5@@5@d9;9?d9;9p@@n@@'add_seq.@t#Seq!t@@@@5@!a@2G@@5@@@5@@5@ @@@5@@5@@@5@@5@@5@i: :i: :=@@o@@&of_seq/@#Seq!t@@@@5@!a@2?@@5@@@5@@5@@@5@@5@m::m::@@p@@@09@@_ Map indexed by both field types and names. This avoids name clashes between different sorts of fields such as values and types. Uu@@@@@@@vv(@B)@/item_ident_namev@б@г .signature_item%Types@ @@@@@@73@e@BAA@;9A@*(@@@@@}{@_]@@@@@@hf@LJ@+)@ @@@@@XV@-+@@@@~@VT@,*@@@@@lj@NL@@@@@{y@ZX@31@ @@@@B@@@@@@@Aup@@В@г!t%Ident89@ <=@@@@@@7 @@@г(Location!t(LocationRS@ VW@@@@@@;q @@@г*field_descfg@@ @@@;r@@@@1@@ @@;s=@@@@@;t @@;u@@@|@@`@@@@4is_runtime_componentw@б@г.signature_item%Types@ &@@@@@@;v3@(@A @@г[$bool*.@@ @@@;w@@@@@;x@@;y @@@ @@a@@@@(modtypesxEIEQ@б#locг!t(LocationSYSa@ SbSc@@@@@@;z3@>\*@A @@б@г!t#EnvSgSj@ SkSl@@@@@@;{ @@б$markг$boolSuSy@@ @@@;|+@@б@гo+module_type}}@@ @@@;}:@@б@г~+module_type!}"}@@ @@@;~I@@г1/module_coercion.}/}@@ @@@;V@@@@@;@@;[ @@@)@@; @@;`,@@F=@@; @@;eCSp@@@T@@; @@;k\@@s@@; @@;pNSU @@@QEE#@@bb@@%@@w4modtypes_consistencyy\]@б#locг!t(Locationmn@ qr@@@@@@;3tssttttt@*@A @@б@гS!t#Env@ @@@@@@; @@б@г+module_type@@ @@@;)@@б@г+module_type@@ @@@;8@@гW$unit@@ @@@;E@@@@@;@@;J @@@)@@; @@;O,@@@=@@; @@;TE@@n\@@; @@;Y@@@@@c@@@@`3modtypes_constraint+@б%shapeг%Shape!t%Shape-5-:@ -;-<@@@@@@<3@,@A @@б#locг!t(Location-D-L@ -M-N@@@@@@< @@б@г!t#Env&-R'-U@ *-V+-W@@@@@@<4 @@б$markг$bool<-`=-d@@ @@@<E@@б@г+module_typeKhjLhu@@ @@@<T@@б@г+module_typeZhy[h@@ @@@<c@@В@гn/module_coercionkhlh@@ @@@<t@@@г!t%Shape~hh@ hh@@@@@@< @@@@ @ @@<% @@@8@@< @@<;@@@L@@< @@<O@@i`@@< @@<-[@@@w@@< @@<"@@@@< @@<-@(@@@@< @@<-/.@@@1@ؐ  [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@@A@@@@@@@8strengthened_module_decl@б#locг!t(Location@ @@@@@@<3@C@A @@б)aliasableг$bool@@ @@@<@@б@г!t#Env@ @@@@@@<+ @@б$markгڠ$bool)*@@ @@@<<@@б@г2module_declaration89@@ @@@<K@@б@г!t$PathKL@ OP@@@@@@<c @@б@г2module_declaration_`1@@ @@@<r@@гo/module_coercionl5mD@@ @@@<@@@@@<@@< @@@)@@< @@<1@@@F@@< @@<I@@cZ@@< @@<@@@q@@< @@<y@@@@< @@<%@@@@< @@<+@@@.@@e@@0@@7check_modtype_inclusionFJFa@б#locгf!t(Locationdjdr@ dsdt@@@@@@<3@*@A @@б@г!t#Envdxd{@ d|d}@@@@@@< @@б@гA+module_type%Typesdd@ dd@@@@@@<2 @@б@г6!t$Pathdd@ dd@@@@@@<J @@б@гq+module_type%Typesdd@ dd@@@@@@<b @@гz&option*+@г Π+explanation45@@ @@@<y@@@@@@<~ @@@$@@< @@<,@@@A@@< @@<I@@@^@@< @@<f#@@@{@@< @@<(@@@@< @@<Xdf.@@@[FF1@ [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. hiW@@@@@@@zf@@A@@@@@@@@3check_modtype_equiv@б#locг@!t(Location@ @@@@@@<3@C@A @@б@гv!t#Env@ @@@@@@< @@б@гF!t%Ident@ @@@@@@<2 @@б@г3+module_type@@ @@@<A@@б@гB+module_type@@ @@@<P@@г$unit@@ @@@<]@@@@@<@@<b @@@)@@< @@<g,@@@=@@< @@<lE@@@Z@@< @@<qb@@y@@< @@<v@@@"@@%g@@$@@}*signatures   @б@г!t#Env. / @ 2 3 @@@@@@<354455555@(@A @@б$markг$boolF (G ,@@ @@@<@@б@г)signatureU 0V 9@@ @@@<"@@б@г)signatured =e F@@ @@@<1@@гt/module_coercionq Jr Y@@ @@@<>@@@@@<@@<C @@@)@@< @@<H,@@F=@@< @@=M #@@@V@@= @@=S^@@@  @@h@@@@Y4check_implementation@б@гt!t#Env@ @@@@@@=3@{(@A @@б@г)signature@@ @@@=@@б@г*)signature@@ @@@= @@гz$unit@@ @@@=-@@@@@=@@=2 @@@)@@=  @@= 7,@@@?@@=  @@= <G@@@@ . Check an implementation against an interface [[[@@@@@@@i@@'@&֐@@@@@@[(compunit@б@г!t#Env$%@ ()@@@@@@= 3+**+++++@}A@A @@б$markг$bool<=@@ @@@=@@б@г&stringKL@@ @@@="@@б@г)signatureZ[@@ @@@=1@@б@г,&stringij@@ @@@=@@@б@г)signaturex#y,@@ @@@=O@@б@г!t%Shape05@ 67@@@@@@=g @@В@г/module_coercion;J@@ @@@=x@@@г!t%ShapeMR@ ST@@@@@@= @@@@ @ @@=% @@@8@@= @@=@@@@U@@= @@=X@@@i@@= @@=l@@@}@@= @@=!@@@@@= @@= &@@@@=! @@=",@@@@@=# @@=$1@@@4@@j@@6@@1type_declarationsVZVk@б#locг!t(Locationms m{@  m| m}@@@@@@=%3@*@A @@б@г!t#Env"m#m@ &m'm@@@@@@=& @@б$markг預$bool8m9m@@ @@@='+@@б@г!t%IdentKL@ OP@@@@@@=(C @@б@г0type_declaration_`@@ @@@=)R@@б@г0type_declarationno@@ @@@=*a@@г$unit{|@@ @@@=+n@@@@@=,@@=-s @@@)@@=. @@=/x,@@@=@@=0 @@=1}E@@cZ@@=2 @@=3m@@@q@@=4 @@=5y@@@@=6 @@=7mo%@@@VV(@@k@@*@@.print_coercion?@б@г#&Format)formatter@ @@@@@@G3@(@A @@б@г/module_coercion @@ @@@G @@г$unit @@ @@@G @@@@@G @@G # @@@+@@G  @@G(3@@@@@l@@@@.A+'symptom@N@@;@@-Missing_fieldA!t@@@G!t@@@G@@@G@@"&"T@@-n@2Value_descriptionsB!t@@@G1value_description@@@G1value_description@@@G.value_mismatch@@@G@@>`b?@@Po@1Type_declarationsC!t@@@G0type_declaration@@@G0type_declaration@@@G-type_mismatch@@@G@@ab=@@sp@6Extension_constructorsD!t@@@G5extension_constructor@@@G5extension_constructor@@@G3>extension_constructor_mismatch@@@G@@>@|@@q@,Module_typesE+module_type@@@G+module_type@@@G@@@@r@-Modtype_infosF1!t@@@G  3modtype_declaration@@@G!3modtype_declaration@@@G"@@?@@s@3Modtype_permutationG"+module_type@@@G#/module_coercion@@@G$@@@B@@@t@2Interface_mismatchH@@@G%@@@G&@@@@u@7Class_type_declarationsIw!t@@@G'S6class_type_declaration@@@G(Y6class_type_declaration@@@G)olass_match_failure@@@G*@@@G,@@8@@v@2Class_declarationsJ!t@@@G-{1class_declaration@@@G.1class_declaration@@@G/3class_match_failure@@@G0@@@G2@@/9;0@@Aw@3Unbound_module_pathKy!t@@@G3@@?@@@Qx@@@A@@@@@C@@@@Tm@@#DD/J"3@.@гE%IdentU"7V"<@LY"=Z">@@@T3YXXYYYYY@oe;@@@A@@@@@@@@@A @@гT(Locationk"Al"I@[o"Jp"K@@@c@@г^&stringz"N_@@e`@@@@b@#^^`d`v@B@г`%Identzz@gzz@@@o7@@гjkzz@@q@@@гmnzz@@tI@@гp+Includecore@wu@v@@~Yw@@@@y@#uu@Y@гw%Ident@~@@@q@@г@@z@@г!@@@@г+Includecore$/@0@@@@@@@@#>B>X@p@г%Ident >\ >a@ >b >c@@@@@г >f >{@@@@г | |@@@@г+Includecore #| $|@ '|@@@Ͱ@@@@@# . /@@г 7 8@@ݰ@@г @@@@@@@@# F G@@г%Ident R  S@ V W@@@@@г ` a)@@@@г i,@@@@@@@# o@D p@W@@г%Types {@[ |@`@ @a @l@@@&@@г)Typedtree @o @x@ư @y@@@6@@@@@#Ġİ  @@гƠ&string  @@G@@гˠ&string @@P@@@@@#ˠ˰  @@г͠%Ident  @԰  @@@h@@гנذ  @@q@@гڠ۰  @@z@@гݠ$list 4@гᠡ%Ctype  @   3@@@@@@ @@@@@# 9= 9O@@г頡%Ident!SY!S^@!S_!S`@@@@@г!Sc!St@@@@г!Sw!S@@@@г$list!"@г%Ctype!,!-@!0!1@@@ װ@@@ذ @@@@@#!9!:@@г$Path!E!F@ !I @ @@ @@@@@@A@ @@3!I!H!H!I!I!I!I!I@@A @A+#poshO!W!X@@;@@&Modulei!t@@@H@@!h!i@@!zz@'Modtypej!t@@@H@@!x!y @@!{@#Argk1functor_parameter@@@H@@!  !  '@@!|@$Bodyl1functor_parameter@@@H@@! ( *! ( E@@!}@@@A@@@@@!@@@@!y@@#BB!!@9@гD%Ident!!@K!I@J@@R3!!!!!!!!@Xc;@@@A@@@@@@@@@A P@@@@R@#NN!!@E@гP%Ident! ! @W! U@V@@^W@@@@Y@#UU!  !  @M@гWX!  V@@]+W@@@@Y@#UU! ( ,! ( 0@M@гWX! ( 4V@@]:W@@@@Y@@A@U@@3!!!!!!!!@:@AVY@%ErrormP! G Q! G V@# @@@@H@@A" G G" G e@@"~@@г +explanation" G Z @@3" " " " " " " " @]@A@@@@@@@A+0application_namenQ" g l" g |@@;@@1Anonymous_functoro@@"'  "(  @M , [(functor (_:sig end) -> struct end)(Int)] "5  "6  @@@@@@@"G@5Full_application_pathp)Longident!t@@@IC@@"G  "H  @m0 [F(G(X).P)(Y)] "U  "V !@@@@@@@"g@6Named_leftmost_functorw !t@@@ID@@"e!!"f!!/@9 [F(struct end)...(...)] "s!!0"t!!N@@@@@@@"@@@A@@@@@"w g g@@@@"@@#YY"~  W@H@@@Z"TXW@WW@@@W@W@#SS"  "  @:@гU)Longident"  "  @Z"  X@Y@@c3""""""""@;@@@A@@@@@0@@@.@A _@@@@a"{_^@^^@@@^@^@#ZZ"!! "!! @C@г\)Longident"!!$"!!-@c"!!.a@b@@j'c@@@@e"cb@bb@@@b@b@@A@^@@3""""""""@2@A_p@+Apply_errorxR"!P!Z"!P!e@#!@#locy@@ !t@@@IN"!k!o"!k!@@#@#envz@@!t@@@IQ"!!"!!@@#@(app_name{@@@@@IT#!!# !!@@#@%mty_f|@@!s+module_type@@@IW#!!#!!@@#'@$args}@@"@!v1functor_arg_descr@@@IZ@!+module_type@@@I[@@I\@@@I^#4!!#5!"@@#F@@@A#8!P!P#9""@@#J@@#ZZS#A!k!r@R@@Ш@г](Location#L!k!u#M!k!}@d#P!k!~#Q!k!@@@l3#P#O#O#P#P#P#P#P@<6@A @@q@@IO@k@#gg`#\!!@_@@Ш@гj#Env#g!!#h!!@q#k!!#l!!@@@y@@|@@IR@v@#rrm#u!!@l@@Ш@гu0application_name#~!!#!!@@}-@@@@IU0@|@#xxr#!!@q@@Ш@г{|#!!#!!@@>@@@@IXA@@#||d#!!@c@@Ш@г$list#!" #!"@В@г%Error#!!#!!@#!!#!!@@@d@@@г%Types#!!#!!@#!!#!"@@@v@@@w@@@x#!!+@@@@I_|@@@@@@|@3expand_module_alias~#""#""-@б*strengthenг#$bool#"":#"">@@ @@@Id3########@ @A@@б@г!t#Env#""B#""E@ #""F#""G@@@@@@Ie @@б@г!H!t$Path$""K$""O@ $""P$""Q@@@@@@If2 @@г"+module_type%Types$(""U$)""Z@ $,""[$-""f@@@@@@IgH @@@@@Ih@@IiM& @@@;@@Ij @@IkRC@@cZ@@Il @@ImW$B""/@@@$E""@@$V@@@@^6Functor_inclusion_diffS$R"h"o$S"h"@$d@@Б$DefsT$b""$c""@$t@@БA+$leftU$q""$r""@@;@@!A"1functor_parameter@@@Io@@@@$|""$}""@@@@$@@@Aг %Types$""$""@$""@@@3$$$$$$$$@N$;@@@A,@@@It@In@@@@@@@@A@@ @@3$$$$$$$$@ @A! @A+%rightV$""$""@@;@@"3A@@@@Iw@@@@$""$""@@@@$@@@Aг $left$"" @@3$$$$$$$$@-PJ;@@@A#@@@I@Iv@@@@@@@@A@@@@3$$$$$$$$@ @A@A+"eqW$""$""@@;@@"_A$/module_coercion@@@I@@@@$""$"#@@@@$@@@Aг )Typedtree$""$""@$""@@@3$$$$$$$$@6PJ$;@@@A,@@@I@I@@@@@@@@A@@ @@3$$$$$$$$@ @A! @A+$diffX%## %##@@;@@"A#]5functor_param_symptom#u1functor_parameter@@@I$@@@I@@@I@@@@%##%##O@@@@%0@@@Aг%Error%*##4%+##9@%.##:@@г %Types%9##%:##@'%=##%>##,@@@/3%=%<%<%=%=%=%=%=@Ruo@;@@@AH@@@I@I@@@@/@@@,@A@@г6$unit%T##.%U##2@@>@@@L%X##:@@<@@3%V%U%U%V%V%V%V%V@@A=<@A+%stateY%d#P#Y%e#P#^@@;@@"A@@@@@%h#P#T@@@@%y@@@A@@@3%g%f%f%g%g%g%g%g@*ic@A@@A@A@A@rlA@A@@3%t%s%s%t%t%t%t%t@@A 3%w%v%v%w%w%w%w%w@@A%|""%}#_#d@@@%""@@$diff%#e#k%#e#o@б@гd!t#Env%#e#q%#e#t@ %#e#u%#e#v@@@@@@I3%%%%%%%%@G@;5A@A@A@A@PJA@@@2L@A@@б@В@г%+$list%#z#%#z#@г$%1functor_parameter%Types%#z#~%#z#@ %#z#%#z#@@@@@@I4 @@@ @@@I9@@@г$B+module_type%Types%#z#%#z#@ %#z#%#z#@@@@@@IQ @@@@!@ @@IX/ @@б@В@г%u$list&##& ##@г$o1functor_parameter%Types&##&##@ &##&##@@@@@@I~ @@@ @@@I@@@г$+module_type%Types&3##&4##@ &7##&8##@@@@@@I @@@@!@ @@I/ @@г'Diffing&Define%patch'Diffing&Z##&[##@&^##&_##@@$Defs&e##&f#$@&h#$@&k#$&l#$@@@)@@@Jϰ@@@8@@J@@J԰a @@@@@J @@Jٰ@@@@@J @@Jް@@@&#e#g@@&@@@@@+@@ %@@ @@3&&&&&&&&@ @A3&&&&&&&&@@A&"h"&$ $ @@@&"h"h@@0Functor_app_diffZ&$$&$$%@&@@Б$Defs[&$+$4&$+$8@&@@БA+$left\&$>$G&$>$K@@;@@$KA@%1functor_arg_descr@@@JǠ@%2+module_type@@@J@@J@@@@&$>$B&$>$y@@@@&@@@AВ@г%Error&$>$N&$>$S@&$>$T&$>$e@@@&3&&&&&&&&@_@@A@WQA@-'A@A@A@@@@@|@@@oG;@@@AO@@@J@J@@@@6@@@3@A&!@@@г?%Types'$>$h'$>$m@F'$>$nD@E@@M/F@@@Z08G@@I@@3''''''''@0@AJI@A+%right]'($z$')$z$@@;@@$A%1functor_parameter@@@J@@@@'3$z$~'4$z$@@@@'E@@@Aг %Types'?$z$'@$z$@'C$z$@@@3'B'A'A'B'B'B'B'B@Z$;@@@A,@@@J@J@@@@@@@@A@@ @@3'O'N'N'O'O'O'O'O@ @A! @A+"eq^']$$'^$$@@;@@$A'k/module_coercion@@@J@@@@'h$$'i$$@@@@'z@@@Aг )Typedtree't$$'u$$@'x$$@@@3'w'v'v'w'w'w'w'w@6YS$;@@@A,@@@J@J@@@@@@@@A@@ @@3''''''''@ @A! @A+$diff_'$$'$$@@;@@%A%5functor_param_symptom%1functor_arg_descr@@@J'J@@@J@@@J@@@@'$$'$%@@@@'@@@Aг%Error'$$'$%@'$%@@г %Error'$$'$$@''$$'$$@@@/3''''''''@Ruo@;@@@AH@@@J@J@@@@/@@@,@A@@г6$unit'$$'$$@@>@@@L'$$:@@<@@3''''''''@@A=<@A+%state`'%% '%%%@@;@@%|A@@@@@'%%@@@@(@@@A@@@3''''''''@*ic@A@@@:A@A@A@rlA@A@@3''''''''@@A 3((((((((@@A($+$:(%&%+@@@( $+$-@@$diffڠ(%,%2(%,%6@б@г!t#Env(#%8%<($%8%?@ ('%8%@((%8%A@@@@@@J3(*()()(*(*(*(*(*@A@ysA@ A@A@A@PJA@@@2@A@@б!fг&+module_type%Types(K %E%K(L %E%P@ (O %E%Q(P %E%\@@@@@@J( @@б$argsг'Π$list(a %`%(b %`%@В@г&1functor_arg_descr%Error(s %`%j(t %`%o@ (w %`%p(x %`%@@@@@@JP @@@г&+module_type%Types( %`%( %`%@ ( %`%( %`%@@@@@@Jh @@@@ @ @@Jo* @@@C @@@Jt( %`%iA@@г^&Define%patch'Diffing( %%( %%@( %%( %%@@$Defs( %%( %%@( %%@( %%( %%@@@'@@@K}@@x5@@K~@@K( %`%d @@@@K @@K( %E%I@@@@@K @@K@@@(%,%.@@(@@@@@<@@6@@ @@3((((((((@ @A3((((((((@@A($$'( %%@@@($$@@@'C@@'=@@A@A@A@C@@@i@@d@R@K@9@2\@<w@p@@  @  (@  /@ ( z@ s -@ % A@A@.(B@ A@LFB@U@@@@@@D@?@@@3),)+)+),),),),),@C@@yA@A@A@A@VPA@@@8@@3d@@@S@AAQ'DiffingD@AC@AB@A A@A{ @@AA7Az A A @ H************************************************************************)aA@@)bA@L@ H )gBMM)hBM@ H OCaml )mC)nC@ H )sD)tD3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt )yE44)zE4@ 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 )P77)P7e@ m* For backward compatibility's sake, an empty struct can be implicitly converted to an unit module. &Ѡ 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 )11)1C@ * [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. k /* Check an implementation against an interface  ؠ& kind )"U)"_@ -* [(functor (_:sig end) -> struct end)(Int)] 1* [F(G(X).P)(Y)] :* [F(struct end)...(...)] r@-./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** T/home/teraram/ci/builds/workspace/parallel-build/flambda/false/label/ocaml-manycores >10/.-,+*)('&%$#"! @@0:\ Ged^3*:*9*9*:*:*:*:*:@*7@@(Asttypes0eT$BbRM dc%Btype07zx# 5Build_path_prefix_map0zd,J4z8CamlinternalFormatBasics0|.e1R$|o0CamlinternalLazy0zY# #4#-*Cmi_format0{)ݬ[ƥ  %0 qQ4ߨ3נjq*Data_types0v\3,Svh'Diffing0?>pp=3+1Diffing_with_keys0.*WЃzV)j⠠,Identifiable0]/*N &0 XNrּ9-VѠ*0?3l,堠)Load_path0,j " nn7ݠ(Location0nBɊOn?7~ؠ)Longident0wP q;ɡ$Misc0Kvor#2D+Outcometree0BuG^)= 9c )Parsetree0v o[pY Y$Path0k.tbGmᠠ)Primitive0dU=\I/}%Shape0 M``ll&Stdlib0t0VoS%{<F:.Stdlib__Buffer0,I[?z.Stdlib__Digest0#z25I*.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Either0HD ?|>.Stdlib__Format00FClW/Stdlib__Hashtbl0(L%bԠ,Stdlib__Lazy0$1mlࠠ.Stdlib__Lexing0^m|e+Stdlib__Map0*4ɇ2ɠ%Subst0=aqT/!p+.Type_immediacy00$ jbv\"k&+0L+=%Eȧk]U젠%Types0"|Vȷ`X )Unit_info0'T Χ@aR/Value_rec_types0`4xiVC(Warnings0Ef{&@0?3l,A""h@$|$m@""@ I @@ܖ  Rϒܰ[! ð([(@@l@@!!l#b#E@@@!!`@@@o@@@@)J)&@&-&(t(G@d&  %|$)`)A@&R&(@ %@  @''0@@  @ ?@|"((i@g.@ʰ  3@@ # @ W ('{@ K W%^!@@y&`&@+@(Γ(@@ "  X  @!K!@ * !ē!&%^))@@@o @@ @&@@ + t@@@@ː@@@@!W!@&&M@@U` K @͓ X@#b"װ%%^@@|@ 4 @''(z'@@@@ j 7$$@@@#)"@@ ӓ /C @@@@&,%@ I @@@@@& ޓ y@@%̒$$%%@&l&7**4@@(E'@  |sV@#ȕ#I@@ɒܰՓ@%$\%;%)@!!J@%В!ذ%$@&&@@@$-$$$@@ _ ԰(C(@b@@*g*q@@ ܰ&%@@@T # 5@@@))@ " U'*&@ f ɰ&$'&@!  @@ ] +@Ò@@  ! @))W@@@@@@P@@