Caml1999I037dI_Gv*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@%subst@@%Subst!t@@@ްU  U  @@s@(missings@@.signature_item@@@@@@ݰV  V  @@t@-incompatibles@@ @!t@@@٠@/sigitem_symptom@@@@@@@@۰W  W  L@@u@#oks@@@#intA@@@ՠ@)Typedtree/module_coercion@@@@@@@@װX M QX M }@@v@)leftovers@@@f.signature_item@@@Ѡ@@@@Р@/@@@@@@@@ӰY ~ Y ~ @@w@@@A@@@@@S  [  @@@@b@B@R;@@$Coreʐ@@@@@] ' +] ' I@@.x@7Module_type_declarationː3modtype_declaration@@@?module_type_declaration_symptom@@@@@@@@*^ J N+_ k @@Iy@+Module_type̐@@@@@7`  8`  @@Vz@@@A@@@@@;\  @@@@Yc@B@;@@3Illegal_permutation͐{/module_coercion@@@@@NcOc:@@m{@0Not_greater_thanΐ@@@@@[d;?\d;e@@z|@-Not_less_thanϐ@@@@@hefjief@@}@,IncomparableБ)less_than@@@@@xgyg@@~@,greater_than@@@@@gg@@@@@fg@@@@@@A@@@@@b  @@@@d@B@#all;@@3In_Compilation_unitԐq&stringQ@@@:@@@@@@@@kk5@@H@,In_SignatureՐH@@@@@l6:l6]@@I@.In_Module_type֐5@@@@@m^bm^@@J@;In_Module_type_substitutionא!t@@@V+module_type@@@@@@@@@@@no@@K@3In_Type_declarationؐ!t@@@@@@@@pp2@@L@,In_Expansionِ@@@@@q37q3a@@!M@@@A@@@@@j@@@@$G@A@@@ U rbe@(N@@@+explanation;@@@A@!t@@@@<#all@@@@@@@@@&sff'sf@@@@EO@A@*field_kind;@@+Field_valueݐ@@5w6w@@TR@*Field_typeސ@@>x?x@@]S@/Field_exceptionߐ@@GyHy @@fT@,Field_typext@@Pz  Qz @@oU@,Field_module@@Y{Z{+@@xV@-Field_modtype@@b|,.c|,=@@W@+Field_class@@k}>@l}>M@@X@/Field_classtype@@t~NPu~Na@@Y@@@A@@@@@xv@@A@Q@A@*field_desc;@@$name@@@@@cwc@@[@$kind@@h@@@cc@@\@@@A@@@@@ccc@@@@Z@A@2kind_of_field_desc@,@@@@@ @@@@@@@@]@@*field_desc@*@@@@@@!t@@@@@"@@@@@@@@@@^@@Ӡ(FieldMap@#key;@@@A6@@@@@@@@@@@_@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@$vY]%x@@#K@@%union@@@@@2@@3@!a@?@@4@@@5à @@@6@@7@@8@@9@@:@B@@@;@@<@J@@@=@@>N @@@@@@A@@B@@C@]fj^f@@\L@@(cardinal@_!a@D@@@E@@F#intA@@@G@@H@xy@@wM@@(bindings@z!a@K@@@I@@J5@t@@@L@@@M@@@N@@O@8<8a@@N@@+min_binding@!a@R@@@P@@Q@@@@S@@@T@@U@bfb@@O@@/min_binding_opt@!a@X@@@V@@WM@@@@Y@@@Z@@@[@@\@JNJ|@@P@@+max_binding@ޠ!a@_@@@]@@^@@@@`@@@a@@b@484[@@Q@@/max_binding_opt@!a@e@@@c@@d@@@@f@@@g@@@h@@i@ @@R@@&choose@!a@l@@@j@@k@@@@m@@@n@@o@;<@@:S@@*choose_opt@=!a@r@@@p@@qϠ@7@@@s@@@t@@@u@@v@^_@@]T@@$find@J@@@w@@x@g!a@{@@@y@@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@-@@@.@@/m@@@0@@1@@2@ 822!823@@e@@%equal@@!a@;@@3@@@4@@@5@@6@@7@@8@6@@@9@@:@>@@@<@@=@@@>@@?@@@@@A@Q<3j3nR<3j3@@Pf@@'compare@@!a@J@@B@@@C@@@D@@E@@F@@G@g@@@H@@I@o@@@K@@L @@@M@@N@@O@@P@B44B44@@g@@'for_all@@r@@@Q@@R@!a@X@@S@@@T@@U@@V@@W@@@@Y@@Z@@@[@@\@@]@F5r5vF5r5@@h@@&exists@@@@@^@@_@!a@e@@`@@@a@@b@@c@@d@Ǡ@@@f@@g'@@@h@@i@@j@K66"K66Q@@i@@'to_list@ܠ!a@m@@@k@@l@@@@n@@@o@@@p@@q@R66R67@@j@@'of_list@@@@@r@!a@v@@s@@@t@@u@@@w@@x@ V7]7a!V7]7@@k@@&to_seq@"!a@{@@@y@@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@@@@ @ `@@@/item_ident_name@ p.signature_item@@@@@@ !t@@@ @(Location!t@@@ @f@@@@@ @@ @   @@ .a@@4is_runtime_component@ .signature_item@@@ @@$boolE@@@@@@ (   ) B@@ Gb@@(modtypes#loc5!t@@@@@@ !t@@@@@$mark+@@@@@@ +module_type@@@@@@ +module_type@@@@@ /module_coercion@@@@@@@@@@@@@ @ iYY j@@ c@@4modtypes_consistency#locv!t@@@!@@"@ !t@@@#@@$@ E+module_type@@@%@@&@ N+module_type@@@'@@( l@@@)@@*@@+@@,@@-@  @@ d@@3modtypes_constraint%shape%Shape!t@@@.@@/#loc!t@@@0@@1@ Z!t@@@2@@3$mark@@@4@@5@ +module_type@@@6@@7@ +module_type@@@8@@9@/module_coercion@@@;@E!t@@@:@@<@@=@@>@@?@@@@@A@@B@ (( |@@ e@@8strengthened_module_decl#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@ L MX@@ kf@@7check_modtype_inclusion#locY!t@@@Y@@Z@ !t@@@[@@\@ +module_type@@@]@@^@ )!t@@@_@@`@ +module_type@@@a@@b&optionL @@@c@@@d@@e@@f@@g@@h@@i@ ZZ @@ g@@3check_modtype_equiv#loc!t@@@j@@k@ B!t@@@l@@m@ !t@@@n@@o@ z+module_type@@@p@@q@ +module_type@@@r@@s @@@t@@u@@v@@w@@x@@y@  @@ h@@*signatures@ u!t@@@z@@{$mark@@@|@@}@ )signature@@@~@@@ )signature@@@@@/module_coercion@@@@@@@@@@@@m@@&i@@4check_implementation@ !t@@@@@@ )signature@@@@@@ )signature@@@@@ @@@@@@@@@@01@@Oj@@(compunit@ !t@@@@@$mark'@@@@@@ @@@@@@ )signature@@@@@@ @@@@@@ #)signature@@@@@@!t@@@@@@/module_coercion@@@@!t@@@@@@@@@@@@@@@@@@@@'h@@k@@1type_declarations#loc!t@@@@@@ 8!t@@@@@$mark@@@@@@ !t@@@@@@ z0type_declaration@@@@@@ 0type_declaration@@@@@@@@@@@@@@@@@@@@@jj@@l@@.print_coercion@&Stdlib&Format)formatter@@@@@@/module_coercion@@@@@@@@@@@@@%@@m@@'symptom;@@-Missing_fielda !t@@@ !t@@@ x@@@@@6:6h@@8o@2Value_descriptionsb !t@@@ 1value_description@@@ 1value_description@@@.value_mismatch@@@@@<tv=@@[p@1Type_declarationsc ,!t@@@ޠ 0type_declaration@@@ݠ 0type_declaration@@@ܠ-type_mismatch@@@@@_`Q@@~q@6Extension_constructorsd O!t@@@ڠ )5extension_constructor@@@٠ /5extension_constructor@@@ؠ>extension_constructor_mismatch@@@@@RT@@r@,Module_typese E+module_type@@@֠ K+module_type@@@@@ @@s@-Modtype_infosf !t@@@Ԡ a3modtype_declaration@@@Ӡ g3modtype_declaration@@@@@   S@@t@3Modtype_permutationg=+module_type@@@Ѡ /module_coercion@@@@@TVT@@u@2Interface_mismatchh 7@@@Ϡ <@@@@@@@v@7Class_type_declarationsi !t@@@͠ 6class_type_declaration@@@̠ 6class_type_declaration@@@ˠ3class_match_failure@@@@@@@@(L@@$w@2Class_declarationsj !t@@@Ƞ 1class_declaration@@@Ǡ 1class_declaration@@@ƠFD3class_match_failure@@@@@@@@-MO.@@Lx@3Unbound_module_pathk!t@@@@@=>@@\y@@@A@@@@@A''@@@@_n@A@#pos;@@&Module6!t@@@@@VW @@u{@'ModtypeF!t@@@@@f  g  @@|@#Arg)1functor_parameter@@@@@u  !v  ;@@}@$Body81functor_parameter@@@@@ < > < Y@@~@@@A@@@@@@@@@z@A@ %Error##exnG@@@@@@A&_none_@@A@@B@0application_name;@@1Anonymous_functor@@    @@@5Full_application_path)Longident!t@@@@@   !@@@6Named_leftmost_functor!t@@@@@!!!!C@@@@@A@@@@@ { {@@@@@A@ +Apply_error#E@#loc@@!t@@@!!!!@@@#env@@}!t@@@!!!!@@ @(app_name@@[@@@!!!!@@@%mty_f@@+module_type@@@!!!!@@&@$args@@3@ 1functor_arg_descr@@@@+module_type@@@@@@@@%!!&!"$@@D@@@A@E@B@3expand_module_alias*strengthen@@@@@@!t@@@@@@!t@@@@@+module_type@@@@@@@@@@S"*"*T"*"z@@r@@Ӡ6Functor_inclusion_diff@Ӡ$Defs@$left;@@@A1functor_parameter@@@@@@@p""q""@@@@@A@%right;@@@A@@@@@@@""""@@@@@A@"eq;@@@A/module_coercion@@@@@@@"""#@@@@@A@$diff;@@@A {5functor_param_symptom 1functor_parameter@@@Ѡy@@@@@@@@@@####c@@@@@A@%state;@@@A@@@@@#d#h#d#r@@@@@A@@@""#s#x@@@@-inclusion_env;@@%i_env@@]!t@@@԰#y##y#@@@'i_subst@@[!t@@@Ӱ#y##y#@@@@@A@@@@@#y#{#y#@@@@@A@$diff@0@@@@@@@}1functor_parameter@@@@@@٠@+module_type@@@@@@@@@81functor_parameter@@@@@@ޠ@+module_type@@@@@@@'Diffing&Define%patch@@@@@@@@@@3##4$>$\@@R@@@@7"|"|8$]$`@V@@@Ӡ0Functor_app_diff@Ӡ$Defs@$left;@@@A@21functor_arg_descr@@@@+module_type@@@@@@@@@_$$`$$@@@@~@A@%right;@@@A1functor_parameter@@@@@@@p$$q$$@@@@@A@"eq;@@@A/module_coercion@@@@@@@$$$%@@@@@A@$diff;@@@Al5functor_param_symptomq1functor_arg_descr@@@i@@@@@@@@@@%%#%%j@@@@@A@%state;@@@A@@@@@%k%o%k%y@@@@@A@@@$$%z%@@@@$diff@L!t@@@@@!fC+module_type@@@@@$args@1functor_arg_descr@@@Š@^+module_type@@@@@@@@@@&Define%patch@@@@@@@@@@ %% %&@@@@@@$b$b&&@@@@@ ٠*Includemod00a- %O(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 $Misc0]\/j*^e)Longident0wP q;ɡ(Location0nBɊOn?7~ؠ)Load_path0,j " nn7ݠ+Includecore0 XNrּ9-VѠ,Identifiable0]/*N %Ident0>ЃzV)j⠠*Format_doc0uy@GmWUࠠ*Errortrace0:~i0yXD#Env0gu{u9?*a2@1Diffing_with_keys0.*W@@=@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@N@@Б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@%subst@@%Subst!t@@@1BU  CU  @@Ts@(missings@@.signature_item@@@1@@@1UV  VV  @@gt@-incompatibles@@Р@!t@@@1ꠠ@F@@@1@@1@@@1rW  sW  L@@u@#oks@@@Z@@@1@/module_coercion@@@1@@1@@@1X M QX M }@@v@)leftovers@@ @.signature_item@@@1@@@@1@@@@1@@1@@@1Y ~ Y ~ @א C signature items that could not be compared due to type divergence Z  Z  @@@@@@@w@@@A@@@@@@@@@#T  @@@Ш@г#EnvT  T  @T  T  @@@@@@@0g@@#U  @@@Ш@г%SubstU  U  @U  U  @@@(@@@@1+@@#V  @@@Ш@г$list V   V  @г%Types V   V  @ V   V  @@@J@@@K @@@@1N@@# W  )@@@Ш@гà$list %W  G &W  K@В@гȠ%Ident 4W  , 5W  1@ϰ 8W  2 9W  3@@@q@@@гҠ/sigitem_symptom DW  6 EW  E@@|@@@}@@@~ IW  +$@@@@1@@#נװ PX M T@@@Ш@гڠ$list YX M x ZX M |@В@гߠ#int fX M W gX M Z@@@@@г䠡)Typedtree sX M ] tX M f@ wX M g xX M v@@@@@@@@@ }X M V$@@@@1@@# Y ~ @@@Ш@г$list Y ~ @В@Цг%Types Y ~  Y ~ @ Y ~  Y ~ @@@ڰ@@"it Y ~  Y ~ @ @@@А"it  Y ~  Y ~ @@@г #int Y ~  Y ~ @@@@@$ Y ~ @@@* Y ~ @@.@@2@ @@@@@@@A@@+ \   \  $@@;@@$Coreʐ@@@2@@ ] ' + ] ' I@@ x@7Module_type_declarationː,S3modtype_declaration@@@2@@@2@@@2 @@ ^ J N _ k @@ y@+Module_type̐X@@@2 @@ `  @@ z@@@A@@@@@@@@@#66 ] ' - ] ' 1@/@г84core_sigitem_symptom ] ' 59@@?R:@@@@<@#88 !^ J P "^ J g@%@г:$diff +_ k /@г>%Types 5_ k t 6_ k y@E 9_ k z :_ k @@@Mr@@гH?module_type_declaration_symptom D_ k  E_ k @@P|@@@\} H_ k sL@@@@N@#JJ M`   N`  @D@гL0module_type_diff W`  )@@S*@@@@P@@A@,@+** ]b   ^b @@;@@3Illegal_permutation͐ q/module_coercion@@@2 @@ nc oc:@@ {@0Not_greater_thanΐ@@@2 @@ |d;? }d;e@@ |@-Not_less_thanϐ@@@2 @@ efj ef@@ }@,IncomparableБ)less_than@@@@@2 g g@@ ~@,greater_than@@@@@2 g g@@ @@@ fu@@ @@@@A@@@@@x@@@u@#MM c  c@D@гO)Typedtree c! c*@V c+T@U@@]V@@@@X@#TT d;A d;Q@M@гV0module_type_diff d;UW@@] X@@@@Z@#VV efl efy@O@гX0module_type_diff ef}Y@@_Z@@@@\@#XX f f@?@#ZZU g@T@@Ш@г]0module_type_diff g g@@e1@@h@@24@d@#``[ g@Z@@Ш@гc0module_type_diff gd@@jBe@@m@@2E@i@@@e@@A@@@3        @;@AY@A+#allH j j@@;@@3In_Compilation_unitԐ e @@@3@@@3@@@3@@ 3k 4k5@@ EH@,In_SignatureՐ@@@3@@ Al6: Bl6]@@ SI@.In_Module_type֐@@@3@@ Om^b Pm^@@ aJ@;In_Module_type_substitutionא!t@@@3  +module_type@@@3 <@@@3 @@@3 @@ pn qo@@ K@3In_Type_declarationؐ!t@@@3R@@@3@@ p p2@@ L@,In_Expansionِ@@@3@@ q37 q3a@@ M@@@A@@@@@ j@@@@ G@@#|| k k@k@г~$diff k1u@г&string k k@@3        @_.ZNMG;@@@A@@@@@*@@@(@A@@г1signature_symptom k k/@@@@@ k@@@@@# l6< l6H@@г1signature_symptom l6L@@*@@@@@# m^d m^r@@г0module_type_diff m^v@@:@@@@@# n n@@г%Ident o o@ o o@@@R@@г$diff o@г%Types o o@ o o@@@k@@г?module_type_declaration_symptom %o &o@@u@@@v )o@@@@@# .p /p@@г%Ident :p ;p@ >p ?p@@@@@гà4core_sigitem_symptom Ip@@@@@@@#àð Oq39 Pq3E@@гŠ8core_module_type_symptom Yq3I@@@@@@@@A@@@3 X W W X X X X X@@A@@  nA@  A@  A@ 4 .A@qkA@A@B@B@hB@t B@gB@ZB@TB@PB@JB@gaA@@3 z y y z z z z z@ic@A# ذ U rbe@@@ U@ ݰ@A++explanationI sfk sfv@@;@@ A@n!t@@@37@ #all@@@3@@3@@@@ sff sf@@@@ O@@@AВ@г#Env sfy sf|@ sf} sf~@@@&3        @  @  A@ { RA@  A@  A@A@]WA@ `B@2%B@B@rB@,B@ B@LB@ B@B@A@@@_ )W;@@@A_@@@3@36@@@@F@@@C@A61@@@гO%Error sf sf@V sfT@U@@]?V@@@j@HW@@Y@@3        @@@AZY@A+*field_kindJ v v@@;@@+Field_valueݐ@@ w w@@ %R@*Field_typeސ@@ x x@@ .S@/Field_exceptionߐ@@ %y &y @@ 7T@,Field_typext@@ .z   /z @@ @U@,Field_module@@ 7{ 8{+@@ IV@-Field_modtype@@ @|,. A|,=@@ RW@+Field_class@@ I}>@ J}>M@@ [X@/Field_classtype@@ R~NP S~Na@@ dY@@@A@@@@@ Vv@@A@ gQ@@#LL ]wJ@I@@@M@#II cxG@F@@@J@#FF iyD@C@@@G@#CC oz A@@@@@D@#@@ u{>@=@@@A@#== {|,0;@:@@@>@#:: }>B8@7@@@;@#77 ~NR5@4@@@8@@A@4@@3        @@A69@A+*field_descK ch cr@@;@@$name@@ g@@@3 cw c@@ [@$kind@@@@@3 c c@@ \@@@A@@@@@ cc c@@@@ Z@@# c{@@@Ш@г &string c} c@@(3        @>7;@@@A@@@@@@@@@A@@0@@3@,@#((# c@"@@Ш@г+*field_kind c,@@2-@@5@@3@1@@A@-@@3        @@A.-@2kind_of_field_desc  @б@г^*field_desc  @@ @@@33        @3ic@A@@г Š&string@@ @@@3@@@@@3@@3 @@@ @@ ]@@@@*field_desc@б@г*field_kind%&@@ @@@33'&&'''''@3H@A@@б@г!t%Ident:;@ >?@@@@@@3 @@г*field_descLM@@ @@@3'@@@@@3@@3, @@@4@@3 @@317@@@^@@o^@@@@7(FieldMapPLkl@}`@@УР #Map!S{|@ @@3@Zo)@A @@#key@#key@+ @;@@@A @@@5~@@@@@@@@_@@@Aг *field_desc @@$ @@ @@""M;@@@A@@@8@@@@@@@A@!t#M;!a@5}@A@A@I@B@@@'map.mliI V ZI V e@@@@+Stdlib__MapD@A@%empty$!a@5|@@@8@L  L  @@E@@#add%@8@@@8@@8@!a@5u@@8@& @@@8@@8*@@@8@@8@@8@@8@9O  :O  @@8F@@+add_to_list&@%@@@8@@8@!a@5j@@8@J$listK@@@8@@@8@@8U @@@8@@@8@@8@@8~@@8}@iX  jX  @@hG@@&update'@U@@@8|@@8{@@&optionL!a@5[@@@8z@@8y  @@@8x@@8w@@8v@@@@8u@@8t@@@8s@@8r@@8q@@8p@^^@@H@@)singleton(@@@@8o@@8n@!a@5S@@8m@@@8l@@8k@@8j@jW[jW{@@I@@&remove)@@@@8i@@8h@ !a@5K@@@8g@@8fʠ@@@8e@@8d@@8c@oo@@J@@%merge*@@@@@8b@@8a@p!a@5<@@@8`@@8_@}!b@59@@@8^@@8]!c@56@@@8\@@8[@@8Z@@8Y@@8X@ "@@@8W@@8V@@@@8U@@8T@@@8S@@8R@@8Q@@8P@$vY]%x@@#K@@%union+@@@@@8O@@8N@!a@5$@@8M@@@8Là @@@8K@@8J@@8I@@8H@@8G@B@@@8F@@8E@J@@@8D@@8CN @@@8B@@8A@@8@@@8?@]fj^f@@\L@@(cardinal,@_!a@5@@@8>@@8=#intA@@@8<@@8;@xy@@wM@@(bindings-@z!a@5@@@8:@@895@t@@@88@@@87@@@86@@85@8<8a@@N@@+min_binding.@!a@5@@@84@@83@@@@82@@@81@@80@bfb@@O@@/min_binding_opt/@!a@5 @@@8/@@8.M@@@@8-@@@8,@@@8+@@8*@JNJ|@@P@@+max_binding0@ޠ!a@5@@@8)@@8(@@@@8'@@@8&@@8%@484[@@Q@@/max_binding_opt1@!a@4@@@8$@@8#@@@@8"@@@8!@@@8 @@8@ @@R@@&choose2@!a@4@@@8@@8@@@@8@@@8@@8@;<@@:S@@*choose_opt3@=!a@4@@@8@@8Ϡ@7@@@8@@@8@@@8@@8@^_@@]T@@$find4@J@@@8@@8@g!a@4@@@8@@8@@8@@8@z{@@yU@@(find_opt5@f@@@8 @@8 @!a@4@@@8 @@8  @@@8 @@8@@8@IMIs@@V@@*find_first6@@@@@8@@8$boolE@@@8@@8@@8@!a@4@@@8@@8@@@@7@@@7@@7@@7@    D@@W@@.find_first_opt7@@@@@7@@7/@@@7@@7@@7@۠!a@4@@@7@@7m@@@@7@@@7@@@7@@7@@7@"*"."*"l@@X@@)find_last8@@@@@7@@7a@@@7@@7@@7@ !a@4@@@7@@7@@@@7蠠@@@7@@7@@7@)#_#c*#_#@@(Y@@-find_last_opt9@@@@@7@@7@@@7@@7@@7@:!a@4@@@7@@7̠@4@@@7ݠ@@@7@@@7@@7@@7@[$y$}\$y$@@ZZ@@$iter:@@K@@@7@@7@!a@4@@7$unitF@@@7@@7@@7@@7@v@@@7@@7@@@7@@7@@7@%%%& @@[@@$fold;@@y@@@7@@7@!a@4@@7@#acc@4@@7@@7@@7@@7@@7@@@@7@@7@@@7@@7@@7@@7@'%')'3'l@@\@@#map<@@!a@4@@7!b@4@@7@@7@ˠ@@@7@@7Ϡ@@@7@@7@@7@(e(i(e(@@]@@$mapi=@@@@@7@@7@!a@4~@@7!b@4{@@7@@7@@7@@@@7@@7@@@7@@7@@7@ )) ))@@ ^@@&filter>@@@@@7@@7@!a@4n@@7w@@@7@@7@@7@@7@#@@@7@@7'@@@7@@7@@7@6**7**@@5_@@*filter_map?@@&@@@7@@7@!a@4c@@7Ѡ!b@4`@@@7@@7@@7@@7@T@@@7@@7X@@@7@@7@@7@g ,,h ,,?@@f`@@)partition@@@W@@@7@@7@!a@4R@@7@@@7@@7@@7@@7@@@@7@@7@@@@7@@@@7@@7@@7@@7@.../%@@a@@%splitA@@@@7@@7@!a@4G@@@7@@7@ @@@7@B@@@7@@@@7@@7~@@7}@@7|@$0'0+$0'0\@@b@@(is_emptyB@Р!a@4B@@@7{@@7z4@@@7y@@7x@022!022;@@c@@,is_singletonC@!a@4=@@@7w@@7vM@@@7u@@7t@32l2p32l2@@d@@#memD@@@@7s@@7r@ !a@46@@@7q@@7pm@@@7o@@7n@@7m@ 822!823@@e@@%equalE@@!a@4(@@7l@@@7k@@@7j@@7i@@7h@@7g@6@@@7f@@7e@>@@@7d@@7c@@@7b@@7a@@7`@@7_@Q<3j3nR<3j3@@Pf@@'compareF@@!a@4@@7^@@@7]@@@7\@@7[@@7Z@@7Y@g@@@7X@@7W@o@@@7V@@7U @@@7T@@7S@@7R@@7Q@B44B44@@g@@'for_allG@@r@@@7P@@7O@!a@4 @@7N@@@7M@@7L@@7K@@7J@@@@7I@@7H@@@7G@@7F@@7E@F5r5vF5r5@@h@@&existsH@@@@@7D@@7C@!a@3@@7B@@@7A@@7@@@7?@@7>@Ǡ@@@7=@@7<'@@@7;@@7:@@79@K66"K66Q@@i@@'to_listI@ܠ!a@3@@@78@@77@@@@76@@@75@@@74@@73@R66R67@@j@@'of_listJ@@@@@72@!a@3@@71@@@70@@7/@@@7.@@7-@ V7]7a!V7]7@@k@@&to_seqK@"!a@3@@@7,@@7+&Stdlib#Seq!t@"@@@7*@@@7)@@@7(@@7'@I\888<J\888a@@Hl@@*to_rev_seqL@K!a@3@@@7&@@7%)#Seq!t@H@@@7$@@@7#@@@7"@@7!@o`88p`88@@nm@@+to_seq_fromM@[@@@7 @@7@x!a@3@@@7@@7V#Seq!t@u@@@7@@@7@@@7@@7@@7@d9;9?d9;9p@@n@@'add_seqN@t#Seq!t@@@@7@!a@3@@7@@@7@@7@ @@@7@@7@@@7@@7@@7@i: :i: :=@@o@@&of_seqO@#Seq!t@@@@7@!a@3@@7 @@@7 @@7 @@@7 @@7 @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. i@@@@@@@(@B)@/item_ident_name@б@г6.signature_item%Types@ @@@@@@83@e@BAA@;9A@*(@@@@@}{@_]@@@@@@hf@LJ@+)@ @@@@@XV@-+@@@@~@VT@,*@@@@@lj@NL@@@@@{y@ZX@31@ @@@@k@@@@@@@Aup@@В@г!t%Identab@ ef@@@@@@8 @@@г(Location!t(Location{|@ @@@@@@< @@@г*field_desc @@ @@@<@@@@1@@ @@<=@@@@@< @@<@@@@@a@@@@4is_runtime_component  $@б@г.signature_item%Types & +@  , :@@@@@@<3@(@A @@г$bool > B@@ @@@<@@@@@<@@< @@@   @@b@@@@(modtypesY]Ye@б#locг!t(Locationgmgu@ gvgw@@@@@@<3@>\*@A @@б@г!t#Envg{g~@ gg@@@@@@= @@б$markгݠ$bool,g-g@@ @@@=+@@б@г+module_type;<@@ @@@=:@@б@г+module_typeJK@@ @@@=I@@гZ/module_coercionWX@@ @@@=V@@@@@=@@=[ @@@)@@= @@=`,@@F=@@=  @@= elg@@@T@@=  @@= k\@@s@@=  @@=pwgi @@@zYY#@@c@@%@@w4modtypes_consistency@б#locг!t(Location@ @@@@@@=3@*@A @@б@г|!t#Env@ @@@@@@= @@б@г!+module_type@@ @@@=)@@б@г0+module_type@@ @@@=8@@г$unit@@ @@@=E@@@@@=@@=J @@@)@@= @@=O,@@@=@@= @@=TE@@n\@@= @@=Y@@@@@d@@@@`3modtypes_constraint(, (?@б%shapeг%Shape!t%ShapeAIAN@ AO AP@@@@@@>.3"!!"""""@,@A @@б#locг!t(Location7AX8A`@ ;Aa<Ab@@@@@@>/ @@б@г!t#EnvOAfPAi@ SAjTAk@@@@@@>04 @@б$markг$booleAtfAx@@ @@@>1E@@б@г+module_typet|~u|@@ @@@>2T@@б@г+module_type||@@ @@@>3c@@В@г/module_coercion||@@ @@@>4t@@@г!t%Shape||@ ||@@@@@@>5 @@@@ @ @@>6% @@@8@@>7 @@>8;@@@L@@>9 @@>:O@@i`@@>; @@><Ao@@@w@@>= @@>>"@@@@>? @@>@AT(@@@@>A @@>BAC.@@@((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. %'@@@@@@@e@@A@@@@@@@8strengthened_module_decl@б#locг!t(Location@ @@@@@@>C3@C@A @@б)aliasableгڠ$bool)*@@ @@@>D@@б@г!t#Env<=@ @A@@@@@@>E+ @@б$markг$boolR S @@ @@@>F<@@б@г2module_declarationab%@@ @@@>GK@@б@г!t$Patht)u-@ x.y/@@@@@@>Hc @@б@г2module_declaration3E@@ @@@>Ir@@г/module_coercionIX@@ @@@>J@@@@@>K@@>L @@@)@@>M @@>N1@@@F@@>O @@>PI@@cZ@@>Q @@>R@@@q@@>S @@>Ty@@@@>U @@>V%@@@@>W @@>X+@@@.@@f@@0@@7check_modtype_inclusionZ^Zu@б#locгf!t(Locationx~x@ xx@@@@@@>Y3@*@A @@б@г!t#Envxx@ xx@@@@@@>Z @@б@гj+module_type%Typesxx@ xx@@@@@@>[2 @@б@г_!t$Path)x*x@ -x.x@@@@@@>\J @@б@г+module_type%TypesAxBx@ ExFx@@@@@@>]b @@г&optionST@г Π+explanation]^@@ @@@>^y@@@@@@>`~ @@@$@@>a @@>b,@@@A@@>c @@>dI@@@^@@>e @@>ff#@@@{@@>g @@>h(@@@@>i @@>jxz.@@@ZZ1@ [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@@@@@@@g@@A@i@@@@@@3check_modtype_equiv@б#locг@!t(Location@ @@@@@@>k3@C@A @@б@г!t#Env@ @@@@@@>l @@б@гo!t%Ident@ @@@@@@>m2 @@б@г\+module_type@@ @@@>nA@@б@гk+module_type @@ @@@>oP@@г$unit@@ @@@>p]@@@@@>q@@>rb @@@)@@>s @@>tg,@@@=@@>u @@>vlE@@@Z@@>w @@>xqb@@y@@>y @@>zv:@@@="@@Nh@@$@@}*signaturesH"I,@б@г#!t#EnvW.X1@ [2\3@@@@@@>{3^]]^^^^^@(@A @@б$markг $boolo<p@@@ @@@>|@@б@г)signature~DM@@ @@@>}"@@б@г)signatureQZ@@ @@@>~1@@г/module_coercion^m@@ @@@>>@@@@@>@@>C @@@)@@> @@>H,@@F=@@> @@>M7@@@V@@> @@>S^@@@@@i@@@@Y4check_implementation@б@г!t#Env@ @@@@@@>3@{(@A @@б@гD)signature@@ @@@>@@б@гS)signature@@ @@@> @@г$unit@@ @@@>-@@@@@>@@>2 @@@)@@> @@>7,@@@?@@> @@><G@@@@? . Check an implementation against an interface 'oo(o@@@@@@@9j@@'@O@@@@@@[(compunit>?@б@г!t#EnvMN@ QR@@@@@@>3TSSTTTTT@}A@A @@б$markг$boolef @@ @@@>@@б@г7&stringtu@@ @@@>"@@б@г)signature#@@ @@@>1@@б@гU&string'-'3@@ @@@>@@@б@г)signature'7'@@@ @@@>O@@б@г!t%Shape'D'I@ 'J'K@@@@@@>g @@В@г/module_coercion'O'^@@ @@@>x@@@г!t%Shape'a'f@ 'g'h@@@@@@> @@@@ @ @@>% @@@8@@> @@>@@@@U@@> @@>X@@@i@@> @@>l@@@}@@> @@>!@@@@@> @@>&@@@@> @@> ,@@@@@> @@>1@@@4@@&k@@6@@1type_declarations jn!j@б#locг!t(Location12@ 56@@@@@@>387788888@*@A @@б@г!t#EnvKL@ OP@@@@@@> @@б$markг$boolab@@ @@@>+@@б@г!t%Identtu@ xy@@@@@@>C @@б@г0type_declaration@@ @@@>R@@б@г0type_declaration@@ @@@>a@@гD$unit@@ @@@>n@@@@@>@@>s @@@)@@> @@>x,@@@=@@> @@>}E@@cZ@@> @@>@@@q@@> @@>y@@@@> @@>%@@@jj(@@l@@*@@.print_coercion_@б@гL&Format)formatter@  @@@@@@H3@(@A @@б@г/module_coercion@@ @@@H@@г$unit ! %@@ @@@H@@@@@H@@H# @@@+@@H @@H(3@@@@@,m@@@@.A+'symptom`N'',('3@@;@@-Missing_fielda!t@@@H!t@@@H @@@H@@D6:E6h@@Vo@2Value_descriptionsb!t@@@H1value_description@@@H1value_description@@@H.value_mismatch@@@H@@gtvh@@yp@1Type_declarationsc!t@@@H0type_declaration@@@H0type_declaration@@@H9-type_mismatch@@@H@@Q@@q@6Extension_constructorsd"!t@@@H5extension_constructor@@@H5extension_constructor@@@H\>extension_constructor_mismatch@@@H@@RT@@r@,Module_typese+module_type@@@H +module_type@@@H@@ @@s@-Modtype_infosfZ!t@@@H63modtype_declaration@@@H<3modtype_declaration@@@H@@   S@@t@3Modtype_permutationgK+module_type@@@H/module_coercion@@@H@@TVT@@u@2Interface_mismatchh@@@H@@@H@@ @@v@7Class_type_declarationsi!t@@@H|6class_type_declaration@@@H6class_type_declaration@@@H3class_match_failure@@@H@@@H@@01(L@@Bw@2Class_declarationsj!t@@@H1class_declaration@@@H1class_declaration@@@H3class_match_failure@@@H@@@H@@XMOY@@jx@3Unbound_module_pathk!t@@@H@@hi@@zy@@@A@@@@@l''@@@@}n@@#DD/s6G@.@гE%Ident~6K6P@L6Q6R@@@T3@oe;@@@A@@@@@@@@@A @@гT(Location6U6]@[6^6_@@@c@@г^&string6b_@@e`@@@@b@#^^txt@B@г`%Ident@g@@@o7@@гjk@@q@@@гmn@@tI@@гp+Includecore@wu@v@@~Yw@@@@y@#uu@Y@гw%Ident@~@@@q@@г @@z@@г % 5@@@@г+Includecore 8 C@ D@@@@@@@@# RV Rl@p@г%Ident )Rp *Ru@ -Rv .Rw@@@@@г 7Rz 8R@@@@г @ A@@@@г+Includecore L M@ P@@@Ͱ@@@@@# W X@@г ` a@@ݰ@@г i@@@@@@@# o  p @@г%Ident {   | %@  &  '@@@@@г  *  =@@@@г  @@@@@@@@# TX Tk@@г%Types To Tt@ Tu T@@@&@@г)Typedtree T T@ư T@@@6@@@@@#Ġİ  @@гƠ&string  @@G@@гˠ&string @@P@@@@@#ˠ˰  @@г͠%Ident  @԰  @@@h@@гנذ   @@q@@гڠ۰  %@@z@@гݠ$list!(H@гᠡ%Ctype!(.!(3@!(4!(G@@@@@@ @@@@@#!MQ!Mc@@г頡%Ident!*gm!+gr@!.gs!/gt@@@@@г!8gw!9g@@@@г!Ag!Bg@@@@г$list!K@г%Ctype!U!V@!Y!Z@@@ װ@@@ذ @@@@@#!b!c@@г$Path!n!o@ !r @ @@ @@@@@@A@ @@3!r!q!q!r!r!r!r!r@@A @A+#posO!!@@;@@&Module!t@@@Jn@@!! @@!{@'Modtype)!t@@@Jo@@!  !  @@!|@#Arg 1functor_parameter@@@Jp@@!  !!  ;@@!}@$Body 1functor_parameter@@@Jq@@! < >! < Y@@!~@@@A@@@@@!@@@@!z@@#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"  < @"  < D@M@гWX" < HV@@]:W@@@@Y@@A@U@@3""""""""@:@AVY@%ErrorP"" [ e"# [ j@#! @@@@J@@A", [ ["- [ y@@">@@г +explanation"8 [ n @@3"6"5"5"6"6"6"6"6@]@A@@@@@@@A+0application_nameQ"F { "G { @@;@@1Anonymous_functor@@"P  "Q  @v , [(functor (_:sig end) -> struct end)(Int)] "^  "_  @@@@@@@"p@5Full_application_path)Longident!t@@@J@@"p  "q !@0 [F(G(X).P)(Y)] "~ !" !@@@@@@@"@6Named_leftmost_functor !t@@@J@@"!!"!!C@9 [F(struct end)...(...)] "!!D"!!b@@@@@@@"@@@A@@@@@" { {@@@@"@@#YY"  W@H@@@Z"}XW@WW@@@W@W@#SS"  "  @:@гU)Longident"  " !@Z" !X@Y@@c3""""""""@;@@@A@@@@@0@@@.@A _@@@@a"_^@^^@@@^@^@#ZZ"!!"!!4@C@г\)Longident"!!8"!!A@c"!!Ba@b@@j'c@@@@e "Ɛcb@bb@@@b@b@@A@^@@3""""""""@2@A_p@+Apply_errorR#!d!n# !d!y@#"@#loc@@ !t@@@JӰ#!!#!!@@#)@#env@@!t@@@Jְ#%!!#&!!@@#7@(app_name@@@@@Jٰ#1!!#2!!@@#C@%mty_f@@!+module_type@@@Jܰ#>!!#?!!@@#P@$args@@"@!1functor_arg_descr@@@Jߠ@!+module_type@@@J@@J@@@J#]!!#^!"$@@#o@@@A#a!d!d#b"%"(@@#s@@#ZZS#j!!@R@@Ш@г](Location#u!!#v!!@d#y!!#z!!@@@l3#y#x#x#y#y#y#y#y@<6@A @@q@@J@k@#gg`#!!@_@@Ш@гj#Env#!!#!!@q#!!#!!@@@y@@|@@J@v@#rrm#!!@l@@Ш@гu0application_name#!!#!!@@}-@@@@J0@|@#xxr#!!@q@@Ш@г{|#!!#!!@@>@@@@JA@@#||d#!!@c@@Ш@г$list#!"#!""@В@г%Error#!!#!!@#!!#!"@@@d@@@г%Types#!" #!"@#!"#!"@@@v@@@w@@@x#!!+@@@@J|@@@@@@|@3expand_module_alias$"*".$"*"A@б*strengthenг#$bool$"*"N$"*"R@@ @@@J3$$$$$$$$@ @A@@б@г!t#Env$#"*"V$$"*"Y@ $'"*"Z$("*"[@@@@@@J @@б@г!q!t$Path$;"*"_$<"*"c@ $?"*"d$@"*"e@@@@@@J2 @@г"+module_type%Types$Q"*"i$R"*"n@ $U"*"o$V"*"z@@@@@@JH @@@@@J@@JM& @@@;@@J @@JRC@@cZ@@J @@JW$k"*"C@@@$n"*"*@@$@@@@^6Functor_inclusion_diffS${"|"$|"|"@$@@Б$DefsT$""$""@$@@БA+$leftU$""$""@@;@@"'A#1functor_parameter@@@J@@@@$""$""@@@@$@@@Aг %Types$""$""@$""@@@3$$$$$$$$@N$;@@@A,@@@J@J@@@@@@@@A@@ @@3$$$$$$$$@ @A! @A+%rightV$""$""@@;@@"\A@@@@J@@@@$""$""@@@@$@@@Aг $left$"" @@3$$$$$$$$@-PJ;@@@A#@@@K@J@@@@@@@@A@@@@3$$$$$$$$@ @A@A+"eqW$""$""@@;@@"A% /module_coercion@@@K@@@@%""%"#@@@@%@@@Aг )Typedtree%""%"#@%"#@@@3%%%%%%%%@6PJ$;@@@A,@@@K @K@@@@@@@@A@@ @@3%"%!%!%"%"%"%"%"@ @A! @A+$diffX%0##!%1##%@@;@@"A#5functor_param_symptom#1functor_parameter@@@K$@@@K@@@K@@@@%G##%H##c@@@@%Y@@@Aг%Error%S##H%T##M@%W##N@@г %Types%b##)%c##.@'%f##/%g##@@@@/3%f%e%e%f%f%f%f%f@Ruo@;@@@AH@@@K@K@@@@/@@@,@A@@г6$unit%}##B%~##F@@>@@@L%##(:@@<@@3%%~%~%%%%%@@A=<@A+%stateY%#d#m%#d#r@@;@@#A@@@@@%#d#h@@@@%@@@A@@@3%%%%%%%%@*ic@A@@A@A@A@rlA@A@@3%%%%%%%%@@A 3%%%%%%%%@@A%""%#s#x@@@%""@@A+-inclusion_envZ%#y#%#y#@@;@@%i_env@@!t@@@K#%#y#%#y#@@%@'i_subst@@!t@@@K&%#y#%#y#@@%@@@A@@@@@%#y#{%#y#@@@@%@@#!!%#y#@@@Ш@г$#Env%#y#%#y#@+%#y#%#y#@@@33%%%%%%%%@8k@_YA@,&A@A@A@tnA@@@VpN;@@@A@@@@@,@@@)@A@@G@@K$@A@#==6&#y#@5@@Ш@г@%Subst&#y#&#y#@G&#y#E@F@@N)G@@Q@@K',@K@@A@G@@3&&&&&&&&@+@AHG@$diff&$##&%##@б@г|-inclusion_env&/##&0##@@ @@@K83&1&0&0&1&1&1&1&1@F@A@@б@В@г%$list&D##&E##@г$1functor_parameter%Types&R##&S##@ &V##&W##@@@@@@K9( @@@ @@@K;-@@@г$+module_type%Types&o##&p##@ &s##&t#$@@@@@@K<E @@@@!@ @@K=L/ @@б@В@г%$list&$$"&$$&@г$1functor_parameter%Types&$$ &$$@ &$$&$$!@@@@@@K>r @@@ @@@K@w@@@г%+module_type%Types&$$)&$$.@ &$$/&$$:@@@@@@KA @@@@!@ @@KB/ @@г'Diffing&DefineO%patch'Diffing&$>$B&$>$I@&$>$J&$>$P@@$Defs&$>$Q&$>$U@&$>$V@&$>$W&$>$\@@@)@@@LYð@@@8@@LZ@@L[Ȱa @@@@@L\ @@L]Ͱ@@@@@L^ @@L_Ұ@@@' ##@@'@@@@@@m@h@@b\A@ @@3''''''''@@A 3''''''''@^@A'"|"'$]$`@@@'"|"|@@0Functor_app_diff[''$b$i'($b$y@'9@@Б$Defs\'7$$'8$$@'I@@БA+$left]'F$$'G$$@@;@@$A@%1functor_arg_descr@@@La@%+module_type@@@Lb@@Lc@@@@']$$'^$$@@@@'o@@@AВ@г%Error'm$$'n$$@'q$$'r$$@@@&3'q'p'p'q'q'q'q'q@@@A@A@A@YSA@A@@@@@A@k@@@qI;@@@AQ@@@Ll@L`@@@@8@@@5@A(#@@@гA%Types'$$'$$@H'$$F@G@@O1H@@@\2:I@@K@@3''''''''@2@ALK@A+%right^'$$'$$@@;@@%?A&1functor_parameter@@@Lp@@@@'$$'$$@@@@'@@@Aг %Types'$$'$$@'$$@@@3''''''''@\$;@@@A,@@@Lu@Lo@@@@@@@@A@@ @@3''''''''@ @A! @A+"eq_'$%'$%@@;@@%tA'/module_coercion@@@Lx@@@@'$$'$%@@@@(@@@Aг )Typedtree'$%'$%@($%@@@3((((((((@6YS$;@@@A,@@@L}@Lw@@@@@@@@A@@ @@3(( ( (((((@ @A! @A+$diff`(%%((%%,@@;@@%A&r5functor_param_symptom&x1functor_arg_descr@@@L'@@@L@@@L@@@@(3%%#(4%%j@@@@(E@@@Aг%Error(?%%O(@%%T@(C%%U@@г %Error(N%%0(O%%5@'(R%%6(S%%G@@@/3(R(Q(Q(R(R(R(R(R@Ruo@;@@@AH@@@L@L@@@@/@@@,@A@@г6$unit(i%%I(j%%M@@>@@@L(m%%/:@@<@@3(k(j(j(k(k(k(k(k@@A=<@A+%statea(y%k%t(z%k%y@@;@@&A@@@@@(}%k%o@@@@(@@@A@@@3(|({({(|(|(|(|(|@*ic@A@@B@@8@@ @@3)p)o)o)p)p)p)p)p@ @A3)s)r)r)s)s)s)s)s@@A)x$b${)y&&@@@){$b$b@@@'@@'@@A@yA@A@{@t.@&@F @@@@@@@@@b@[ @  @ i @  @  @  A@/)A@B@mgA@B@G@?@@9@@@D@?@@@3))))))))@E@@{A@A@A@A@VPA@@@8@@3d@@@S@AAQ'DiffingD@AC@AB@A A@A} @@AMAA 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 *3M*4M@ H*************************************************************************9N*: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 *Ku*Lu@ * Map indexed by both field types and names. This avoids name clashes between different sorts of fields such as values and types. . Typechecking *TEE*UEW@ * [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. q * [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 9& kind *c6i*d6s@ -* [(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** J/home/ci/builds/workspace/precheck/flambda/false/label/ocaml-ubuntu-latest >10/.-,+*)('&%$#"! @@0 F|OāB3********@*@@(Asttypes0eT$BbRM dc%Btype07zx# 5Build_path_prefix_map0DGl}%Y5Lhi8CamlinternalFormatBasics0|.e1R$|o0CamlinternalLazy0zY# #4#-*Cmi_format08zR^&C0 qQ4ߨ3נjq*Data_types0v\3,Svh'Diffing06vmߣ1Diffing_with_keys0.*WЃzV)j⠠,Identifiable0]/*N '0 XNrּ9-VѠ+'00a- %O)Load_path0,j " nn7ݠ(Location0nBɊOn?7~ؠ)Longident0wP q;ɡ$Misc0]\/j*^e+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__Format0b HvkR/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{&@00a- %OA#z"@S]%$@#P"@ @tE@8C @ o!Ǔ!().@̐@@#"Z##@@@!!@@@0@@do@7@?R)֕)@&&)(@Г!d!&%K))@&ޓ&@}  @!_!@(p'@@@ _ >@)3(@Օn)`@H4  @@  k@  <((@  %"I@@ސz&'*@%@z)Z)-@@   W  =!!~@ϒ  j"4"&%*8*@@Ք 6@  _&@@@ԐŖ@@  b@@@@@@@@!̓!@&&@@$ Г @= ͓ *@##a&t%@@!@  c@(') (@@9C@@  %>%@̒@@#ە# @@ d n@@@@0&&@ Ǔ ]!u@@@@@| !h@@&\$&%@&&ǰ**@@!ړ!(ד(@D @$Z#@@G@&z$%͓%@!!@&b"A&%>@''b@@p5@$$%%t@@  U(Ւ){@@l!@! g@@ G' &|@@@  @@@*J*q@ ]  =''@    Y&$''@!!0@@?I ד :=@++#@@ t 1!! @* )@@@@@@P@@