Caml1999I037Ǿ#0|])Odoc_info(ref_kind;@@)RK_module@@6ocamldoc/odoc_info.mliTT@@C@.RK_module_type@@ U U@@D@(RK_class@@VV@@#E@-RK_class_type@@WW@@,F@(RK_value@@%X&X@@5G@'RK_type@@.Y/Y'@@>H@,RK_extension@@7Z(*8Z(8@@GI@,RK_exception@@@[9;A[9I@@PJ@,RK_attribute@@I\JLJ\JZ@@YK@)RK_method@@R][]S][h@@bL@*RK_section$text@@@@@b^ikc^i@@rM@+RK_recfield @@k_l_@@{N@(RK_const!@@t`u`@@O@@@A*Odoc_types(ref_kind@@@@@@@S @@@@@@A@,text_element;@@#Raw5&stringQ@@@@@cc@@P@$Code6@@@@@dd@@Q@'CodePre7@@@@@e#%e#8@@R@(Verbatim8,@@@@@fikfi@@S@$Bold9n@@@@@gg@@T@&Italic:{@@@@@hh@@U@)Emphasize;@@@@@ii@@V@&Center<@@@@@jj-@@W@$Left=@@@@@kDFkDT@@X@%Right>@@@@@llnll}@@Y@$List?$listK@@@@@@@@"m#m@@2Z@$Enum@@@@@@@@@4n5n@@D[@'NewlineA@@=o>o@@M\@%BlockB@@@@@JpKp)@@Z]@%TitleC#intA@@@&optionL@@@@@@ @@@@@jqJLkqJq@@z^@%LatexD@@@@@xsys@@_@$LinkE@@@+@@@@@tt@@`@#RefF@@@>@@@@@@HK@@@@@@@@u $ &u $ U@@a@+SuperscriptGY@@@@@y  y  @@b@)SubscriptHf@@@@@z # %z # 8@@c@+Module_listIC@@@@@@@@{ L N{ L j@@d@*Index_listJ@@}  }  @@e@&CustomK[@@@ܠ@@@@@~  ~  @@f@&TargetLm@@@ڠr@@@@@ 3 5 3 P@@g@@@A,text_element@@@@@@@b @@@@ A@B@;@@@A@@@@@@@@@@"B  #B  @@@@2B@B@'see_ref;@@'See_urlN@@@@@6F N R7F N c@@Fi@(See_fileO@@@@@DG d fEG d z@@Tj@'See_docP@@@@@RH { }SH { @@bk@@@A'see_ref@@@@@@@]E * * @@@@lh@A@ +Text_syntax##exnG@@@@@@@@@@@@A&_none_@@A@l@B@#see;@@@A@b@@@@1@@@@@@@@@O J JO J c@@@@m@A@%param;@@@A@@@@ @I@@@ @@ @@@@R  R  @@@@n@A@0raised_exception;@@@A@'@@@ @a@@@ @@@@@@U  U  @@@@o@A@%alert;@@*alert_nameV@@>@@@X#%X#9@@q@-alert_payloadW@@N@@@@@@Y:<Y:Z@@r@@@Ao%alert@@@@@@@WZ[\@@@@p@A@$info;@@&i_descY@@@@@-@@@.``@@t@)i_authorsZ@@@@@+@@@,aa,@@%u@)i_version[@@ @@@)@@@*&bZ^'bZx@@6v@&i_sees\@@@@@'@@@(7c8c@@Gw@'i_since]@@@@@%@@@&HdId@@Xx@(i_before^@@8@@@@"@@@@!@@#@@@$bece?@@ry@,i_deprecated_@@@@@@@@ rfswsfs@@z@(i_params`@@b@@@@@@gg@@{@3i_raised_exceptionsa@@s@@@@@@hh>@@|@.i_return_valueb@@AD@@@@@@ieiie@@}@(i_customc@@@$@@@@^@@@@@@@@jj@@~@(i_alertsd@@@@@@@@k k %@@@@@A[$info@@@/@@@@_llo@@@@s@A@(location;@@(loc_impl@@(Location!t@@@2@@@3pp@@A@)loc_inter@@!t@@@0@@@1q" qA@@B@@@A(location@@@4@@@@or\_@@@@#@@A@)dummy_loc?@@@5@ uzz!uz@@0C@@Ӡ$Name@!t;@@@A@@@@@@@5z6z@@@@ED@A@&simple@@@@@@@@@@G}H}*@@WE@@&concat@@@@@@@@@@@@@@@@]sy^s@@mF@@%depth@(@@@@@@@@@op2@@G@@,get_relative@:@@@@?@@@B@@@@@@@@@@H@@0get_relative_opt@P@@@@U@@@X@@@@@@@@ /@@I@@&father@f@@@i@@@@@@@@J@@@@x@K@@@Ӡ)Parameter@+simple_name;@@'sn_name@@4@@@@@M@'sn_typeA@@%Types)type_expr@@@@@O@'sn_textBA@@@@@@@ @@P@@@A.Odoc_parameter+simple_name@@@@@@@_c @@@@L@A@*param_info;@@+Simple_nameNL@@@@@   @@R@%TupleO@@@@@@M)type_expr@@@@@#$@@@3S@@@A;*param_info@@@@@@@. @@@@=Q@A@)parameter;@@@A!@@@@@@@;nr<n@@@@KT@A@-complete_name@@@@@@@@@@NO-@@^U@@#typ@@@@)type_expr@@@@@@bW[cW@@rV@@%names@'@@@X@@@@@@@@@yz@@W@@,desc_by_name@>@@@@@@@25@@@@@@@@@@@@@X@@,type_by_name@Z@@@@@@@)type_expr@@@@@@@@JNJ@@Y@@@@@Z@@@Ӡ)Extension@,private_flag;@@'PrivateX@@!@@\@&PublicY@@"*@@]@@@A.Odoc_extension,private_flag@@@~@@@@ @@A@[@A@/extension_alias;@@'xa_namer@@!t@@@@@a@%xa_xtsA@7t_extension_constructor@@@@@@5?5o@@b@@@A3/extension_alias@@@@@@@@@@@^@A@;@@'xt_namet@@0!t@@@ !@@0c@'xt_args~@@)Odoc_type0constructor_args@@@0#1G@@@d@&xt_ret@@ݠl)type_expr@@@@@@CHRDHr@@Se@1xt_type_extension@@0t_type_extension@@@QR@@af@(xt_alias@@}@@@@@@b  c  6@@rg@&xt_locA@(location@@@p i sq i @@h@'xt_textA@$info@@@@@@    @@i@@@A7t_extension_constructor@@@@@@@  @@@@_@B@F;@@'te_infoA@?@@@@@@!@!J!@!i@@j@,te_type_name@@!t@@@!!!!@@k@2te_type_parameters@@)type_expr@@@@@@!!!"@@l@*te_private@@@@@"")""D@@m@/te_constructorsA@@@@@@@"E"O"E"@@n@&te_locA@@@@""""@@o@'te_codeA@f@@@@@@""""@@ p@@@A*0t_type_extension@@@@@@@  ""@@@@`@B@6extension_constructors@@@@@@@@@@@@@####d@@,q@@@@ !#f#k@0r@@@Ӡ)Exception@/exception_alias;@@'ea_name@@I!t@@@p9$v$:$v$@@Iu@%ea_exA@+t_exception@@@n@@@oL$$M$$@@\v@@@A.Odoc_exception/exception_alias@@@q@@@@Y$0$4Z% %)@@@@is@A@;@@'ex_name@@z!t@@@|j%h%rk%h%@@zw@'ex_infoA@@@@z@@@{z%%{%%@@x@'ex_args@@Z0constructor_args@@@y%%%&@@y@&ex_ret@@5)type_expr@@@w@@@x&&&&&G@@z@(ex_alias@@H~@@@u@@@v&z&&z&@@{@&ex_locA@@@@t&&&&@@|@'ex_codeA@d3@@@r@@@s'' ''+@@}@@@A|+t_exception@@@}@@@@%+%/','5@@@@t@B@@@##'6';@~@@@Ӡ$Type@,private_flag;@@'Private@@''''@@@&Public@@''''@@@@@A,private_flag@@@<@@@@'' @@A@@A@,record_field;@@'rf_name@@}@@@B(4(>(4(P@@!@*rf_mutable@@$boolE@@@A(k(u (k(@@/@)rf_atomic@@@@@@+((,((@@;@'rf_type@@c)type_expr@@@?9((:((@@I@'rf_textA@@@@=@@@>I ))#J ))B@@Y@@@A&,record_field@@@C@@@@T''U )y)@@@@d@A@0constructor_args;@@+Cstr_recordLf@@@F@@@G@@m))n)*@@}@*Cstr_tuple_)type_expr@@@D@@@E@@**"**F@@@@@A_0constructor_args@@@H@@@@ )) @@@@@A@3variant_constructor;@@'vc_name@@ @@@N****@@@'vc_args@@O@@@M****@@@&vc_ret@@W)type_expr@@@K@@@L***+@@@'vc_textA@j+@@@I@@@J+ +*+ +I@@@@@A3variant_constructor@@@O@@@@*H*L++@@@@@A@)type_kind;@@-Type_abstract@@++++@@@,Type_variantÐ٠f@@@S@@@T@@,$,*,$,T@@ @+Type_recordĐ@@@Q@@@R@@ ,|, ,|,@@ @)Type_openŐ@@  ,,  ,,@@ %@-Type_externalƐ@@@P@@ #!,, $!,- @@ 3@@@A)type_kind@@@U@@@@ .++ @@@@ =@A@,object_field;@@'of_name@@@@@Y ?%-- @%--@@ O@'of_type@@w)type_expr@@@X M&-- N&--@@ ]@'of_textA@$info@@@V@@@W `'-- a'--@@ p@@@A=,object_field@@@Z@@@@ k$-V-Z l(..@@@@ {@A@-type_manifest;@@%Other̐)type_expr@@@]@@ +.P.V +.P.p@@ @+Object_type͐s_@@@[@@@\@@ ,.. ,..@@ @@@Aq-type_manifest@@@^@@@@ *..! @@@@ @A@&t_type;@@'ty_name@@!t@@@l 1/#/- 1/#/?@@ @'ty_infoA@^@@@j@@@k 2/b/l 2/b/@@ @-ty_parameters@@@)type_expr@@@g@ (Variance!t@@@f@@h@@@i 3// 3/0@@ @'ty_kind@@@@@e 50L0V 50L0j@@ @*ty_private@@@@@d 60}0 60}0@@ @+ty_manifest@@@@@b@@@c 700 700@@ @&ty_locA@@@@a 800 801@@ &@'ty_codeA@à @@@_@@@` '911  (911@@@ 7@@@A&t_type@@@m@@@@ 2/.. 3:1A1J@@@@ B@A@@@ 6'm'm 7<1L1Q@ F@@@Ӡ%Value@'t_value;@@(val_name@@_!t@@@) OD22  PD223@@ _@(val_infoA@@@@'@@@( _E2W2a `E2W2@@ o@(val_type@@)type_expr@@@& mF22 nF22@@ }@-val_recursive@@\@@@% yG33  zG33 @@ @.val_parametersA@ i)parameter@@@#@@@$ H3J3T H3J3@@ @(val_codeA@ 9 @@@!@@@" I33 I33@@ @'val_locA@@@@  J4#4- J4#4I@@ @@@A*Odoc_value't_value@@@*@@@@ B11 K4J4S@@@@ @A@+t_attribute;@@)att_value@@@@@- P44 P44@@ @+att_mutable@@@@@, Q5"5, Q5"5@@@ @+att_virtual@@@@@+ R5m5w R5m5@@ @@@A7+t_attribute@@@.@@@@ N44 S55@@@@ @A@(t_method ;@@)met_value@@5@@@1 X6$6. X6$6C@@ @+met_private@@@@@0 Y66 Y66@@ @+met_virtual@@@@@/ Z66 Z66@@ #@@@Ak(t_method@@@2@@@@ V55 [77@@@@ .@A@+is_function @f@@@3@@@4@@5@ 0^7q7u 1^7q7@@ @@@#cct@@@@@@@ p99 @@@@ @A@/inherited_class;@@'ic_name,@@!t@@@ v:: v::@@ @(ic_class-A@ X@@@@@@ w:: w:;@@ @'ic_text.@@  @@@@@@ x;7;A x;7;X@@ @@@A|/inherited_class@@@@@@@ t:S:W y;;@@@@ @B@+class_apply;@@)capp_name/@@2!t@@@ "};; #};;@@ 2@*capp_class0A@ Ϡ@@@@@@ 2~<1>; >1>f@@ @@@A,class_constr@@@@@@@ =7=; >>@@@@ @B@*class_kind;@@/Class_structure6 @@@@@@ g@@@@@@@@ >> >?@@ @+Class_apply7@@@@@ ?j?p ?j?@@ @,Class_constr8y@@@@@ ?? ??@@ @0Class_constraint9F@@@/class_type_kind@@@@@ AA AAP@@ @@@An*class_kind@@@@@@@ >> @@@@ @B@_;@@'cl_name:@@!!t@@@İ AA AA@@ !@'cl_info;A@ @@@@@@ð !BB( "BBG@@ 1@'cl_type<@@Y*class_type@@@ /BB 0BB@@ ?@2cl_type_parameters=@@ k)type_expr@@@@@@ BBB CBB@@ R@*cl_virtual>@@1@@@ NCC OCC1@@ ^@'cl_kind?A@k@@@ YC[Ce ZC[C@@ i@-cl_parameters@A@ I)parameter@@@@@@ lCC mCC@@ |@&cl_locAA@ X@@@ wD D xD D/@@ @@@A't_class@@@@@@@ AA D0D9@@@@ @B@0class_type_alias;@@(cta_nameB@@!t@@@ʰ D~D D~D@@ @)cta_classCA@ B@@@@@@ɰ DD DD@@ @3cta_type_parametersD@@ )type_expr@@@@@@ǰ E1E; E1Eg@@ @@@A00class_type_alias@@@@@@@ D;D? EE@@@@ @B@;@@/Class_signatureE @@@@@@Р  @@@@@@@@ EE EF@@ @*Class_typeFg@@@@@ F F& F FF@@@@@Ah/class_type_kind@@@@@@@ EE @@@@ @B@I;@@(clt_nameG@@!t@@@ڰ FF FG@@@(clt_infoHA@ y@@@@@@ٰG#G-G#GM@@+@(clt_typeI@@ S*class_type@@@װ)GG*GG@@9@3clt_type_parametersJ@@  e)type_expr@@@@@@ְ<GG=GG@@L@+clt_virtualK@@+@@@԰HHH IHH @@X@(clt_kindLA@`@@@ӰSHLHVTHLHz@@c@'clt_locMA@ ?@@@Ұ^HH_HH@@n@@@A,t_class_type@@@@@@@iFFjHH@@@@y@B@.class_elements%trans a@@@@@@@@@@ l@@@@@@@@@@@II#IId@@@@0class_attributes%trans#@@@@@@@@@@ D+t_attribute@@@@@@@@@@@IIII@@@@@,mp_type_code@@@@@:T`Th;T`T@@J@'mp_kind@@0module_type_kind(@@@HTTITT@@X@@@A0module_parameter@@@@@@@SSSTTT@@@@c@B@+module_kind%;@@-Module_structK@@@@@@@@l UFULm UFUr@@|@,Module_alias@@@@@z UU{ UU@@@.Module_functorx@@@3@@@@@ UU UV1@@@,Module_apply@@@@@@@@VVVV@@@1Module_apply_unit@@@@@WW WW/@@@+Module_withs@@@)@@@@@WsWyWsW@@@1Module_constraint>@@@@@@@@X-X3X-Xh@@@-Module_typeofH@@@@@XXXX@@@-Module_unpackV@@@1module_type_alias'@@@@@YYYY3@@@@@A+module_kind@@@@@@@ UU @@@@ @B@*;@@&m_name@@ !t@@@ YY YY@@@&m_typeA@ D+module_type@@@ZZZZ2@@*@&m_infoA@Ǡ @@@@@@* ZRZ\+ ZRZz@@: @.m_is_interface@@ @@@6!ZZ7!ZZ@@F!@&m_file@@@@@B"[[C"[[)@@R"@&m_kindA@@@@M#[T[^N#[T[|@@]#@%m_locA@9@@@X$[[Y$[[@@h$@*m_top_depsA@H y!t@@@@@@j%[[k%[[@@z%@&m_codeA@@@@@@@{&\/\9|&\/\Y@@&@+m_code_intfA@(@@@@@@'\~\'\~\@@'@+m_text_only@@ {@@@(\\(\]@@(@@@A3(t_module@@@@@@@YY)]5]>@@@@@B@;@@(mta_name@@ !t@@@-]]-]]@@)@*mta_moduleA@a@@@@@@.]].]^ @@*@@@A_1module_type_alias@@@@@@@+]@]D/^@^I@@@@@B@;@@2Module_type_structŐŠz@@@@@@@@3^^3^^@@+@3Module_type_functorƐk@@@@@@@@4__ 4__H@@,@1Module_type_aliasǐ@@@@@6__6__@@-@0Module_type_withȐ@@@@@@@@8``#8``R@@%.@2Module_type_typeofɐ@@@@@#:``$:``@@3/@@@A0module_type_kind@@@@@@@.2^v^z @@@@=@B@L;@@'mt_name@@ N!t@@@>@aqa{?@aqa@@N0@'mt_infoA@ @@@@@@NAaaOAaa@@^1@'mt_typeA@+module_type@@@@@@aBbb(bBbbT@@q2@/mt_is_interface@@ P@@@mCbbnCbb@@}3@'mt_file@@@@@yDbbzDbb@@4@'mt_kindA@&C@@@@@@Ec/c9Ec/cd@@5@&mt_locA@u@@@IdydIdyd@@6@@@A/-t_module_type@@@@@@@>a3a7Jdd@@@@@B@/module_elements*%trans6 @@@@@@@@@@V@@@@@@@@@@@OdeOdeG@@7@@.module_modules+%transX @@@@@@@@@@à @@@@@@@@@@@Reze~Reze@@8@@3module_module_types,%transz @@@@@@@&@@@@@@@@@@@@@@UeeUef;@@9@@7module_included_modules-%trans @@@@@@@H@@@/@@@@@@@@@@@'Xftfx(Xftf@@7:@@6module_type_extensions.%trans @@@@@@@j@@@)0t_type_extension@@@@@@@@@@@K[fgL[fgV@@[;@@1module_exceptions/%trans B@@@@@@@@@@M'+t_exception@@@@@@@@@@@o^ggp^gg@@<@@,module_types0%trans f@@@@@@@@@@q;&t_type@@@@@@@@@@@ahh ahhH@@=@@-module_values1%trans* @@@@@@@@@@ K't_value@@@@@@@@@@@dhwh{dhwh@@>@@0module_functions2%transN @@@@@@@@@@ o't_value@@@@@@@@@@@ghhghi9@@?@@4module_simple_values3%transr @@@@@@@@@@ݠ 't_value@@@@@@@@@@@jisiwjisi@@@@@.module_classes4%trans @@@@@@@B@@@'t_class@@@@@@@@@@ @#mii$mij3@@3A@@2module_class_types5%trans @@@ @@@ @f@@@ %=,t_class_type@@@ @@@@@@@@GpjgjkHpjgj@@WB@@2module_all_classes6%transޠ >@@@@@@@@@@Ia't_class@@@@@@@@@@@kskklskk[@@{C@@1module_is_functor7@@@@ `@@@@@@}vkk~vkk@@D@@1module_parameters8%trans t@@@@@@@@@@@@@@ @IL@@@@@@@@!@@@"@@#@@$@yllyll[@@E@@/module_comments9%transD @@@%@@@&@@@@'o@@@(@@@)@@*@@+@|ll|ll@@F@@4module_type_elements:%transf @@@,@@@-@@@@.Ѡ@@@/@@@0@@1@@2@m#m'm#mt@@G@@3module_type_modules;%trans @@@3@@@4@$@@@5;@@@6@@@7@@8@@9@mmmm@@#H@@8module_type_module_types<%trans @@@:@@@;@F@@@<M@@@=@@@>@@?@@@@5n0n46n0n@@EI@@%transN@@@H@@@I@@@@JY3+t_exception@@@K@@@L@@M@@N@{oToX|oTo@@K@@1module_type_types?%transr@@@O@@@P@@@@Q}G&t_type@@@R@@@S@@T@@U@ooop,@@L@@2module_type_values@%trans6@@@V@@@W@@@@X W't_value@@@Y@@@Z@@[@@\@p`pdp`p@@M@@5module_type_functionsA%transZ@@@]@@@^@@@@_Š {'t_value@@@`@@@a@@b@@c@pppq:@@N@@9module_type_simple_valuesB%trans~@@@d@@@e@@@@f 't_value@@@g@@@h@@i@@j@ qyq} qyq@@O@@3module_type_classesC%trans@@@k@@@l@>@@@m %'t_class@@@n@@@o@@p@@q@/rr0rrR@@?P@@7module_type_class_typesD%transƠ&@@@r@@@s@b@@@t1I,t_class_type@@@u@@@v@@w@@x@SrrTrr@@cQ@@7module_type_all_classesE%transJ@@@y@@@z@@@@{Um't_class@@@|@@@}@@~@@@wsEsIxsEs@@R@@6module_type_is_functorF@@@@l@@@@@@ssst@@S@@6module_type_parametersG%trans @@@@@@@@@@@'@@@@UX@@@@@@@@@@@@@@@@tLtPtLt@@T@@4module_type_commentsH%trans P@@@@@@@@@@{@@@@@@@@@@@tttu"@@U@@@@NhNhu#u(@V@@@0reset_type_names@$unitF@@@6@@@7@@8@vUvUvUvx@@W@@2string_of_variance@&t_type@@@9@7(Variance!t@@@:~@@@;@@<@@=@w@w@w@w@@"X@@3string_of_type_expr@M)type_expr@@@>@@@?@@@@'ww(ww@@7Y@@6string_of_class_params@.'t_class@@@A@@@B@@C@;xjxj<xjx@@KZ@@3string_of_type_list#par Ҡ2@@@D@@@E@@@@F@@)type_expr@@@G@@@H@@@I@@J@@K@@L@gyyhyyW@@w[@@9string_of_type_param_list@ &t_type@@@M@@@N@@O@{yy|yy@@\@@ #string_of_type_extension_param_list@T0t_type_extension@@@P@@@Q@@R@zfzfzfz@@]@@?string_of_class_type_param_list@)type_expr@@@S@@@T@@@U@@V@{C{C{C{@@^@@5string_of_module_type$code @)@@@W@@@X(complete L@@@Y@@@Z@+module_type@@@[B@@@\@@]@@^@@_@|||}&@@_@@4string_of_class_type(complete m@@@`@@@a@*class_type@@@bc@@@c@@d@@e@}}}~(@@`@@.string_of_text@@@@fu@@@g@@h@ ~L~L ~L~o@@a@@.string_of_info@v@@@i@@@j@@k@~~~~@@+b@@.string_of_type@&t_type@@@l@@@m@@n@/~~0~ @@?c@@0string_of_record@",record_field@@@o@@@p@@@q@@r@H""I"Y@@Xd@@8string_of_type_extension@ !0t_type_extension@@@s@@@t@@u@\]@@le@@3string_of_exception@ %+t_exception@@@v@@@w@@x@pqP@@f@@/string_of_value@'t_value@@@y@@@z@@{@@@g@@3string_of_attribute@)+t_attribute@@@|@@@}@@~@$@@h@@0string_of_method@=(t_method@@@@@@@@@\\\@@i@@6first_sentence_of_text@[@@@^@@@@@@@@j@@?first_sentence_and_rest_of_text@l@@@@s@@@@x@@@@@@@@  "@@k@@5text_no_title_no_list@@@@@@@@@@ ^^ ^@@l@@+text_concat@z$text@@@@$text@@@@@@$text@@@@@@@@  5@@m@@2get_titles_in_text@@@@@@@@@͠@@@@@@@@@@@@@@@@@@78@@Gn@@2create_index_lists@*!a@@@@@@ @@@@@;?@@@@@@@@@@@]^`@@mo@@-remove_option@)type_expr@@@)type_expr@@@@@@t u ;@@p@@+is_optional@(Asttypes)arg_label@@@n@@@@@@#qq#q@@q@@*label_name@)arg_label@@@ @@@@@@''+@@r@@2use_hidden_modules@!t@@@!t@@@@@@,,@@s@@'verbose@0@@@@@@@@@/BB/B^@@t@@'warning@C@@@@@@@@@44@@u@@.print_warnings&Stdlib#ref@@@@@@@7HH7He@@v@@&errors#ref@@@@@@@==1@@w@@)apply_opt@@!a@!b@@@@@@@Š@@@@@@@@%@aa&@a@@5x@@.apply_if_equal@@!a@@@@@@@@@@@@:E));E)Z@@Jy@@.text_of_string@@@@@@@@@@LJMJ@@\z@@3text_string_of_text@@@@@@@@@@^O_O@@n{@@.info_of_string@@@@@@@@@@pVqV@@|@@4info_of_comment_file@c (t_module@@@@@@@@@@@@@@@@@@_  _ N@@}@@5remove_ending_newline@ @@@@@@@@@bb@@~@@Ӡ&Search@.result_elementI;@@*Res_module9(t_module@@@+@@h=Gh=d@@@/Res_module_typeH-t_module_type@@@*@@iemie@@@)Res_class 't_class@@@)@@jj@@@.Res_class_type ,t_class_type@@@(@@kk@@@)Res_value't_value@@@'@@ll@@ @(Res_type &t_type@@@&@@m m1@@@-Res_extension  7t_extension_constructor@@@%@@n2:n2n@@'@-Res_exception! +t_exception@@@$@@&oow'oo@@6@-Res_attribute"+t_attribute@@@#@@5p6p@@E@*Res_method#(t_method@@@"@@DqEq@@T@+Res_section$@@@!@@@ @@VrWr@@f@,Res_recfield% &t_type@@@ ,record_field@@@@@ks$lsU@@{@)Res_const& #&t_type@@@ )3variant_constructor@@@@@tV^tV@@@@@A+Odoc_search.result_element@@@,@@@@g  @@@@@A@-search_resultJ;@@@A@@@-@@@.@@@@ww@@@@@A@.search_by_nameK@0(t_module@@@/@@@0@#Str®exp@@@10@@@2@@3@@4@zPVzP@@@@&valuesL@S(t_module@@@5@@@6v't_value@@@7@@@8@@9@}}$@@@@*extensionsM@ՠr(t_module@@@:@@@;ߠ 7t_extension_constructor@@@<@@@=@@>@qwq@@@@*exceptionsN@(t_module@@@?@@@@ +t_exception@@@A@@@B@@C@ !\@@0@@%typesO@(t_module@@@D@@@E &t_type@@@F@@@G@@H@?@@@O@@*attributesP@2(t_module@@@I@@@J<+t_attribute@@@K@@@L@@M@^17_1v@@n@@'methodsQ@Q(t_module@@@N@@@O[(t_method@@@P@@@Q@@R@}~@@@@'classesR@p (t_module@@@S@@@Tz 't_class@@@U@@@V@@W@OUO@@@@+class_typesS@,(t_module@@@X@@@Y ,t_class_type@@@Z@@@[@@\@"@@@@'modulesT@K(t_module@@@]@@@^U(t_module@@@_@@@`@@a@lrl@@@@,module_typesU@͠j(t_module@@@b@@@cנt-t_module_type@@@d@@@e@@f@E@@ @@@@eGN@ @@@Ӡ$Scan@Š'scannerV#@*scan_valueA@'t_value@@@2@@@@@@@-scan_type_preA@ &t_type@@@@@@@@@@/scan_type_constA@ &t_type@@@@ 3variant_constructor@@@Y@@@@@@@@@2scan_type_recfieldA@ &t_type@@@@,record_field@@@p@@@@@@@@@)scan_typeA@&t_type@@@@@@@@@@:scan_extension_constructorA@C7t_extension_constructor@@@@@@@@@@.scan_exceptionA@C+t_exception@@@@@@@@@@.scan_attributeA@/+t_attribute@@@@@@@@@@+scan_methodA@?(t_method@@@@@@@@@@4scan_included_moduleA@6/included_module@@@@@@@@@@7scan_type_extension_preA@0t_type_extension@@@@@@@@@@ scan_type_extension_constructorsA@0t_type_extension@@@@@@@@@@3scan_type_extensionA@0t_type_extension@@@@@@@@@@2scan_class_commentA@@@@@@@@@@@.scan_class_preA@'t_class@@@@@@@@@@3scan_class_elementsA@'t_class@@@.@@@@@@@*scan_classA@'t_class@@@>@@@@@@@7scan_class_type_commentA@@@@L@@@@@@@3scan_class_type_preA@=,t_class_type@@@-@@@@@@@8scan_class_type_elementsA@M,t_class_type@@@l@@@@@@@/scan_class_typeA@],t_class_type@@@|@@@@@@@3scan_module_commentA@@@@@@@@@@@/scan_module_preA@(t_module@@@k@@@@@@@4scan_module_elementsA@(t_module@@@@@@@@@@+scan_moduleA@ (t_module@@@@@@@@@@8scan_module_type_commentA@S@@@@@@@@@@4scan_module_type_preA@>-t_module_type@@@@@@@@@@9scan_module_type_elementsA@N-t_module_type@@@@@@@@@@0scan_module_typeA@^-t_module_type@@@@@@@@@@0scan_module_listA@ՠr(t_module@@@@@@ @@@@@@@@@^@?@@@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@[@\X@@]@@x@Ax@@A@AB@A@@A@A@A@@A@ABC@A@ʰ@A@A۰@A@B@A@CD@A@m@Am@A~@A~@@A@AB@A@@A@>@A>@AB@A@R@AR@A@A@f@Af@Aw@Aw@BCDEFа@A@@A@V@AV@ABg@Ag@y@Ay@AC@A@@A@A,@A,@BDG?B@@@>@ C Dnw@@ S@A@Ơ@W#@?R@@°@A@6@A6@ABe@Ae@J@AJ@A[@A[@@A@ABC.@A.@@A@A%@A%@B@A@CD@A@@A@AȰ@A@а@A@AB@A@@A@@A@AB@A@@A@A˰@A@@A@A@A@BCDEF@A@L@AL@@A@AB@A@ð@A@ACb@Ab@>@A>@Av@Av@BDG;@@@A~A}pAobAaMAL8A7*A)AA AAAAAAAAAAxAwjAi\A[NAMBAA4A3&A%A A AAA@_@`@a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@{@|@}Π@@~@@@@@@@@@A@;@@@AHAGAAAAAAAAjAi|A{>A=PAOXAWAlAkAA$A#TAS8A7JAIAA(A':A9LAKAAA@@@@@@@@@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@@@@@@@A@@@!yy!x}@!$@@@Ӡ#Dep@6kernel_deps_of_modulesY@ (t_module@@@/@@@0 E@@@1@@2@!3 -1!4 -j@@!C@@-deps_of_typesZ&kernelʠ*@@@3@@@4@ 2&t_type@@@5@@@6 <@ &t_type@@@9@ K|!t@@@7@@@8@@:@@@;@@<@@=@!nz~!oz@@!~@@@@!r !s@!@@@Ӡ&Global@&errors[#ref 2@@@@@@@!!1@@!@@*warn_error\#ref@@@@@@@!26!2O@@!@@(out_file]#ref!@@@@@@@!!@@!@@'verbose^#ref@@@@@@@!"!"@@!@@*target_dir_#ref!B@@@@@@ @!%,0!%,K@@!@@%title`#ref !Y@@@!@@@"@@@#@!(!(@@!@@*intro_filea#ref !q@@@$@@@%@@@&@"+"+!@@"@@(with_tocb,#ref@@@'@@@(@".pt".p@@"*@@*with_indexc?#ref@@@)@@@*@"-1".1@@"=@@+with_headerdR#ref"@@@+@@@,@"@4/3"A4/M@@"P@@,with_traileree#ref5@@@-@@@.@"S7"T7@@"c@@@@"W"X8@"g@@@-analyse_files-merge_options!O!,merge_option@@@@@@@@@,include_dirs!b!@@@@@@@@@3hidden_include_dirs!s!@@@@@@@@@&labels#@@@@@@,sort_modules/@@@@@@'no_stop;@@@@@@$initG!Z(t_module@@@@@@@@@@!+Odoc_global+source_file@@@@@@!à`(t_module@@@@@@@@@@@@@@@@@@@@@@@"=\\"F@@"@@,dump_modules@"`@@@@!ޠ(t_module@@@@@@ @@@@@@@@#J00#J0n@@#@@,load_modules@"@@@!(t_module@@@@@@@@@#N# N@@#/@@@q͠)Odoc_info0uIg8S$j(Warnings0mJɒkgr*%"e+Outcometree0euWS~d栠*Odoc_value0IlX+KE`*Odoc_types0fX cx3H~)Odoc_type0~b:x_B+Odoc_search0^Tbr`.Odoc_parameter0ץ~D3vNm)Odoc_name0{Y/3.+Odoc_module0z8P@ӽX4Id*Odoc_class0_"#C{$Misc0ob]6>Vê>)Longident0s `7mɕc(Location0a7cK_H%9,Identifiable0 {d\FX'`%Ident0">WA+9*X*Format_doc0]mWϓ:Mݠ0CamlinternalLazy0&͂7 Pˆ8CamlinternalFormatBasics0%FU(Q/Tu5Build_path_prefix_map0z HkGs(Asttypes0>n{T8cئ@@@Caml1999T037fWfH C)Odoc_info*ocaml.text&_none_@@A 9 Interface to the information collected in source files. 6ocamldoc/odoc_info.mliP77P7u@@@@@@3@@@@#intA;@@A@@@@@9@A@$charB;@@A@@@@@>@A@&stringQ;@@A@@@@@C@@@%bytesC;@@A@@@@@H@@@%floatD;@@A@@@@@M@@@$boolE;@@%falsec@@W@$trued@@]@@@A@@@@@^@A@$unitF;@@"()e@@h@@@A@@@@@i@A@ #exnG;@@@A@@@@@m@@@#effH;@@O@A@A@@@@@@v@@@,continuationI;@@Q@@P@B A@nY@@@@@@@@@%arrayJ;@@R@AA@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@A@@@@@@@@%int32N;@@A@@@@@@@@%int64O;@@A@@@@@@@@&lazy_tP;@@X@AA@Y@@@@@@@@ 5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@AA@Y@@@@@@@@ *atomic_locU;@@Z@AA@@@@@@@@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A=ocaml.warn_on_literal_pattern@@0Division_by_zero]#@@@A  @+End_of_file\#$@@@A#&&@'FailureY#,@'@@A,//@0Invalid_argumentX#5@0@@A5$8#8@-Match_failureV#>@@=@9@;@@a@@AF5I4I@)Not_foundZ#O@@@AN=Q<Q@-Out_of_memoryW#W@@@AVEYDY@.Stack_overflow^#_@@@A^MaLa@.Sys_blocked_io_#g@@@AfUiTi@)Sys_error[#o@j@@Ao^r]r@:Undefined_recursive_modulea#x@@w@s@u@@h@@Aon@:Continuation_already_takenb#@@@Awv@&Stdlib@AA+(ref_kindASS@@;@@)RK_module@@TT@@C@.RK_module_type@@UU@@D@(RK_class@@VV@@E@-RK_class_type@@WW@@F@(RK_value@@XX@@G@'RK_type@@YY'@@H@,RK_extension@@Z(*Z(8@@I@,RK_exception@@[9;[9I@@J@,RK_attribute@@\JL\JZ@@K@)RK_method@@][]][h@@L@*RK_section$textA@@@@@^ik^i@@M@+RK_recfield @@__@@N@(RK_const!@@` `@@!O@@@A*Odoc_types(ref_kind@@@i@@@@S @)ocaml.doc' , The different kinds of element references. $Rww%Rw@@@@@@@@@=@@@#@@@@@#1U@@@@@#7V@@@@@#=W@@@@@#CX@@@@@#IY @@@@@#OZ(,@@@@@#U[9=@@@@@#[\JN~@}@@@@#}}a][_{@z@@@~@#zzg^imh^iw@q@г|$textq^i{{@@3oooooooo@q;@@@A@@@!@@@@@ki@@Y,text_elementA;@@@A @@@"@@@@@b 3 P@@@@A@;@@@A@@@#@@@@@B  B  @ 8 A text is a list of [text_element]. The order matters. A  A  @@@@@@@@@B@@A9@@@@@#_@@@@@#`@@@@@@Aг*Odoc_typesSS@SS@@@T@@א@@@@@@+UUbb@@;@@#Raw5@@@j@@cc@ѐ+ Raw text. cc@@@@@@@ P@$Code6@@@k@@dd@퐠< The string is source code. dd"@@@@@@@(Q@'CodePre7@@@l@@e#%e#8@ * The string is pre-formatted source code. +e#9,e#h@@@@@@@DR@(Verbatim8@@@m@@9fik:fi@%1 String 'as is'. GfiHfi@@@@@@@`S@$Bold9a@@@n@@UgVg@A5 Text in bold style. cgdg@@@@@@@|T@&Italic:}@@@o@@qhrh@]1 Text in italic. hh@@@@@@@U@)Emphasize;@@@p@@ii@y2 Emphasized text. ii@@@@@@@V@&Center<@@@q@@jj-@0 Centered text. j.jC@@@@@@@W@$Left=@@@r@@kDFkDT@1 Left alignment. kDUkDk@@@@@@@X@%Right>@@@s@@llnll}@͐2 Right alignment. ll~ll@@@@@@@Y@$List?x @@@t@@@v@@mm@) A list. mm@@@@@@@)Z@$Enum@.@@@w@@@y@@#n$n@5 An enumerated list. 1n2n@@@@@@@J[@'NewlineA@@:o;o@&8 To force a line break. HoIo@@@@@@@a\@%BlockBb@@@z@@VpWp)@B: Like html's block quote. dp*epI@@@@@@@}]@%TitleCH@@@{ՠG@@@|@@@~@@@@@qJLqJq@m ) Style number, optional label, and text. rrrr@@@@@@@^@%LatexDi@@@@@ss@5 A string for latex. ss@@@@@@@_@$LinkE@@@@@@@@tt@ ' A reference string and the link text. tt #@@@@@@@`@#RefF@@@=Z@@@@@@G@@@@@@@@u $ &u $ U@ڐ A reference to an element. Complete name and kind. An optional text can be given to display this text instead of the element name.v V ]x  @@@@@@@a@+SuperscriptG@@@@@ y   y  @/ Superscripts. y  y  "@@@@@@@1b@)SubscriptH2@@@@@&z # %'z # 8@- Subscripts. 4z # 95z # K@@@@@@@Mc@+Module_listI@@@@@@@@G{ L NH{ L j@3 5 The table of the given modules with their abstract. U| k rV| k @@@@@@@nd@*Index_listJ@@^}  _}  @J 7 The links to the various indexes (values, types, ...) l}  m}  @@@@@@@e@&CustomKF@@@@@@@@~  ~  @k8 to extend \{foo syntax ~  ~  2@@@@@@@f@&TargetLg@@@l@@@@@ 3 5@ > (target, code) : to specify code specific to a target format  3 Q 3 @@@@@@@g@@@A,text_element@@@@@@@-@@@*@#ޠްcc@@гࠐ&stringc@@U@@@@䠰ؐ@@@@@@#ݠݰdd@@гߠ&stringd@@p@@@@㠰󐠠@@@@@@#ܠܰe#'e#.@@гޠ&stringe#2@@@@@@⠰@@@@@@#۠۰ fimfiu@@гݠ&stringfiy@@@@@@ᠰ)@@@@@@#ڠڰ(g)g@@гܠ$text2g@@@@@@࠰D@@@@@@#٠ٰChDh@@г۠$textMh@@ܰ@@@@ߠ9_@@@@@@#ؠذ^i_i@@гڠ$texthi@@@@@@ޠTz@@@@@@#נװyjzj%@@г٠$textj)@@@@@@ݠo@@@@@@#ְ֠kDHkDL@@гؠ$textkDP@@-@@@@ܠ@@@@@@#ՠհllpllu@@гנ$textlly@@H@@@@۠ː@@@@@@#Ԡ԰mm@@г֠$listm@гڠ$textmm@@l@@@m@@@@ߠ𐠠@@@@@@#ؠذnn@@гڠ$listn@гޠ$textnn@@@@@@@@@㠰@@@@@@#ܠܰo@@@@ݠ&@@@@@@#ְ֠%p&p!@@гؠ$text/p%@@@@@@ܠA@@@@@@#ՠհ@qJNAqJS@@гנ#intJqJWKqJZ@@ڰ@@гܠ&optionTqJdUqJj@г᠐&string]qJ]^qJc@@@@@ @@г栐$texthqJm@@@@@@꠰Tz@@@@@@#yszs@@г堐&strings@@@@@@頰o@@@@@@#tt@@г䠐&stringtt@@.@@г預$textt@@7@@@@@@@@@@#u $ (u $ +@@г蠐&stringu $ /u $ 5@@S@@г&optionu $ Au $ G@г(ref_kindu $ 8u $ @@@f@@@g @@г&optionu $ O@г$textu $ Ju $ N@@y@@@z@@@@@@@@@@#y  y  @@г$texty  @@@@@@@@@@@@#z # 'z # 0@@г$text!z # 4@@@@@@ 3@@@@@@#2{ L P3{ L [@@г$list<{ L f@г&stringD{ L _E{ L e@@԰@@@ հ@@@@2X@@@@@@#W}  @@@@Ci@@@@@@#h~  i~  @@г&stringr~  s~  @@@@г$text|~  @@ @@@@h@@@@@@# 3 7 3 =@@г&string 3 A 3 G@@'@@г&string 3 J@@0@@@@@@@@@@@Aг*Odoc_typesbb@bb@@@ L@@5@+ϠϰB  B  @@;@@@AHP@@@@@@@@@@:7@@)@@Aг $listB  @@г,text_elementB  B  @@p@@@qK@@MKJ@JJ@@@J@J@@W@A+'see_refMBE * /E * 6@@;@@'See_urlN@@@ @@ F N R F N c@@ !i@(See_fileO@@@ @@ G d f G d z@@ /j@'See_docP@@@ @@ $H { } %H { @@ =k@@@A'see_ref@@@ @@@@ /E * * @ 2 The different forms of references in \@see tags.  <D   =D  )@@@@@@@@@ Uh@@#CC< DF N Y@;@гD&string MF N ]E@@K3 K K K K K K K K@ Na{^;@@@Af@@@@ @@@@.,@@@AT@@@@V@#RR aG d h bG d p@K@гT&string kG d tU@@[V@@@@X@#TT qH {  rH { @M@гV&string {H { W@@].X@@@@Z@@AгV*Odoc_types E * 9 E * C@] E * D E * K@@@e?@@`x _^@^^@@@^@^@@3        @J@Alv@+Text_syntaxQC L   L  @#@ @@@& @@@' @@@(@@A L   L  !@ ^ Raised when parsing string to build a {!Odoc_info.text} structure. [(line, char, string)]  J   K  @@@@@@@ l@@г##int L   L  @@+3        @@A@@г*#int L   L  @@2 @@г/&string L  0@@61@@@@3 10@00@@@0@0@>@!>=@A+#seeRD O J O O J R@@;@@&option vY:S wY:Y@гC&string Y:L Y:R@@K'@@@P( @@S@@+@J@@AгF*Odoc_types W W@M W W@@@U;@@P@@3        @;@AQP@A+$infoXH _ _@@;@@&i_descY@@  @@@@@@ ` `@ 7 The description text.  ` `@@@@@@@ t@)i_authorsZ@@ H @@@@@@ a a,@ ' The list of authors in \@author tags.  a- aY@@@@@@@ u@)i_version[@@ J @@@@@@ bZ^ bZx@ ݐ " The string in the \@version tag.  bZy bZ@@@@@@@ v@&i_sees\@@ @@@@@@ c c@ 9 The list of \@see tags.  c c@@@@@@@ 7w@'i_since]@@  @@@@@@ /d 0d@  The string in the \@since tag.  =d >d@@@@@@@ Vx@(i_before^@@ Ġ@ @@@@ c@@@@@@@@ Xe Ye?@ D - the version number and text in \@before tag  fe@ ger@@@@@@@ y@,i_deprecated_@@ Р @@@@@@ wfsw xfs@ c / The description text of the \@deprecated tag.  fs fs@@@@@@@ z@(i_params`@@ 9@@@@@@İ g g@ % The list of parameter descriptions.  g g @@@@@@@ {@3i_raised_exceptionsa@@ +@@@@@@ɰ h h>@ The list of raised exceptions.  h? hd@@@@@@@ |@.i_return_valueb@@ - @@@@@@ΰ iei ie@ + The description text of the return value.  ie ie@@@@@@@ }@(i_customc@@ i@ @@@Ѡ@ @@@@@@@@հ j j@ 鐠 & A text associated to a custom @-tag.  j j @@@@@@@ $~@(i_alertsd@@ @@@@@@ڰ k  k %@  @ Alerts associated to the same item. Not from special comments.  *k & +k k@@@@@@@ C@@@A "$info@@@@@@@ 5_ 6llo@ ! U Information in a special comment @before 3.12 \@before information was not present.  C\^^ D^@@@@@@@@@ \s@@# K`@@@Ш@г&option T` U`@г$text ]` ^`@@3 \ \ \ \ \ \ \ \@HB;@@@A@@@ 7@@@@@74@@&@A@@@ @@@@@ Y @@@@@@# ~a@@@Ш@г$list a' a+@г&string a  a&@@3@@@4 @@@@7@Š  @@@@@@# bZg@@@Ш@г&option bZq bZw@гƠ&string bZj bZp@@Z@@@[ @@@@^@͠  ͐@@@@@@#Ơư c@@@Ш@гɠ$list c c@гΠ#see c c@@@@@ @@@@@ՠ  @@@@@@#Πΰ d@@@Ш@гѠ&option d d@г֠&stringdd@@@@@ @@@@@ݠ @@@@@@#ְ֠e&@@@Ш@г٠$list#e9$e=@В@гޠ&string0e*1e0@@Ӱ@@@г㠐$text;e3<e7@@ް@@@߰@@@@e)@@@@@젰 -S@@@@@@#Rfs@@@Ш@г蠐&option[fs\fs@г$textdfsefs@@@@@ @@@@ @ Tz@@@@@@#yg@@@Ш@г$listgg@г%paramgg@@.@@@/ @@@@2@ {@@@@@@#h%@@@Ш@г$listh9h=@г0raised_exceptionh(h8@@U@@@ V @@ @@Y@ Ȑ@@@@@@#iew@@@Ш@г&optionieie@г$textiezie~@@ |@@@} @@@@@    @  @@@ @ @#j@@@Ш@г$listjj@В@г &stringjj@@@@@г$textjj@@@@@%@@@*j@@.@@@ '@@@@@@# &k @@@Ш@г$list/k 0k #@г%alert8k 9k @@$۰@@@)ܰ @@,@@@# (N! @  @@@ @ @@Aг*Odoc_typesR_S_@#V_W_@@@+@@& Dj$#@##@@@#@#@@3bbbbbbbb@@A21@A+(locationeIpoqo@@;@@(loc_impl@@۠(Location!t@@@ /@@@ 1pp@ r9 implementation location pp@@@@@@@A@)loc_inter@@#!t@@@ 4@@@ 6q"qA@ 4 interface location qBq[@@@@@@@B@@@A (location@@@ 9@@@@or\_@ = Location of elements in implementation and interface files. nqqnq@@@@@@@@@@@@#^^Pp@A@@Ш@гa&optionpp@гf(Locationpp@kpp@@@u3@WQ;@@@A@@@@ @@@@>;@@-@A@@@ @@@@ 2@| zy@yy@@@y@y@#uuiq+@Z@@Ш@гx&optionq9q?@г}(Location$q.%q6@(q7)q8@@@:@@@; @@@@ 7>@?@@@@@@@Aг*Odoc_typesCoDo@GoHo@@@Y@@5[@@@@@@@3SSSSSSSS@d@A@)dummy_locɠ`uz~auz@г(locationiuzjuz@@ @@@3kkkkkkkk@}@A@@@suzz @^3 A dummy location. taatay@@@@@@@C@@@n@@@@@@!$NameJxx@K@@БA+!tKzz@@;@@A}@@@@@@@zz@@@@D@@@Aг &stringz @@3@PcN;@@@A#@@@@@@@@@@@@A@@@@3@ @A@&simpleˠ}}!@б@г6!t}$}%@@ @@@3@'A;@A@@гE!t})}*@@ @@@@@@@@@@@} @㐠< Access to the simple name. ||@@@@@@@E@@@@@@@@@1&concat̠s}s@б@г!t's(s@@ @@@3))))))))@J_8@A@@б@г!t8s9s@@ @@@@@г!tEsFs@@ @@@@@@@@!@@@'@@$* @@@Ssy@> ; [concat t1 t2] returns the concatenation of [t1] and [t2].`,2a,r@@@@@@@yF@@@Nt@@@@@@C%depth͠w"x'@б@гڠ!t*+@@ @@@3@\q8@A@@гe#int/2@@ @@@@@@@@@@@ @ y Return the depth of the name, i.e. the number of levels to the root. Example : [depth "Toto.Tutu.name"] = [3]. @@@@@@@G@@@@@@@@@1,get_relativeΠ@б@г#!t@@ @@@3@J_8@A@@б@г4!t@@ @@@@@гA!t@@ @@@@@@@@!@@@'@@$* @@@@␠ E Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 or else n2. 4:4@@@@@@@H@@@@@@@@@C0get_relative_optϠ!@б@г~!t&$'%@@ @@@3((((((((@\q8@A@@б@г!t7)8*@@ @@@@@г!tD.E/@@ @@@@@@@@!@@@'@@$* @@@R @= P Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 and n1<>"" or else n2. _`@@@@@@@xI@@@Ms@@@@@@C&fatherРvw@б@г٠!t@@ @@@3@\q8@A@@г蠐!t@@ @@@@@@@@@@@ @ B Return the name of the 'father' (like [dirname] for a file name).282@@@@@@@J@@@@@@@@@1@A@@l@L%@@s@S,@@3@@U.@A3@ @Ay@@ܐ " Representation of element names. ww@@@@@@@x@@)ParameterVL @Z@@Б+ {1 Types} (@@@@@@3@Cm@a[A@8@@q@Q@@x@@DC@CC@@@C@C@@@AA++simple_nameM$_h%_s@@;@@'sn_name@@@@@12@@JM@'sn_typeA@@%Types)type_expr@@@AB@@ZO@'sn_textBA@]@@@@@@RS @@kP@@@A.Odoc_parameter+simple_name@@@S@@@@__c` @K + Representation of a simple parameter name m*.n*^@@@@@@@@@L@@#IIDu@C@@Ш@гL&string~@@T3}}}}}}}}@b;@@@Aj@@@b@@@@@-*@@@A @@b@@@^@#ZZQ@P@@Ш@г]%Types@b@@@l$@@o@@'@g@#cc@YA@Ш@гg&option@гl$text@@t@@@@yA @@|@@D@s@@Aгo.Odoc_parameter_v_@t__@@@~T@@w吠ut@tt@@@t@t@@@A+*param_infoMN@@;@@+Simple_nameN@@@~@@ @@R@%TupleO#@@@@@@)type_expr@@@@@@@@,S@@@A*param_info@@@@@@@ @ Representation of parameter names. We need it to represent parameter names in tuples. The value [Tuple ([], t)] stands for an anonymous parameter.+,s@@@@@@@@@DQ@@#AA:3@9@гB+simple_name<C@@I3::::::::@@ Z;@@@Ab@@@@}@@@@,*@@@AP@@@@R@#NNNO@;@гP$listX*Y.@гU*param_infoab)@@]&@@@b' @@гZ%Typesn1o6@ar7_@`@@h7a@@@@c@@Aг_.Odoc_parameter~@f@@@nH@@iphg@gg@@@g@g@@3@S@Au@A+)parameterPOnwn@@;@@ A@@@@@@@nrn@ " A parameter is just a param_info.BFBm@@@@@@@@@T@@@Aг*param_infon@@3@);@@@A1@@@@@@@@&#@@@A%@@'ې%$@$$@@@$@$@@3@@A32@ꐠ/ {1 Functions} @@@@@@3@+SM@A-complete_nameQ @б@гb)parameter#@@ @@@@@гՠ&string ' -@@ @@@'@@@@@*@@@ @ O Access to the name as a string. For tuples, parentheses and commas are added. #$@@@@@@@<U@@@7@@@@@@I#typR:W_;Wb@б@г)parameterEWeFWn@@ @@@3GGGGGGGG@b]8@A@@г)type_expr%TypesXWrYWw@ \Wx]W@@@@@@ @@@@@! @@@hW[ @S> Access to the complete type. u/3v/V@@@@@@@V@@@c@@@@@@:%namesS@б@г)parameter@@ @@@3@Sh8@A@@г$list@гz&string@@ @@@@@@@@@ @@@$@@!'@@@@ ^ Access to the list of names ; only one for a simple parameter, or a list for a tuple. @@@@@@@W@@*@ᐠ@@@@@@@,desc_by_nameT@б@гS)parameter@@ @@@3@Yn8@A@@б@гʠ&string@@ @@@@@гi&option @г!$text@@ @@@(@@@@@@- @@@"@@0%@@@6@@39@@@*@ z Access to the description of a specific name. @raise Not_found if no description is associated to the given name. 78K@@@@@@@PX@@-@%K@@@@@@R,type_by_nameUNJROJ^@б@г)parameterYJaZJj@@ @@@3[[[[[[[[@k8@A@@б@г4&stringjJnkJt@@ @@@@@г8)type_expr%Types{Jx|J}@ J~J@@@@@@' @@@@@* @@@0@@-3 @@@JN@y l Access to the type of a specific name. @raise Not_found if no type is associated to the given name. I@@@@@@@Y@@@@@@@@@L@A@A@A@@~N@.@@p.@@3@]r0@A3@@A@@ѐ R Representation and manipulation of method / function / class / module parameters.@@@@@@@@@)ExtensionP@r@@БA+,private_flagWQ@@;@@'PrivateX@@!@@\@&PublicY@@"*@@]@@@A.Odoc_extension,private_flag@@@@@@@  @@A@$[@@#@@@@@#$@@@@@@Aг.Odoc_extension#$@'(@@@'3''''''''@-J@ A@MGA@A@H#@@}@]@@@)}|@||@@@|@|@y_a;@@@Ai@@@D@@@@@G@@@E@A0+@@H@@3PPPPPPPP@(@AIU@A+/extension_aliasoR^_@@;@@'xa_namer@@!t@@@jmn@Y , The complete name of the target extension. {|4@@@@@@@a@%xa_xtsA@7t_extension_constructorpR@@@m@@@o5?5o@z & The target extension, if we found it.5p5@@@@@@@b@@@A/extension_alias@@@t@@@@@ j Used when the extension is a rebind of another extension, when we have [extension Xt = Target_xt].,0n@@@@@@@@@^@@#WWP@A@@Ш@гZ$Name@a@@@i3@z;@@@A@@@L@N@@@@74@@&T;@@@A\@@@M@O@@@@  @@@@_@0t_type_extensionqR;@@@A @@@N@P@@@@  ""@@@@`@@A2-@@@@k-@ @@@@@@# 5G 5L@oA@Ш@г&option5g5m@г7t_extension_constructor5O5f@@Q@@@R @@@@pU@4@@@@@@@Aг.Odoc_extension89@<=@@@p@@*P@@@@@@+ĠİOP@@;@@'xt_namet@@!t@@@u^_@@wc@'xt_args~@@)Odoc_type0constructor_args@@@ְn#oG@@d@&xt_ret@@ؠA)type_expr@@@@@@۰HRHr@m + the optional return type of the extension HsH@@@@@@@e@1xt_type_extension@@@@@ް@ 0 the type extension containing this constructor  @@@@@@@f@(xt_alias@@]@@@@@@    6@ , [None] when the extension is not a rebind.   7  h@@@@@@@g@&xt_locA@(location@@@ i s i @@h@'xt_textA@@$info@@@@@@    @Ր; optional user description     @@@@@@@i@@@A7t_extension_constructor@@@@@@@@@@@# @@@Ш@г$Name@@@@I@@@@vL@@#*@@@Ш@г)Odoc_type*,+5@°.6/F@@@b@@@@e@@#àð8HX@@@Ш@гƠ&optionAHjBHp@гˠ%TypesLHZMH_@ҰPH`QHi@@@@@@ @@@@@נAg@@@@@@#Раf@@@Ш@гӠ0t_type_extensionop@@@@@@@ڠ^@@@@@@#ӠӰ  @@@Ш@г֠&option  .  4@г۠/extension_alias    -@@Ȱ@@@ɰ @@@@@⠰@@@@@@#۠۰ i { i @A@Ш@гߠ*Odoc_types i  i @ i  i @@@@@@@@@#    @A@Ш@г렐&option    @г𠡠*Odoc_types    @    @@@@@@ @@@@@@@@@@@@Aг.Odoc_extension@@@@0@@@+ ! !@@;@@'te_infoA@ov@@@@@@!@!J!@!i@ 7 Information found in the optional associated comment. $!@!j%!@!@@@@@@@=j@,te_type_name@@ !t@@@2!!3!!@; The type of the extension @!!A!!@@@@@@@Yk@2te_type_parameters@@Ǡ)type_expr@@@@@@S!!T!"@@ll@*te_private@@u@@@_"")`""D@@xm@/te_constructorsA@@@@@@@p"E"Oq"E"@@n@&te_locA@ @@@|""}""@@o@'te_codeA@X@@@ @@@ """"@@p@@@A0t_type_extension@@@@@@@@@@@#!@!R!@!Y@xA@Ш@г&option!@!a!@!g@г$info!@!\!@!`@@@@@ @@@@@Ő@@@@@@#!!@@@Ш@г$Name!!!!@!!!!@@@@@@@ @鐠@@@@@@#!"@@@Ш@г$list!"!"@г%Types!" !"@!"!"@@@4@@@5 @@@@8@@# ""3@@@Ш@г,private_flag""6""B@@G@@@@J@@#"E"W"E"f@A@Ш@г$list'"E"("E"@г7t_extension_constructor0"E"h1"E"@@c@@@d @@@@g@@#àð:"";""@A@Ш@гǠ(locationD""E""@@w@@@@z@@#ʠʰM""N""@A@Ш@гΠ&optionW""X""@гӠ&string`""a""@@@@@ @@@@ @@@Aг֠.Odoc_extensiono !p !"@ݰs !#t !3@@@@@@@3tttttttt@@A@6extension_constructors####1@б@г0t_type_extension##4##D@@ @@@L3@ D;5@A  @@г$list##`##d@г7t_extension_constructor##H##_@@ @@@M@@@@@@O  @@@&@@P#)@@@##@ & Access to the extensions in a group. """#@@@@@@@q@@*@ؐ@@@@@@B@A@}wA@PB@B@`(@@3@Mb*@A 3@@A#f#k@@ 0 Representation and manipulation of extensions. @@@@@@@@@)ExceptionS####@~@@БA+/exception_aliasT$0$9$0$H@@;@@'ea_name@@ !t@@@S$v$$v$@ , The complete name of the target exception. ,$v$-$v$@@@@@@@Eu@%ea_exA@+t_exceptionT@@@V@@@X?$$@$$@+ & The target exception, if we found it.M$$N$%@@@@@@@fv@@@A.Odoc_exception/exception_alias@@@{@@@@Z$0$4[% %)@F j Used when the exception is a rebind of another exception, when we have [exception Ex = Target_ex].h##i#$/@@@@@@@@@s@@#YYRp$v$@C@@Ш@г\$Name{$v$|$v$@c$v$$v$@@@k3@Z@A@2,A@=B@B@@@|@@@@@@;@@@A@@@@Q@@@@LI@@;k;@@@As@@@@R@@@@%+%/','5@@@@t@@A83@@@@T3@Ő@@@@@@#$$$$@wA@Ш@г&option$$$$@г+t_exception$$$$@@W@@@X @@@@Y[@퐠@@@@@@@Aг.Odoc_exception$0$K$0$Y@$0$Z$0$i@@@v@@ @@@@@@+̠̰%+%3 %+%>@@;@@'ex_name@@ !t@@@|%h%r%h%@@0w@'ex_infoA@@@@@@@(%%)%%@ 7 Information found in the optional associated comment. 6%%7%%@@@@@@@Ox@'ex_args@@0constructor_args@@@D%%E%&@@]y@&ex_ret@@ )type_expr@@@@@@W&&&X&&G@C , The optional return type of the exception. e&&Hf&&y@@@@@@@~z@(ex_alias@@Ϡh@@@@@@v&z&w&z&@b , [None] when the exception is not a rebind. &z&&z&@@@@@@@{@&ex_locA@"@@@&&&&@@|@'ex_codeA@l@@@@@@'' ''+@@}@@@AT+t_exception@@@@@@@@@@@#%h%y@@@Ш@г$Name%h%|%h%@%h%%h%@@@@@@@@}C@@#%%%%@A@Ш@г&option%%%%@г$info%%%%@@\@@@] @@@@`@򐠠@@@@@@#%%@@@Ш@г)Odoc_type%&%& @%& %&@@@@@@@@@# &&,@@@Ш@г &option&&?&&E@гǠ%Types&&/&&4@ΰ"&&5#&&>@@@@@@ @@@@@Ӡ9@@@@@@#̠̰8&z&@@@Ш@гϠ&optionA&z&B&z&@гԠ/exception_aliasJ&z&K&z&@@ʰ@@@˰ @@@@@۠:`@@@@@@#Ԡ԰_&&`&&@A@Ш@гؠ(locationi&&j&&@@@@@@@@#۠۰r''s''@A@Ш@гߠ&option|''#}'')@г䠐&string''''"@@@@@ @@@@ @@@Aг砡.Odoc_exception%+%A%+%O@%+%P%+%[@@@@@@@3@@AD@@A@hB@@3@ k@A3@"@A##'6';@@ 0 Representation and manipulation of exceptions. #m#m#m#@@@@@@@##@@$TypeU'm't'm'x@@@БA+,private_flagV''''@@;@@'Private@@''''@@@&Public@@''''@@@@@A,private_flag@@@L@@@@'' @@A@ @@#@@@@@#''@@@@@@Aг)Odoc_type '' ''@''''@@@%3@@ A@B@@on@nn@@@n@n@k"S;@@@A[@@@V@K@@@@;@@@9@A$@@<@@3++++++++@@A=G@A+,record_fieldW9'(:'(@@;@@'rf_name@@@@@aF(4(>G(4(P@24 Name of the field. T(4(QU(4(j@@@@@@@m@*rf_mutable@@@@@d`(k(ua(k(@L4 [true] if mutable. n(k(o(k(@@@@@@@@)rf_atomic@@7@@@gz(({((@f3 [true] if atomic. ((((@@@@@@@@'rf_type@@ W)type_expr@@@j((((@4 Type of the field. ((()@@@@@@@@'rf_textA@@@@m@@@o ))# ))B@ 0 Optional description in the associated comment. ))C ))x@@@@@@@@@@Ab,record_field@@@r@@@@'' )y)@ % Description of a record type field. ''''@@@@@@@@@@@#(4(E@@@Ш@г&string(4(H(4(N@@3@!;@@@A@@@@`@@@@.+@@@A@@@@b@ @@@@@@# (k(@@@Ш@г$bool (k( (k(@@)@@@@e,@ +@@@@@@# *((@@@Ш@г$bool 3(( 4((@@F@@@@hI@" H@@@@@@# G((@@@Ш@г%Types R(( S((@° V(( W((@@@j@@@@km@ǠF l@@@@@@# k ))+ l ))2@A@Ш@гĠ&option u )): v ))@@гɠ$info ~ ))5  ))9@@@@@ @@@@p@Рn @@@@@@@Aгɠ)Odoc_type '( '(@а '( '('@@@@@Ӡ @@@@@@@3        @@A@A+0constructor_argsX  ))  ))@@;@@+Cstr_record @@@@@@@@@ )) )*@@ @*Cstr_tuple S )type_expr@@@@@@@@ **" **F@@ @@@A~0constructor_args@@@@@@@  )) @Ր , Description of a variant type constructor.   ))  ))@@@@@@@@@!@@#AA ))!)*@5@гC$list! )*?@гG,record_field!)* !)*@@O3!!!!!!!!@%d;@@@Al@@@@@@@@64@@&@A@@@` V@@@@X@#TT!%**$!&**.@F@гV$list!/**BP@гZ%Types!9**2!:**7@a!=**8!>**A@@@i-@@@n. b@@@@d@@Aг`)Odoc_type!K ))!L ))@g!O ))!P ))@@@o?@@j=!cih@hh@@@h@h@@3![![![![![![![![@J@Av@A+3variant_constructorY!i*H*Q!j*H*d@@;@@'vc_name@@!B@@@ð!v**!w**@b: Name of the constructor. !**!**@@@@@@@!@'vc_args@@@@@ư!**!**@@!@&vc_ret@@ c)type_expr@@@@@@˰!**!*+@@!@'vc_textA@! @@@@@@а!+ +*!+ +I@ 1 Optional description in the associated comment. !+ +J!+ +@@@@@@@!@@@A a3variant_constructor@@@@@@@!*H*L!++@@@@!@@#dd_!**@P@@Ш@гg&string!**!**@@o3!!!!!!!!@1+~;@@@A@@@@@@@@ @@@@A@@~@@@z!xw@ww@@@w@w@#ssn!**@m@@Ш@гv0constructor_args"**"**@@~)@@@@,@}@#yym"*+@l@@Ш@г|&option"*+"*+@г%Types"$*+"%*+ @"(*+ ")*+@@@K@@@L @@@@O@@#"3+ +2"4+ +9@qA@Ш@г&option"=+ +A">+ +G@г$info"F+ +<"G+ +@@@h@@@i @@@@l@ 6"\@@@@@@@Aг)Odoc_type"`*H*g"a*H*p@"d*H*q"e*H*@@@@@@@3"e"e"e"e"e"e"e"e@@A@A+)type_kindZ"s++"t++@@;@@-Type_abstract@@"}++"~++@ i ) Type is abstract, for example [type t]. "++"+,#@@@@@@@"@,Type_variantÐ"6@@@@@@@@",$,*",$,T@ . constructors ",U,h",U,{@@@@@@@"@+Type_recordĐ"5@@@@@@@@",|,",|,@ ( fields ",,",,@@@@@@@"@)Type_openŐ@@" ,," ,,@ . Type is open " ,," ,,@@@@@@@"@-Type_externalƐ"@@@@@"!,,"!,- @ ސ 0 Type is external, e.g. [type t = external "t"] #"- -#"- -T@@@@@@@#@@@A )type_kind@@@@@@@# ++@ > The various kinds of a type. #++#++@@@@@@@@@#1@@#@@@@! #1@@@@@@##0,$,,#1,$,8@@г$list#:,$,P@г3variant_constructor#B,$,<#C,$,O@@3#A#A#A#A#A#A#A#A@e;@@@A@@@@@@@@FD@@6@A@@@ @@@@!<#b@@@@@@##a,|,#b,|,@@г$list#k,|,@г,record_field#s,|,#t,|,@@1@@@2@@@@!a#@@@@@@## ,,@@@@!r#@@@@@@##!,,#!,-@@г&string#!,-@@^@@@@!#@@@@@@@Aг)Odoc_type#++#++@#++#++@@@z@@!#ϐ@@@@@@@3########@@A@A+,object_field[#$-V-_#$-V-k@@;@@'of_name@@#@@@1#%--#%--@@#@'of_type@@)type_expr@@@4#&--#&--@@$ @'of_textA@#Z!$info@@@7@@@9$'--$'--@!; optional user description $'--$'-.@@@@@@@$*@@@A ,object_field@@@<@@@@$$-V-Z$(..@@@@$5@@#GGB$$%--@A@@Ш@гJ&string$-%--$.%--@@R3$,$,$,$,$,$,$,$,@a;@@@Ai@@@F@0@@@@ @@@@A@@a@@2@]@#YYR$B&--@Q@@Ш@г\%Types$M&--$N&--@c$Q&--$R&--@@@k%@@n@@5(@h@#dd$['--$\'--@JA@Ш@гh&option$e'--$f'--@гm*Odoc_types$p'--$q'--@t$t'--$u'--@@@|H@@@I @@@@:L@y"e$wv@vv@@@v@v@@Aгr)Odoc_type$$-V-n$$-V-w@y$$-V-x$$-V-@@@g@@|@@3$$$$$$$$@g@A}|@A+-type_manifest\$*..&$*..3@@;@@%Other̐t)type_expr@@@Z@@$+.P.V$+.P.p@" . Type manifest directly taken from Typedtree. $+.P.q$+.P.@@@@@@@$@+Object_type͐$J@@@[@@@]@@$,..$,..@@$@@@A s-type_manifest@@@^@@@@$*..! @@@@$@@#<<$+.P.X$+.P.]@%@г>%Types$+.P.a$+.P.f@E$+.P.gC@D@@L3$$$$$$$$@*$];@@@Ae@@@i@Y@@@@&@@@$@AQ@@@@S"%QP@PP@@@P@P@#LL%,..%,..@@@гN$list%,..J@гR,object_field%&,..%',..@@Z0@@@_1U@@@@W@@AгS)Odoc_type%3*..6%4*..?@Z%7*..@%8*..M@@@bB@@]@@3%8%8%8%8%8%8%8%8@B@A^h@A+&t_type]%F/..%G/./@@;@@'ty_name@@!t@@@}%U1/#/-%V1/#/?@#A< Complete name of the type. %c1/#/@%d1/#/a@@@@@@@%|@'ty_infoA@$͠@@@@@@%t2/b/l%u2/b/@#` 7 Information found in the optional associated comment. %2/b/%2/b/@@@@@@@%@-ty_parameters@@% @Y)type_expr@@@@b(Variance!t@@@@@@@@%3//%3/0@# # type parameters: (type, variance) %400#%400K@@@@@@@%@'ty_kind@@L@@@%50L0V%50L0j@#, Type kind. %50L0k%50L0|@@@@@@@%@*ty_private@@@@@%60}0%60}0@#Ð9 Private or public type. %60}0%60}0@@@@@@@%@+ty_manifest@@%OU@@@@@@!%700%700@@&@&ty_locA@@@@$&800&801@@&@'ty_codeA@%l%@@@'@@@)&911 &911@@@&,@@@A &t_type@@@.@@@@&/..&:1A1J@$ ; Representation of a type. &,...&-...@@@@@@@@@&E@@#&41/#/4@@@Ш@г頡$Name&?1/#/7&@1/#/;@&C1/#/<&D1/#/=@@@3&C&C&C&C&C&C&C&C@O;@@@A@@@P@|@@@@52@@$@A@@@@~@$?&e@@@@@@#&d2/b/t&e2/b/{@A@Ш@г&option&n2/b/&o2/b/@г$info&w2/b/~&x2/b/@@ 3@@@4 @@@@7@ $g&@@@@@@#&3//@@@Ш@г$list&3/0&3/0 @В@г %Types&3//&3//@&3//&3//@@@e@@@г%Types&3//&3//@&3//&3/0@@!&3/0&3/0@ @@+~ @@@8"@@@=&3//2@@A@@@($&ڐ&%@%%@@@%@%@#!!&50L0]@ @@Ш@г$)type_kind&50L0`&50L0i@@,@@/@@@+$&)(@((@@@(@(@#$$&60}0@@@Ш@г',private_flag&60}0'60}0@@/@@2@@@.$',+@++@@@+@+@#'''700@@@Ш@г*&option'700'700@г/-type_manifest'%700'&700@@7@@@< @@?@@"@6@#22'/801'0801@-A@Ш@г6(location'9801 ':801@@>@@A@@%@=@#99'B911('C911/@/A@Ш@г=&option'L9119'M911?@гB&string'U9112'V9118@@J@@@O @@R@@*@I@@AгE)Odoc_type'd/./'e/./@L'h/./'i/./@@@T%@@O%V'|ML@LL@@@L@L@@3't't't't't't't't@0@A[Z@@A@HBA@A@A@A@A@A@GAA@@3''''''''@CIC@A3''''''''@z@A''{'}'<1L1Q@@%z' * Representation and manipulation of types.''='=''='l@@@@@@@''m'm@@%Value^'?11'?11@'@@БA+'t_value_'B11'B11@@;@@(val_name@@3!t@@@Ұ'D22 'D223@%= Complete name of the value. 'D224'D22V@@@@@@@'@(val_infoA@'BI@@@@@@װ'E2W2a'E2W2@%Ր 7 Information found in the optional associated comment. 'E2W2'E2W2@@@@@@@(@(val_type@@)type_expr@@@ڰ(F22(F22@%񐠠4 Type of the value. (F22(F22@@@@@@@(,@-val_recursive@@'@@@ݰ(G33 ( G33 @& # [true] if the value is recursive. (-G33!(.G33I@@@@@@@(F@.val_parametersA@')parameter@@@@@@(@H3J3T(AH3J3@&,9 The parameters, if any. (NH3J3(OH3J3@@@@@@@(g@(val_codeA@'(*@@@@@@(_I33(`I33@&K D The code of the value, if we had the only the implementation file. (mI33(nI34"@@@@@@@(@'val_locA@ @@@(yJ4#4-(zJ4#4I@@(@@@A*Odoc_value't_value@@@2@@@@(B11(K4J4S@&r< Representation of a value. (A11(A11@@@@@@@@@(@@#٠ٰ(D22(@@@Ш@гܠ$Name(D22+(D22/@(D220(D221@@@3((((((((@  @  A@  |A@A@VPA@NHA@A@#A@{A@@&21@11@@@1@1@. ;@@@A@@@J@@@@@QN@@@@A0+@@@@+@&(鐠 @  @@@ @ @#  (E2W2i(E2W2q@A@Ш@г &option(E2W2y(E2W2@г$info(E2W2t(E2W2x@@O@@@P @@"@@S@&)@@@@@@# )F22@@@Ш@г%Types)F22)F22@)F22) F22@@@$t@@'@@w@!')5@@@@@@#)4G33@@@Ш@г$bool)=G33)>G33@@%@@(@@@$',)R"!@!!@@@!@!@#)QH3J3\)RH3J3j@A@Ш@г!$list)[H3J3)\H3J3@г&.Odoc_parameter)fH3J3m)gH3J3{@-)jH3J3|)kH3J3@@@5@@@: @@=@@@2'[)0/@//@@@/@/@#++)I33)I33@A@Ш@г/&option)I33)I33@г4&string)I33)I33@@<@@@A @@D@@@;')98@88@@@8@8@#44)J4#45)J4#4<@/A@Ш@г8(location)J4#4?)J4#4G@@@@@C@@ @?@@Aг;*Odoc_value)B11)B12@@)B12)B12 @@@J@@C')ؐA@@@@@@@@@@@@3))))))))@$@AON@A++t_attribute`)N44)N44@@;@@)att_value@@2@@@)P44)P44@'א = an attribute has almost all the same information as a value )P44)P45!@@@@@@@*@+att_mutable@@)@@@*Q5"5,*Q5"5@@'񐠠 % [true] if the attribute is mutable. *Q5"5B*Q5"5l@@@@@@@*,@+att_virtual@@)@@@*R5m5w* R5m5@( % [true] if the attribute is virtual. *-R5m5*.R5m5@@@@@@@*F@@@A+t_attribute@@@@@@@*8N44*9S55@($ & Representation of a class attribute. *FM4U4Y*GM4U4@@@@@@@@@*_@@#hhc*NP44@T@@Ш@гk't_value*WP44*XP44@@s3*V*V*V*V*V*V*V*V@;@@@A@@@@@@@@.+@@@A@@@@@~(R*x|{@{{@@@{@{@#wwr*wQ5"57@c@@Ш@гz$bool*Q5"5:*Q5"5>@@)@@@@,@(o*~@~~@@@~@~@#zzu*R5m5@f@@Ш@г}$bool*R5m5*R5m5@@F@@@@I@(*@@@@@@@Aг}*Odoc_value*N44*N44@*N44*N44@@@d@@(*ΐ@@@@@@@3********@o@A@A+(t_methoda*V55*V56@@;@@)met_value@@(@@@*X6$6.*X6$6C@(͐ 9 a method has almost all the same information as a value *X6$6D*X6$6@@@@@@@+@+met_private@@*@@@*Y66*Y66@(琠 ! [true] if the method is private.+ Y66+ Y66@@@@@@@+"@+met_virtual@@*@@@+Z66+Z66@) " [true] if the method is virtual. +#Z66+$Z67@@@@@@@+<@@@A(t_method@@@@@@@+.V55+/[77@) # Representation of a class method. +<U55+=U55@@@@@@@@@+U@@#hhc+DX6$67@T@@Ш@гk't_value+MX6$6:+NX6$6A@@s3+L+L+L+L+L+L+L+L@xr;@@@A@@@@@@@@.+@@@A@@@@@~)H+n|{@{{@@@{@{@#wwr+mY66@c@@Ш@гz$bool+vY66+wY66@@)@@@@,@)e+~@~~@@@~@~@#zzu+Z66@f@@Ш@г}$bool+Z66+Z66@@F@@@@I@)+@@@@@@@Aг}*Odoc_value+V56+V56@+V56+V56@@@d@@)+Đ@@@@@@@3++++++++@o@A@+is_function+^7q7y+^7q7@б@г't_value+^7q7+^7q7@@ @@@ 3++++++++@ @A@@г+$bool+^7q7+^7q7@@ @@@ @@@@@ @@@+^7q7u @)ِ J Return [true] if the value is a function, i.e. it has a functional type. +]77!+]77p@@@@@@@,@@@),@@@@@@11S1S,>1S1@@@@@@@,?11@@%ClassXb,e8u8|,e8u8@,@@Б,,+ {1 Types} ,g88,g88@@@@@@3,,,,,,,,@ @A@A@A@@p@@*@?@??@@@?@?@<"@AA+-class_elementc,j88,j88@@;@@/Class_attribute@+t_attribute@@@5@@,k9 9,k9 95@@-@,Class_method P(t_method@@@6@@,l969<,l969\@@-@-Class_comment +@@@7@@-m9]9c- m9]9z@@-!@@@A*Odoc_class-class_element@@@L@@@@-j88 @+ + To keep the order of elements in a class. -"i88-#i88@@@@@@@@@-;@@#II@-*k9 9 @?@гJ%Value-5k9 9$-6k9 9)@Q-9k9 9*O@P@@X3-8-8-8-8-8-8-8-8@h;@@@Ap@@@^@@@@@20@@"@A\@@@@^@#ZZ-Kl969>-Ll969J@Q@г\%Value-Wl969N-Xl969S@c-[l969Ta@b@@j"c@@@@e@#aa-bm9]9e-cm9]9r@Z@гc$text-lm9]9vd@@j2e@@@@g@@Aгc*Odoc_class-wj88-xj88@h-{j88-|j89@@@rC@@k+i-ji@ii@@@i@i@@Ұv@A+#cct!d-p99-p99@@;@@"Cl*'t_class&d@@@@@-q99-q99@@-@&Cltype+,t_class_type)d@@@-5)type_expr@@@@@@@@-r99-r9:*@+ ! Class type and type parameters. -r9:+-r9:Q@@@@@@@-@@@A#cct@@@@@@@-p99@+Ő 9 Used when we can reference a t_class or a t_class_type. -o9|9-o9|9@@@@@@@@@.@@#SSJ-q99@I@гT't_class-q99S@@[3--------@K/)t;@@@A|@@@@z@@@@42@@$/inherited_class"d;@@@A @@@@{@@@@.t:S:W.y;;@@@@.2@+class_apply#d;@@@A @@@@|@@@@.({;;.)=,=5@@@@.A@,class_constr$d;@@@A @@@@}@@@@.7=7=;.8>>@@@@.P@*class_kind%d;@@@A @@@@~@@@@.F>>.GAAP@@@@._@;@@@A@@@@@@@@.SAA.TD0D9@,?< Representation of a class. .aAA.bAA@@@@@@@@@.z@0class_type_alias'd;@@@A @@@@@@@@.pD;D?.qEE@@@@.@/class_type_kind(d;@@@A @@@@@@@@.EE.F FF@@@@.@;@@@A@@@@@@@@.FF.HH@,x ! Representation of a class type. .F}F.F}F@@@@@@@@@.@@A@@@@@#.r99.r9:@@г,t_class_type.r9:.r9:@@@@г$list.r9:&@г%Types.r9:.r9:@.r9:.r9:%@@@ΰ@@@ϰ @@@@ ,.ِ@@@@@@@Aг*Odoc_class.p99.p99@ .p99.p99@@@@@ ,.  @  @@@ @ @+.t:S:[.t:S:j@@;@@'ic_name,@@l!t@@@/v::/v::@, ' Complete name of the inherited class. /v::/v::@@@@@@@/*@(ic_class-A@.{@@@@@@/"w::/#w:;@- ) The associated t_class or t_class_type. /0w:;/1w:;6@@@@@@@/I@'ic_text.@@.-L@@@@@@/Ax;7;A/Bx;7;X@-- & The inheritance description, if any. /Ox;7;Y/Px;7;@@@@@@@/h@@@AG/inherited_class@@@@@@@A@@@>@#bb[/^v::@L@@Ш@гe$Name/iv::/jv::@l/mv::/nv::@@@tw@@w@@z@q-]/on@nn@@@n@n@#jj/w::/w::@RA@Ш@гn&option/w::/w:;@гs#cct/w::/w::@@{@@@ @@@@@z-/xw@ww@@@w@w@#ssi/x;7;H@Z@@Ш@гv&option/x;7;P/x;7;V@г{$text/x;7;K/x;7;O@@Ű@@@ư @@@@@-/Ґ@@@@@@@Aг{*Odoc_class/t:S:m/t:S:w@/t:S:x/t:S:@@@@@@+Ġİ/{;;/{;;@@;@@)capp_name/@@Z!t@@@/};;/};;@-ݐ ) The complete name of the applied class. /};;0};<@@@@@@@0@*capp_class0A@/il@@@@@@0~<@#|0m};;@m@@Ш@г$Name0x};;0y};;@0|};;0}};;@@@@@@@@.l0@@@@@@#0~<<)0~<<3@sA@Ш@г&option0~<<>0~<0@@@@@@@1t@3cco_type_parameters5@@0.)type_expr@@@@@@1n>1>;1o>1>f@/Z . The type parameters of the class, if needed. 1|>1>g1}>1>@@@@@@@1@@@At,class_constr@@@@@@@P@@@M@#dd]1=r=@N@@Ш@гg$Name1=r=1=r=@n1=r=1=r=@@@v@@y@@@s/1qp@pp@@@p@p@#ll1==1==@TA@Ш@гp&option1==1==@гu#cct1==1==@@}˰@@@̰ @@@@@|/1ؐzy@yy@@@y@y@#uui1>1>N@Z@@Ш@гx$list1>1>a1>1>e@г}%Types1>1>Q1>1>V@1>1>W1>1>`@@@@@@ @@@@@/2@@@@@@@Aг*Odoc_class2 =7=N2 =7=X@2=7=Y2=7=e@@@@@@+ڠڰ2>>2>>@@;@@/Class_structure61@@@@@@1\@@@@@@@@24>>25>?@0 D An explicit class structure, used in implementation and interface. 2B?? 2C??i@@@@@@@2[@+Class_apply72@@@@@2P?j?p2Q?j?@0< < Application/alias of a class, used in implementation only. 2^??2_??@@@@@@@2w@,Class_constr8?@@@@@2l??2m??@0X  A class used to give the type of the defined class, instead of a structure, used in interface only. For example, it will be used with the name [M1.M2....bar] when the class foo is defined like this : [class foo : int -> bar] 2z?@2{@A@@@@@@@2@0Class_constraint9L@@@Ơ@@@@@2AAG@0x ' A class definition with a constraint. 2AQAY2AQA@@@@@@@2@@@A*class_kind@@@@@@@_@@@\@#u2>>@f@г$list2>>2>?@г/inherited_class2>>2>>@@İ@@@Ű @@г$list2>?@г-class_element2>?2>?@@װ@@@ذ@@@@02␠@@@@@@#2?j?r2?j?}@@г+class_apply2?j?@@@@@@02@@@@@@#2??2??@@г,class_constr3??@@@@@@03@@@@@@#3AA 3AA0@}@г*class_kind3!AA43"AA>@@*@@г/class_type_kind3+AAA@@3@@@@13=@@@@@@@Aг*Odoc_class3A>>3B>>@3E>>3F>>@@@O@@@+3MAA3NAA@@;@@'cl_name:@@"!t@@@ɰ3\AA3]AA@1H= Complete name of the class. 3jAA3kAB@@@@@@@3@'cl_info;A@2Ԡ'@@@@@@ΰ3{BB(3|BBG@1g 7 Information found in the optional associated comment. 3BBH3BB@@@@@@@3@'cl_type<@@ X*class_type@@@Ѱ3BB3BB@14 Type of the class. 3BB3BB@@@@@@@3@2cl_type_parameters=@@3, x)type_expr@@@@@@ְ3BB3BB@12 Type parameters. 3BB3BC@@@@@@@3@*cl_virtual>@@3@@@ٰ3CC3CC1@1 # [true] when the class is virtual. 3CC23CCZ@@@@@@@3@'cl_kind?A@@@@ܰ3C[Ce3C[C@1ؐ? The way the class is defined. 3C[C3C[C@@@@@@@4@-cl_parameters@A@3!&)parameter@@@@@@4 CC4CC@1> The parameters of the class. 4CC4CD @@@@@@@44@&cl_locAA@$@@@4'D D4(D D/@@4@@@@A't_class@@@ @@@@@@@#46AA@@@Ш@г䠡$Name4AAA4BAA@4EAA4FAA@@@O@@@@R@𠰠254[@@@@@@#4ZBB04[BB7@A@Ш@г&option4dBB?4eBBE@г$info4mBB:4nBB>@@v@@@w @@@@z@2]4@@@@@@#4BB@@@Ш@г%Types4BB4BB@4BB4BB@@@@@@@@24@@@@@@#4BB@@@Ш@г$list4BB4BB@г%Types4BB4BB@ 4BB4BB@@@Ȱ@@@ɰ @@@@@24Ր  @  @@@ @ @#4CC(@@@Ш@г $bool4CC+4CC/@@@@@@@24򐠠@@@@@@#  4C[Cm4C[Ct@A@Ш@г*class_kind4C[Cw4C[C@@@@@@@25@@@@@@#5CC5CC@A@Ш@г$list5CC5CC@г)Parameter5$CC5%CC@5(CC5)CC@@@&2@@@+3 @@.@@6@#35?! @  @@@ @ @#5>D D5?D D"@A@Ш@г (location5HD D%5ID D-@@(Q@@+@@T@'@@Aг#*Odoc_class5VAA5WAA@*5ZAA5[AA@@@2d@@ 3H5n  @  @@@ @ @+5mD;DC5nD;DS@@;@@(cta_nameB@@$!t@@@ 5|D~D5}D~D@3h ) Complete name of the target class type. 5D~D5D~D@@@@@@@5@)cta_classCA@4@@@@@@5DD5DD@3 4 The target t_class or t_class_type, if we found it.5DD5DE0@@@@@@@5@3cta_type_parametersD@@50"|)type_expr@@@@@@5E1E;5E1Eg@3 + The type parameters. FIXME : use strings? 5E1Eh5E1E@@@@@@@5@@@A0class_type_alias@@@@@@@e@@@b@#dd]5D~D@N@@Ш@гg$Name5D~D5D~D@n5D~D5D~D@@@v@@y@@ @s35qp@pp@@@p@p@#ll5DD5DD@TA@Ш@гp&option6DD6DD@гu#cct6DD6DD@@}@@@ @@@@@|46&zy@yy@@@y@y@#uui6%E1EN@Z@@Ш@гx$list6.E1Ea6/E1Ee@г}%Types69E1EQ6:E1EV@6=E1EW6>E1E`@@@G@@@H @@@@K@4.6T@@@@@@@Aг*Odoc_class6XD;DV6YD;D`@6\D;Da6]D;Dq@@@f@@@+6dEE6eEE@@;@@/Class_signatureE5h@@@@@@5 @@@@@@!@@6EE6EF@@6@*Class_typeF*@@@"@@6F F&@4{ / A class type eventually applied to type args. 6F FG6F F{@@@@@@@6@@@A /class_type_kind@@@#@@@@)@@@&@#@@*6EE@)@гA$list6EF6EF @гF/inherited_class6EE6EF@@Nǰ@@@SȰ @@гK$list6EFG@гO-class_element6EF 6EF@@Wڰ@@@\۰R@@@@T@#PP6F F(6F F2@<@гR0class_type_alias6F F6d@@Ye@@@@V46UT@TT@@@T@T@@AгP*Odoc_class6EE6EE@W6EE6EE@@@_ @@@+ R R7FF7FF@@;@@(clt_nameG@@&}!t@@@$7FF7FG@5< Complete name of the type. 7"FG7#FG"@@@@@@@7;@(clt_infoHA@6+@@@'@@@)73G#G-74G#GM@5 7 Information found in the optional associated comment. 7AG#GN7BG#G@@@@@@@7Z@(clt_typeI@@$*class_type@@@,7OGG7PGG@@7h@3clt_type_parametersJ@@6֠$")type_expr@@@/@@@17bGG7cGG@5N2 Type parameters. 7pGG7qGH@@@@@@@7@+clt_virtualK@@79@@@47|HH 7}HH @5h % [true] if the class type is virtual 7HH!7HHK@@@@@@@7@(clt_kindLA@ !@@@77HLHV7HLHz@5 $ The way the class type is defined. 7HLH{7HLH@@@@@@@7@'clt_locMA@(B@@@:7HH7HH@@7@@@A ,t_class_type@@@?@@@@ / ,@@ @#7FF@@@Ш@г$Name7FF7FF@7FF7FF@@@ ذ@@@@% @57䐠@@@@@@#7G#G57G#G=@A@Ш@г&option7G#GE7G#GK@гà$info7G#G@7G#GD@@ @@@  @@@@* @ʠ58 @@@@@@#àð8 GG@@@Ш@гƠ%Types8GG8GG@Ͱ8GG8GG@@@ $@@@@- '@@#Πΰ8$GG@@@Ш@гѠ$list8-GG8.GG@г֠%Types88GG89GG@ݰ8<GG8=GG@@@ F@@@ G @@@@2 J@⠰6-8S@@@@@@#۠۰8RHH@@@Ш@гޠ$bool8[HH8\HH@@ d@@@@5 g@堰6J8p@@@@@@#ޠް8oHLH^8pHLHf@A@Ш@г⠐/class_type_kind8yHLHi8zHLHx@@ @@@@8 @頰6h8@@@@@@#8HH8HH@A@Ш@г栐(location8HH8HH@@ @@@@; @@@Aг頡*Odoc_class8FF8FF@8FF8FF@@@ @@ "68  @  @@@ @ @@388888888@ @A  -@88̐/ {1 Functions} 8HH8HH@@@@@@388888888@  $ bo qf 4      E ?@A .class_elementsN8II'8II5@б%transг8$bool8II?8IIC@@ @@@^$@@б@г T't_class8IIG8IIN@@ @@@_3@@г8$list9II`9IId@г 7-class_element9IIR9II_@@ @@@`J@@@@@@bO @@@"@@cR%@@?88@@@d @@eZ9&II8 @@ @9)II##@7 $ Access to the elements of a class. 96HH97HI@@@@@@@9O@@3@7$9J@@@@@@z0class_attributesO9MII9NII@б%transг9$bool9ZII9[II@@ @@@f39\9\9\9\9\9\9\9\@:@A@@б@г Ơ't_class9kII9lII@@ @@@g@@г8$list9xII9yII@г+t_attribute%Value9II9II@ 9II9II@@@@@@h1 @@@ @@@j6@@@+@@k9. @@J{B@@@l @@m@9II(@@ @9II+@7 ) Access to the list of class attributes. 9IfIj9IfI@@@@@@@9@@;@79Đ@@@@@@`JJ:?JJ@@ @@@u3:@:@:@:@:@:@:@:@@m:@A@@б@г 't_class:OJJ:PJJ@@ @@@v@@г9ՠ$list:\JJ:]JJ@г(t_method%Value:jJJ:kJJ@ :nJJ:oJJ@@@@@@w1 @@@ @@@y6@@@+@@z9. @@J_B@@@{ @@|@:JJ(@@ @:JJ+@8r # Access to the methods of a class. :JJ:JJ@@@@@@@:@@;@8:@@@@@@`.class_commentsR:K$K,:K$K:@б%transг:s$bool:K$KD:K$KH@@ @@@}3::::::::@{:@A@@б@г $'t_class:K$KL:K$KS@@ @@@~@@г:O$list:K$K\:K$K`@г8ꠐ$text:K$KW:K$K[@@ @@@(@@@@@@- @@@"@@0%@@AР9@@@ @@7:K$K=@@ @:K$K("@8㐠 $ Access to the comments of a class. ;JJ;JK#@@@@@@@;@@2@8;@@@@@@W3class_type_elementsS;KK;KK@б%transг:䠐$bool;)KK;*KK@@ @@@3;+;+;+;+;+;+;+;+@r:@A@@б@г ,t_class_type;:KK;;KK@@ @@@@@г:$list;GKK;HKK@гx-class_element;QKK;RKK@@ @@@(@@@@@@- @@@"@@0%@@AA9@@@ @@7;fKK@@ @;iKK"@9T ) Access to the elements of a class type. ;vKbKf;wKbK@@@@@@@;@@2@9d;@@@@@@W5class_type_attributesT;LL&;LL;@б%transг;U$bool;LLE;LLI@@ @@@3;;;;;;;;@r:@A@@б@г ,t_class_type;LLM;LLY@@ @@@@@г;1$list;LLo;LLs@г+t_attribute%Value;LL];LLb@ ;LLc;LLn@@@@@@1 @@@ @@@6@@@+@@9. @@JB@@@ @@@;LL>(@@ @;LL"+@9ΐ . Access to the list of class type attributes. ;KK;KL@@@@@@@< @@;@9<@@@@@@` !class_type_parameter_text_by_nameU<LL<LL@б@г],t_class_type<LL<LM@@ @@@3<<<<<<<<@y8@A@@б@г;&string<#LM <$LM@@ @@@@@г;&option<0LM<1LM@г:D$text<:LM<;LM@@ @@@(@@@@@@- @@@"@@0%@@@6@@39@@@OO >OO#@@>@3Element_module_typed-t_module_typebf@@@@@>O$O*>O$OP@@>/@7Element_included_modulee/included_module[f@@@@@>&OQOW>'OQO@@>?@-Element_classf't_class@@@ O@@>6OO>7OO@@>O@2Element_class_typeg,t_class_type@@@ P@@>FOO>GOO@@>_@-Element_valueh't_value@@@ Q@@>VOO>WOP@@>o@6Element_type_extensioni'0t_type_extension@@@ v@@>fPP >gPP?@@>@1Element_exceptionj"x+t_exception@@@ @@>vP@PF>wP@Pr@@>@,Element_typek&t_type@@@ @@>PsPy>PsP@@>@6Element_module_commentl<@@@ @@>PP>PP@@> @@@A+Odoc_module.module_element@@@#@@@@>NN @< , To keep the order of elements in a module. >NN>NN@@@@@@@@@>@@#>OO@@г(t_module>OO@@3>>>>>>>>@;@@@A@@@% @@@@@42@@$#mmtZf;@@@A @@@%@@@@@>QQ>Q9QY@<̐ 8 Used where we can reference t_module or t_module_type. >PP>PQ@@@@@@@@@?@;@@@A@@@%@@@@@>Q[Q_>RR@@@@?@,module_alias\f;@@@A @@@%@@@@@? RR? SS@@@@?#@0module_parameter]f;@@@A @@@%@@@@@?SS?TT@@@@?2@+module_kind^f;@@@A @@@%@@@@@?( UU?)YY3@=> Different kinds of a module. ?6 TT?7 TU@@@@@@@@@?O@7;@@@A?@@@%@@@@@?CYY?D)]5]>@=/= Representation of a module. ?QYiYm?RYiY@@@@@@@@@?j@1module_type_alias`f;@@@A @@@%@@@@@?`+]@]D?a/^@^I@@@@?y@0module_type_kindaf;@@@A @@@%@@@@@?o2^v^z?p:``@=[ ! Different kinds of module type. ?}1^K^O?~1^K^u@@@@@@@@@?@n;@@@Av@@@%@@@@@?>a3a7?Jdd@=v " Representation of a module type. ?=aa ?=aa2@@@@@@@@@?@@A@@@@@#?O$O,?O$O?@@г-t_module_type?O$OC@@@@@@@#?OQOY?OQOp@@г/included_module?OQOt@@@@@@@#?OO?OO@@г%Class?OO?OO@?OO@@@@@@@@#?OO?OO@@г%Class?OO?OO@?OO@@@)@@@@@#?OO?OO@@г%Value?OO?OO@?OO@@@@@@@@@#@PP @PP!@@г)Extension@PP%@PP.@@PP/@@@W@@@@@#@P@PH@P@PY@@г)Exception@(P@P]@)P@Pf@@,P@Pg@@@n@@@@@#@3PsP{@4PsP@@г$Type@?PsP@@PsP@@CPsP@@@@@@@@#@JPP@KPP@@г$text@TPP@@@@@@@@Aг+Odoc_module@_NN@`NN@İ@cNN@dNN@@@@@Ǡ>Q@w@@@@@@+@vQQ @wQQ @@;@@#Mod@@@#@@@Q!Q'@Q!Q8@@@ @'Modtype@@@#@@@Q9Q?@@@ @@@A#mmt@@@#@@@@@@@###@Q!Q)@Q!Q,@@г%(t_module@Q!Q0&@@,'@@@@)@#%%@Q9QA@Q9QH@@г'-t_module_type@Q9QL@@.@@@@+@@Aг(+Odoc_module@QQ@QQ@/@QQ@QQ@@@7 @@>@ސ@@@@@@+@Q[Qc@Q[Qr@@;@@'im_name@@0U!t@@@#@QQ@QQ@>ؐ ' Complete name of the included module. @QQ@QQ@@@@@@@A @)im_moduleA@@d4@@@#@@@#A QQA QR@> 5 The included module or module type, if we found it. AQRAQRL@@@@@@@A2 @'im_infoA@@?$info@@@#@@@#A,RMRWA-RMR@? / comment associated with the include directive A:RMRA;RMR@@@@@@@AS@@@A/included_module@@@#@@@@J@@@G@#dd]AIQQ@N@@Ш@гg$NameATQQAUQQ@nAXQQAYQQ@@@v@@y@@#@s?HAnqp@pp@@@p@p@#llAmQQAnQR@TA@Ш@гp&optionAwQR AxQR@гu#mmtAQRAQR@@}°@@@ð @@@@#@|?pAzy@yy@@@y@y@#uuARMR_ARMRf@[A@Ш@гy&optionARMRyARMR@г~*Odoc_typesARMRiARMRs@ARMRtARMRx@@@@@@ @@@@#@?AŐ@@@@@@@Aг+Odoc_moduleAQ[QuAQ[Q@AQ[QAQ[Q@@@@@@+ՠհARRARR@@;@@'ma_name@@1M!t@@@#ARSARS@?А % Complete name of the target module. ARSARSE@@@@@@@B @)ma_moduleA@A\,@@@#@@@#BSFSPBSFSp@? : The real module or module type if we could associate it. BSFSqBSFS@@@@@@@B*@@@A},module_alias@@@#@@@@@@@@#CC<B RS@-@@Ш@гF$NameB+RSB,RS@MB/RSB0RS@@@Ur@@X@@#u@R@BEPO@OO@@@O@O@#KKBDSFSXBESFSa@3A@Ш@гO&optionBNSFShBOSFSn@гT#mmtBWSFSdBXSFSg@@\@@@a @@d@@#@[@GBmYX@XX@@@X@X@@AгT+Odoc_moduleBqRRBrRR@[BuRRBvRR@@@c@@p@+nnB}SSB~SS@@;@@'mp_name@@BV@@@#BSTBST@@v* the name BSTBST"@@@@@@@B@'mp_type@@B/k+module_type@@@#@@@#BT#T+BT#TO@@* the type BT#TPBT#T_@@@@@@@B@,mp_type_code@@B@@@#BT`ThBT`T@@3 the original code BT`TBT`T@@@@@@@B@'mp_kind@@z@@@#BTTBTT@@ː ! the way the parameter was built BTTBTT@@@@@@@C@@@AY0module_parameter@@@#@@@@@@@@#wwrBST@c@@Ш@гz&stringCST CST@@G@@@@#J@@C~@~~@@@~@~@#zznCT#T2@_@@Ш@г}&optionC"T#TGC#T#TM@г%TypesC-T#T5C.T#T:@C1T#T;C2T#TF@@@t@@@u @@@@#x@A"CH@@@@@@#CGT`Tt@s@@Ш@г&stringCPT`TwCQT`T}@@@@@@#@A?Ce@@@@@@#CdTT@v@@Ш@г0module_type_kindCmTTCnTT@@@@@@#@A\C@@@@@@@Aг+Odoc_moduleCSSCSS@CSSCSS@@@Ͱ@@v@+ttC UUC UU)@@;@@-Module_structC@@@#@@@#@@C UFULC UFUr@A> A complete module structure. C UFUsC UFU@@@@@@@C@,Module_alias@@@#@@C UUC UU@A 7 Complete name and corresponding module if we found it C UUC UU@@@@@@@C@.Module_functor@@@#Ƞ@@@#@@C UUC UV1@Aϐ > A functor, with its parameter and the rest of its definition CV2VGCV2V@@@@@@@D @,Module_apply@@@#ʠ@@@#@@DVVDVV@A𐠠 / A module defined by application of a functor. DVVDVW@@@@@@@D+@1Module_apply_unit@@@#@@D WW D!WW/@B ( A generative application of a functor. D.W0WED/W0Wr@@@@@@@DG@+Module_with@@@#͠D @@@#@@DAWsWyDBWsW@B- n A module whose type is a with ... constraint. Should appear in interface files only. DOWWDPWX,@@@@@@@Dh@1Module_constraint?@@@#Ϡ@@@#@@DbX-X3DcX-Xh@BN ' A module constraint by a module type. DpXiX~DqXiX@@@@@@@D@-Module_typeofDJ@@@#@@D~XXDXX@Bj / by now only the code of the module expression DXXDXX@@@@@@@D@-Module_unpackDf@@@#ҠI@@@#@@DYYw@B . code of the expression and module type alias DYY4DYYg@@@@@@@D@@@A+module_kind@@@#@@@@@@~@#!!D UFUND UFU[@@г#$listD UFUn@г'.module_elementD UFU_D UFUm@@/@@@4*@@@@,BDᐠ*)@))@@@)@)@#%%D UUD UU@@г',module_aliasD UU(@@.+)@@@@+BD)(@((@@@(@(@#$$D UVD UV@ @г&0module_parameterE UVE UV#@@.G@@г++module_kindE UV&,@@2P-@@@@/BE!-,@,,@@@,@,@#((E VVE!VV@@г*+module_kindE*VVE+VV@@2l@@г/+module_kindE4VV0@@6u1@@@@3C EF10@00@@@0@0@#,,EEWWEFWW @@г.+module_kindEOWW$/@@50@@@@2C;Ea0/@//@@@/@/@#++E`WsW{EaWsW@@г-0module_type_kindEjWsWEkWsW@@5@@г2&stringEtWsW3@@94@@@@6C`E43@33@@@3@3@#//EX-X5EX-XF@@г1+module_kindEX-XJEX-XU@@9Ѱ@@г60module_type_kindEX-XX7@@=ڰ8@@@@:CE87@77@@@7@7@#33EXXEXX@@г5&stringEXX6@@<7@@@@9CEƐ76@66@@@6@6@#22EYYEYY@@г4&stringEYYEYY@@<@@г91module_type_aliasEYY"@@@@@@@=CE될<;@;;@@@;@;@@Aг7+Odoc_moduleE UU,E UU7@>E UU8E UUC@@@F6@@РCF@@@@@@+FYYFYY@@;@@&m_name@@5~!t@@@#հFYYFYY@D> Complete name of the module. F#YYF$YZ@@@@@@@F<@&m_typeA@2+module_type@@@#ذF1ZZF2ZZ2@D9 The type of the module. F?ZZ3F@ZZQ@@@@@@@FX@&m_infoA@E:@@@#@@@#ݰFP ZRZ\FQ ZRZz@D< 7 Information found in the optional associated comment. F^ ZRZ{F_ ZRZ@@@@@@@Fw @.m_is_interface@@F'@@@#Fj!ZZFk!ZZ@DV . [true] for modules read from interface files Fx!ZZFy!Z[ @@@@@@@F!@&m_file@@FP@@@#F"[[F"[[)@Dp $ The file the module is defined in. F"[[*F"[[S@@@@@@@F"@&m_kindA@@@@#F#[T[^F#[T[|@D The way the module is defined. F#[T[}F#[T[@@@@@@@F#@%m_locA@7J@@@#F$[[F$[[@@F$@*m_top_depsA@F?63!t@@@#@@@#F%[[F%[[@D 4 The toplevels module names this module depends on. F%[[F%[\.@@@@@@@F%@&m_codeA@FCF@@@#@@@#F&\/\9F&\/\Y@D֐> The whole code of the module F&\/\ZF&\/\}@@@@@@@G&@+m_code_intfA@FbF@@@#@@@#G '\~\G '\~\@D / The whole code of the interface of the module G'\~\G'\~\@@@@@@@G0'@+m_text_only@@F@@@#G#(\\G$(\]@E - [true] if the module comes from a text file G1(\]G2(\]4@@@@@@@GJ(@@@A(t_module@@@$@@@@@@@#22+G@YY@@@Ш@г5$NameGKYYGLYY@<GOYYGPYY@@@D@@G@@#@AE?Ge?>@>>@@@>@>@#::GdZZGeZZ@%A@Ш@г>%TypesGpZZGqZZ$@EGtZZ%GuZZ0@@@M@@P@@#@JEdGHG@GG@@@G@G@#CCG ZRZdG ZRZj@+A@Ш@гG&optionG ZRZrG ZRZx@гL$infoG ZRZmG ZRZq@@Tް@@@Y߰ @@\@@#@SEGQP@PP@@@P@P@#LLGG!ZZ@8@@Ш@гO$boolG!ZZG!ZZ@@W@@Z@@#@VEGϐTS@SS@@@S@S@#OOJG"[[@;@@Ш@гR&stringG"[[!G"[['@@Z @@]@@# @YEG쐠WV@VV@@@V@V@#RRG#[T[fG#[T[l@?A@Ш@гV+module_kindG#[T[oG#[T[z@@^ 7@@a@@# :@]EH [Z@ZZ@@@Z@Z@#VVH $[[H $[[@QA@Ш@гZ(locationH$[[H$[[@@b U@@e@@# X@a@#]]H%[[H%[[@CA@Ш@гa$listH&%[[H'%[[@гf$NameH1%[[H2%[[@mH5%[[H6%[[@@@u x@@@z y @@}@@# |@rF&HLpo@oo@@@o@o@#kkHK&\/\AHL&\/\G@SA@Ш@гo&optionHU&\/\QHV&\/\W@гt&stringH^&\/\JH_&\/\P@@| @@@  @@@@# @{FNHtyx@xx@@@x@x@#ttHs'\~\Ht'\~\@\A@Ш@гx&optionH}'\~\H~'\~\@г}&stringH'\~\H'\~\@@ Ȱ@@@ ɰ @@@@# @FvH@@@@@@#}}xH(\\@i@@Ш@г$boolH(\\H(\\@@ @@@@# @FH@@@@@@@Aг+Odoc_moduleHYYHYY@HYYHYY@@@ @@ FHՐ  @  @@@ @ @+ ~ ~H+]@]HH+]@]Y@@;@@(mta_name@@8L!t@@@$H-]]H-]]@Fϐ * Complete name of the target module type. H-]]H-]]@@@@@@@I )@*mta_moduleA@H[ @@@$@@@$I.]]I.]^ @F 0 The real module type if we could associate it. I.]^ I.]^?@@@@@@@I)*@@@A |1module_type_alias@@@$ @@@@ @@@ @#CC<I-]]@-@@Ш@гF$NameI*-]]I+-]]@MI.-]]I/-]]@@@U q@@X@@$ t@RGIDPO@OO@@@O@O@#KKIC.]]ID.]]@3A@Ш@гO&optionIM.]^IN.]^@гT-t_module_typeIV.]]IW.]^@@\ @@@a  @@d@@$ @[GFIlYX@XX@@@X@X@@AгT+Odoc_moduleIp+]@]\Iq+]@]g@[It+]@]hIu+]@]y@@@c @@ @+  I|2^v^~I}2^v^@@;@@2Module_type_structŐI @@@$ @@@$@@I3^^I3^^@G|> A complete module signature. I3^^I3^_@@@@@@@I+@3Module_type_functorƐ @@@$ L@@@$@@I4__ I4__H@G > A functor, with its parameter and the rest of its definition I5_I_UI5_I_@@@@@@@I,@1Module_type_aliasǐ w@@@$@@I6__I6__@G C Complete alias name and corresponding module type if we found it. I7__I7_`@@@@@@@I-@0Module_type_withȐ @@@$I@@@$@@I8``#I8``R@Gڐ ; The module type kind and the code of the with constraint. I9`S`_I9`S`@@@@@@@J.@2Module_type_typeofɐI@@@$@@J :`` @G / by now only the code of the module expression J;``J;`a@@@@@@@J0/@@@A 0module_type_kind@@@$@@@@  @@ @#J&3^^J'3^^@@г$listJ03^^@г.module_elementJ83^^J93^^@@ z@@@ {@@@@H&JL@@@@@@#JK4__JL4__!@@г0module_parameterJU4__%JV4__5@@ @@г0module_type_kindJ_4__8@@ @@@@HKJq@@@@@@#Jp6__Jq6__@@г1module_type_aliasJz6__@@ @@@@HfJ@@@@@@#J8``%J8``5@@г0module_type_kindJ8``9J8``I@@ װ@@г&stringJ8``L@@ @@@@HJ@@@@@@#J:``J:``@@г&stringJ:`` K@@  L@@@@HJ̐@@@@@@@Aг+Odoc_moduleJ2^v^J2^v^@J2^v^J2^v^@@@ @@ jHJ萠 h g@ g g@@@ g@ g@+ Ӡ ӰJ>a3a;J>a3aH@@;@@'mt_name@@:_!t@@@$J@aqa{J@aqa@H␠ # Complete name of the module type. K@aqaK@aqa@@@@@@@K0@'mt_infoA@Jn?u@@@$@@@$KAaaKAaa@I 7 Information found in the optional associated comment. K#AaaK$Aab@@@@@@@K<1@'mt_typeA@J7+module_type@@@$@@@$ K6Bbb(K7BbbT@I" 0 [None] means that the module type is abstract. KDBbbUKEBbb@@@@@@@K]2@/mt_is_interface@@K @@@$#KPCbbKQCbb@I< / [true] for modules read from interface files. K^CbbK_Cbb@@@@@@@Kw3@'mt_file@@K6@@@$&KjDbbKkDbb@IV ) The file the module type is defined in. KxDbcKyDbc.@@@@@@@K4@'mt_kindA@J #@@@$)@@@$+KEc/c9KEc/cd@Iu  The way the module is defined. [None] means that module type is abstract. It is always [None] when the module type was extracted from the implementation file. That means module types are only analysed in interface files. KFcecsKHd'dx@@@@@@@K5@&mt_locA@<5@@@$.KIdydKIdyd@@K6@@@A -t_module_type@@@$3@@@@ $ !@@ @#àðK@aqa@@@Ш@гƠ$NameK@aqaK@aqa@ͰK@aqaK@aqa@@@ @@@@$ @ҠIKא@@@@@@#ˠ˰KAaaKAaa@A@Ш@гϠ&optionKAaaKAaa@гԠ$infoKAaaKAaa@@ +@@@ , @@@@$ /@۠IK@@@@@@#Ԡ԰KBbb0KBbb7@A@Ш@гؠ&optionLBbbLL BbbR@гݠ%TypesLBbb:LBbb?@LBbb@LBbbK@@@ Z@@@ [ @@@@$! ^@頰JL.@@@@@@#L-Cbb@@@Ш@г堐$boolL6CbbL7Cbb@@ x@@@@$$ {@젰J%LK@@@@@@#LJDbb@@@Ш@г蠐&stringLSDbbLTDbb@@ @@@@$' @JBLh@@@@@@#LgEc/cALhEc/cH@A@Ш@г점&optionLqEc/c\LrEc/cb@г0module_type_kindLzEc/cKL{Ec/c[@@ @@@  @@@@$, @JjL@@@@@@#LIdydLIdyd@A@Ш@г(locationLIdydLIdyd@@ ۰@@@@$/ @@@Aг+Odoc_moduleL>a3aKL>a3aV@L>a3aWL>a3ad@@@ @@ &JL $ #@ # #@@@ #@ #@@ 0@LL͐; {1 Functions for modules} LLddLLdd@@@@@@3LLLLLLLL@  tY   C  X    _@A/module_elementsѠLOdeLOde@б%transгL$boolLOde LOde$@@ @@@&%@@б@г(t_moduleLOde(LOde0@@ @@@&4@@гL$listMOdeCM OdeG@г.module_elementMOde4MOdeB@@ @@@&K@@@@@@&P @@@"@@&S%@@?7@@@& @@&ZM'Ode@@ @M*Ode"@K % Access to the elements of a module. M7NddM8Ndd@@@@@@@MP7@@2@K%MK@@@@@@z.module_modulesҠMNRezeMOReze@б%transгM$boolM[RezeM\Reze@@ @@@&3M]M]M]M]M]M]M]M]@:@A@@б@гf(t_moduleMlRezeMmReze@@ @@@&@@гL$listMyRezeMzReze@г}(t_moduleMRezeMReze@@ @@@&(@@@@@@&- @@@"@@&0%@@As9@@@& @@&7MReze@@ @MReze~"@K ' Access to the submodules of a module. MQeIeMMQeIey@@@@@@@M8@@2@KM@@@@@@W3module_module_typesӠMUeeMUef @б%transгM$boolMUefMUef@@ @@@&3MMMMMMMM@r:@A@@б@гנ(t_moduleMUefMUef%@@ @@@&@@гMc$listMUef7MUef;@гޠ-t_module_typeMUef)MUef6@@ @@@&(@@@@@@&- @@@"@@&0%@@A9@@@& @@&7N Uef@@ @N Uee"@K ) Access to the module types of a module. NTeeNTee@@@@@@@N29@@2@LN-@@@@@@W7module_included_modulesԠN0Xftf|N1Xftf@б%transгM$boolN=XftfN>Xftf@@ @@@&3N?N?N?N?N?N?N?N?@r:@A@@б@гH(t_moduleNNXftfNOXftf@@ @@@&@@гMԠ$listN[XftfN\Xftf@г?/included_moduleNeXftfNfXftf@@ @@@&(@@@@@@&- @@@"@@&0%@@AU9@@@& @@&7NzXftf@@ @N}Xftfx"@Lh - Access to the included modules of a module. NWf=fANWf=fs@@@@@@@N:@@2@LxN@@@@@@W6module_type_extensionsՠN[fgN[fg@б%transгNi$boolN[fg$N[fg(@@ @@@&3NNNNNNNN@r:@A@@б@г(t_moduleN[fg+N[fg3@@ @@@&@@гNE$listN[fgRN[fgV@г70t_type_extension)ExtensionN[fg7N[fg@@ N[fgAN[fgQ@@@@@@&1 @@@ @@@&6@@@+@@&9. @@JϠB@@@& @@&@N[fg(@@ @N[fg+@L␠ , Access to the type extensions of a module. OZffOZff@@@@@@@O;@@;@LO@@@@@@`1module_exceptions֠O^ggO^gg@б%transгN㠐$boolO(^ggO)^gg@@ @@@&3O*O*O*O*O*O*O*O*@{:@A@@б@г3(t_moduleO9^ggO:^gg@@ @@@&@@гN$listOF^ggOG^gg@г3R+t_exception)ExceptionOT^ggOU^gg@ OX^ggOY^gg@@@@@@&1 @@@ @@@&6@@@+@@&9. @@JIB@@@& @@&@On^gg(@@ @Oq^gg+@M\ ' Access to the exceptions of a module. O~]gXg\O]gXg@@@@@@@O<@@;@MlO@@@@@@`,module_typesנOahhOahh@б%transгO]$boolOahh%Oahh)@@ @@@&3OOOOOOOO@{:@A@@б@г(t_moduleOahh,Oahh4@@ @@@&@@гO9$listOahhDOahhH@г1&t_type$TypeOahh8Oahh<@ Oahh=OahhC@@@@@@&1 @@@ @@@&6@@@+@@&9. @@JàB@@@& @@&@Oahh(@@ @Oahh +@M֐ " Access to the types of a module. O`ggO`gh@@@@@@@P=@@;@MP @@@@@@`-module_valuesؠPdhwhPdhwh@б%transгOנ$boolPdhwhPdhwh@@ @@@&3PPPPPPPP@{:@A@@б@г'(t_moduleP-dhwhP.dhwh@@ @@@&@@гO$listP:dhwhP;dhwh@г('t_value%ValuePHdhwhPIdhwh@ PLdhwhPMdhwh@@@@@@&1 @@@ @@@&6@@@+@@&9. @@J=B@@@& @@&@Pbdhwh(@@ @Pedhwh{+@NP # Access to the values of a module. PrchJhNPschJhv@@@@@@@P>@@;@N`P@@@@@@`0module_functions٠PghhPghi @б%transгPQ$boolPghiPghi@@ @@@&3PPPPPPPP@{:@A@@б@г(t_modulePghiPghi#@@ @@@&@@гP-$listPghi5Pghi9@г)'t_value%ValuePghi'Pghi,@ Pghi-Pghi4@@@@@@&1 @@@ @@@&6@@@+@@&9. @@JB@@@& @@'@Pghi (@@ @Pghh+@Nʐ * Access to functional values of a module. PfhhPfhh@@@@@@@Q?@@;@NQ@@@@@@`4module_simple_valuesڠQjisi{Qjisi@б%transгPˠ$boolQjisiQjisi@@ @@@'3QQQQQQQQ@{:@A@@б@г(t_moduleQ!jisiQ"jisi@@ @@@'@@гP$listQ.jisiQ/jisi@г)'t_value%ValueQ<jisiQ=jisi@ Q@jisiQAjisi@@@@@@'1 @@@ @@@'6@@@+@@'9. @@J1B@@@' @@'@QVjisi(@@ @QYjisiw+@OD . Access to non-functional values of a module. Qfii;i?Qgii;ir@@@@@@@Q@@@;@OTQz@@@@@@`.module_classes۠Q}miiQ~mij@б%transгQE$boolQmijQmij@@ @@@' 3QQQQQQQQ@{:@A@@б@г(t_moduleQmijQmij@@ @@@' @@гQ!$listQmij/Qmij3@г%'t_class%ClassQmij!Qmij&@ Qmij'Qmij.@@@@@@' 1 @@@ @@@' 6@@@+@@'9. @@JB@@@' @@'@Qmij(@@ @Qmii+@O $ Access to the classes of a module. QliiQlii@@@@@@@QA@@;@OQ@@@@@@`2module_class_typesܠQpjgjoQpjgj@б%transгQ$boolRpjgjRpjgj@@ @@@'3RRRRRRRR@{:@A@@б@г(t_moduleRpjgjRpjgj@@ @@@'@@гQ$listR"pjgjR#pjgj@г%,t_class_type%ClassR0pjgjR1pjgj@ R4pjgjR5pjgj@@@@@@'1 @@@ @@@'6@@@+@@'9. @@J%B@@@' @@'@RJpjgj(@@ @RMpjgjk+@P8 ( Access to the class types of a module. RZoj5j9R[oj5jf@@@@@@@RsB@@;@PHRn@@@@@@`2module_all_classesݠRqskkRrskk,@б%transгR9$boolR~skk6Rskk:@@ @@@'3RRRRRRRR@{:@A@@б@г(t_moduleRskk=RskkE@@ @@@'@@гR$listRskkWRskk[@г&'t_class%ClassRskkIRskkN@ RskkORskkV@@@@@@'1 @@@ @@@'6@@@+@@'9. @@JB@@@' @@' @Rskk/(@@ @Rskk+@P Q The list of classes defined in this module and all its submodules and functors. RrjjRrjk@@@@@@@RC@@;@PR萠@@@@@@`1module_is_functorޠRvkkRvkk@б@г(t_moduleRvkkRvkk@@ @@@'!3RRRRRRRR@y8@A@@гR$boolSvkkSvkk@@ @@@'"@@@@@'#@@@Svkk @P " [true] if the module is functor. Suk]kaSuk]k@@@@@@@S6D@@@Q S1@@@@@@11module_parametersߠS4yllS5yll@б%transгR$boolSAyll#SByll'@@ @@@'$3SCSCSCSCSCSCSCSC@La:@A@@б@гL(t_moduleSRyll*SSyll2@@ @@@'%@@гRؠ$listS_yllWS`yll[@В@г\0module_parameterSmyll7SnyllG@@ @@@'&,@@@гRؠ&optionS|yllOS}yllU@гQ$textSyllJSyllN@@ @@@''E@@@@@@')J @@@@&@ @@'*Q+@@@@ @@@',VSyll6>@@@L@@'-ZOA@@kc@@@'. @@'/aSyllI@@ @SyllL@Q ? The list of couples (module parameter, optional description). SxkkSxkk@@@@@@@SE@@\@QS̐@@@@@@/module_commentsS|llS|ll@б%transгS$boolS|llS|ll@@ @@@'03SSSSSSSS@:@A@@б@г砐(t_moduleS|llS|ll@@ @@@'1@@гSs$listS|llS|ll@гR$textT|llT|ll@@ @@@'2(@@@@@@'4- @@@"@@'50%@@A9@@@'6 @@'77T|ll@@ @T|ll"@R> The list of module comments. T){l]laT*{l]l@@@@@@@TBF@@2@RT=@@@@@@WTKTJ {1 Functions for module types} TG~llTH~ll@@@@@@3TFTFTFTFTFTFTFTF@i1@A4module_type_elementsTSm#m+TTm#m?@б%transгT$boolT`m#mITam#mM@@ @@@'8@@б@гY-t_module_typeTom#mPTpm#m]@@ @@@'9+@@гS$listT|m#mpT}m#mt@г.module_elementTm#maTm#mo@@ @@@':B@@@@@@'<G @@@"@@'=J%@@?v7@@@'> @@'?QTm#mB@@ @Tm#m'"@R * Access to the elements of a module type. TllTlm"@@@@@@@TG@@2@RT@@@@@@q3module_type_modulesTmmTmm@б%transгT$boolTmmTmm@@ @@@'@3TTTTTTTT@:@A@@б@гʠ-t_module_typeTmmTmm@@ @@@'A@@гTf$listTmmTmm@г(t_moduleTmmTmm@@ @@@'B(@@@@@@'D- @@@"@@'E0%@@A9@@@'F @@'G7U mm@@ @Umm"@R , Access to the submodules of a module type. UmvmzUmvm@@@@@@@U5H@@2@S U0@@@@@@W8module_type_module_typesU3n0n8U4n0nP@б%transгT$boolU@n0nZUAn0n^@@ @@@'H3UBUBUBUBUBUBUBUB@r:@A@@б@г;-t_module_typeUQn0naURn0nn@@ @@@'I@@гTנ$listU^n0nU_n0n@гR-t_module_typeUhn0nrUin0n@@ @@@'J(@@@@@@'L- @@@"@@'M0%@@AX9@@@'N @@'O7U}n0nS@@ @Un0n4"@Sk . Access to the module types of a module type. UmmUmn/@@@@@@@UI@@2@S{U@@@@@@W 3 Access to non-functional values of a module type. X`q<q@Xaq<qx@@@@@@@XyO@@;@VNXt@@@@@@`3module_type_classesXwrr Xxrr@б%transгX?$boolXrr(Xrr,@@ @@@'3XXXXXXXX@{:@A@@б@г-t_module_typeXrr/Xrr<@@ @@@'@@гX$listXrrNXrrR@г, 't_class%ClassXrr@XrrE@ XrrFXrrM@@@@@@'1 @@@ @@@'6@@@+@@'9. @@JB@@@' @@'@Xrr!(@@ @Xrr+@V ) Access to the classes of a module type. XqqXqr@@@@@@@XP@@;@VX@@@@@@`7module_type_class_typesXrrXrr@б%transгX$boolXrrXrr@@ @@@'3YYYYYYYY@{:@A@@б@г-t_module_typeYrrYrr@@ @@@'@@гX$listYrrYrr@г,,t_class_type%ClassY*rrY+rr@ Y.rrY/rr@@@@@@'1 @@@ @@@'6@@@+@@'9. @@J B@@@' @@'@YDrr(@@ @YGrr+@W2 - Access to the class types of a module type. YTrTrXYUrTr@@@@@@@YmQ@@;@WBYh@@@@@@`7module_type_all_classesYksEsMYlsEsd@б%transгY3$boolYxsEsnYysEsr@@ @@@'3YzYzYzYzYzYzYzYz@{:@A@@б@гs-t_module_typeYsEsuYsEs@@ @@@'@@гY$listYsEsYsEs@г-'t_class%ClassYsEsYsEs@ YsEsYsEs@@@@@@'1 @@@ @@@'6@@@+@@'9. @@J B@@@' @@'@YsEsg(@@ @YsEsI+@W V The list of classes defined in this module type and all its submodules and functors. YrrYrsD@@@@@@@YR@@;@WY␠@@@@@@`6module_type_is_functorYssYss@б@гڠ-t_module_typeYssYss@@ @@@'3YYYYYYYY@y8@A@@гY$boolYssZst@@ @@@'@@@@@'@@@Z ss @W ' [true] if the module type is functor. ZssZss@@@@@@@Z0S@@@XZ+@@@@@@16module_type_parametersZ.tLtTZ/tLtj@б%transгY$boolZ;tLttZ<tLtx@@ @@@'3Z=Z=Z=Z=Z=Z=Z=Z=@La:@A@@б@г6-t_module_typeZLtLt{ZMtLt@@ @@@'@@гYҠ$listZYtLtZZtLt@В@гV0module_parameterZgtLtZhtLt@@ @@@',@@@гYҠ&optionZvtLtZwtLt@гX$textZtLtZtLt@@ @@@'E@@@@@@'J @@@@&@ @@'Q+@@@@ @@@'VZtLt>@@@L@@'ZOA@@k!}c@@@' @@'aZtLtmI@@ @ZtLtPL@X ? The list of couples (module parameter, optional description). ZttZttK@@@@@@@ZT@@\@XZƐ@@@@@@4module_type_commentsZttZtt@б%transгZ$boolZtuZtu@@ @@@'3ZZZZZZZZ@:@A@@б@гѠ-t_module_typeZtuZtu@@ @@@'@@гZm$listZtuZtu"@гY$textZtuZtu@@ @@@'(@@@@@@'- @@@"@@'0%@@A!9@@@' @@'7[tt@@ @[tt"@Y> The list of module comments. [#tt[$tt@@@@@@@[<U@@2@Y[7@@@@@@W@C=A@bB@YB@<cB@/B@"B@>8B@lB@B@4]B@m @ @  B@ " @  [@ ; @  k@ K @  {@ [ @  @ k @@{T@4@L@@]@=@@_@@o@@'@@7@@x@X@p@@3[[[[[[[[@r@AU3[[[[[[[[@@A[NxNz[u#u(@@Yu[ > Representation and manipulation of modules and module types. [N$N$[N$Ng@@@@@@@[NhNh@@[[ ! {2 Getting strings from values} [u+u+[u+uQ@@@@@@3[[[[[[[[@@A@>B@B@B@=B@*B@B@nB@aFB@B@@1@ @  S@ 3 @  c@ C @  s@ S @  @ c @  @ s @@;@@L@,@n@N@@g@@w@@/@@?@@_@?@@Yxw@ww@@@w@w@tm@Ac0reset_type_names\vUvY\vUvi@б@г[ˠ$unit\!vUvl\"vUvp@@ @@@'x@@г[ؠ$unit\.vUvt\/vUvx@@ @@@'@@@@@'@@@\9vUvU @Z$ This function is used to reset the names of type variables. It must be called when printing the whole type of a function, but not when printing the type of its parameters. Same for classes (call it) and methods and attributes (don't call it).\FuSuS\GvvT@@@@@@@\_W@@@Z4\Z@@@@@@2string_of_variance\]w@wD\^w@wV@б@г=&t_type$Type\lw@wY\mw@w]@ \pw@w^\qw@wd@@@@@@'3\s\s\s\s\s\s\s\s@fA@A @@б@гID(Variance!t%Types\w@wh\w@wm@ \w@wn\w@wv@@\w@ww\w@wx@ @@@@@'#@@г\k&string\w@w|\w@w@@ @@@'0@@@@@'3 @@@9@@'6A @@@\w@w@@Z [string_of_variance t variance] returns the variance and injectivity annotation (e.g ["+"] for covariance, ["-"] for contravariance, ["!-"] for injectivity) if the type [t] is abstract.\vzvz\ww?@@@@@@@\X@@@Z\А@@@@@@U3string_of_type_expr\ww\ww@б@гI)type_expr%Types\ww\ww@ \ww\ww@@@@@@'3\\\\\\\\@wA@A @@г\&string\ww\ww@@ @@@'@@@@@'@@@]ww @Z쐠 @ This function returns a string representing a Types.type_expr. ]ww]ww@@@@@@@]'Y@@@Z]"@@@@@@16string_of_class_params]%xjxn]&xjx@б@г0't_class%Class]4xjx]5xjx@ ]8xjx]9xjx@@@@@@'3];];];];];];];];@SqA@A @@г]&string]Hxjx]Ixjx@@ @@@'@@@@@'@@@]Sxjxj @[> e @return a string to display the parameters of the given class, in the same form as the compiler. ]`ww]axBxi@@@@@@@]yZ@@@[N]t@@@@@@13string_of_type_list]wyy ]xyy@б#parг]?$bool]yy']yy+@@ @@@'3]]]]]]]]@Lj:@A@@б@г]_&string]yy/]yy5@@ @@@'@@б@г]$list]yyI]yyM@гJo)type_expr%Types]yy9]yy>@ ]yy?]yyH@@@@@@'3 @@@ @@@'8@@г]&string]yyQ]yyW@@ @@@'E@@@@@'H @@@=@@'K@ @@\$T@@@' @@'R]yy!@@ @]yy@[ʐ a This function returns a string to represent the given list of types, with a given separator. ]xx]xy@@@@@@@^[@@&@[^@@@@@@r9string_of_type_param_list^yy^yy@б@г?J&t_type$Type^yy^yy@ ^yy^yy@@@@@@'3^^^^^^^^@A@A @@г]&string^&yy^'yy@@ @@@'@@@@@'@@@^1yy @\ ` This function returns a string to represent the list of type parameters for the given type. ^>yYyY^?yy@@@@@@@^W\@@@\,^R@@@@@@1 #string_of_type_extension_param_list^Uzfzj^Vzfz@б@гG0t_type_extension)Extension^dzfz^ezfz@ ^hzfz^izfz@@@@@@'3^k^k^k^k^k^k^k^k@SqA@A @@г^B&string^xzfz^yzfz@@ @@@'@@@@@'@@@^zfzf @\n j This function returns a string to represent the list of type parameters for the given type extension. ^yy^zBze@@@@@@@^]@@@\~^@@@@@@1?string_of_class_type_param_list^{C{G^{C{f@б@г^+$list^{C{y^{C{}@гK})type_expr%Types^{C{i^{C{n@ ^{C{o^{C{x@@@@@@'3^^^^^^^^@]{K@A @@@" @@@'@@г^&string^{C{^{C{@@ @@@'@@@@@'"@@@^{C{C @\ϐ This function returns a string to represent the given list of type parameters of a class or class type, with a given separator. ^zz^{%{B@@@@@@@_ ^@@@\_@@@@@@65string_of_module_type_||_ ||@б$codeг^ߠ&string_||_||@@ @@@'3________@Qy:@A@@б(completeг^㠐$bool_(|}_)|}@@ @@@'@@б@гK+module_type%Types_;|} _<|}@ _?|}_@|}@@@@@@'+ @@г_&string_M|} _N|}&@@ @@@'8@@@@@';@@9&81@@@' @@'B_]||@@T&@L@@@'@@'J_e||@@ @_h||@]S < This function returns a string representing a [Types.module_type]. @param complete indicates if we must print complete signatures or just [sig end]. Default is [false]. @param code if [complete = false] and the type contains something else than identificators and functors, then the given code is used. _u{{_v||@@@@@@@__@@+@]c_@@@@@@j4string_of_class_type_}}_}}@б(completeг_T$bool_}~_}~ @@ @@@'3________@:@A@@б@гLk*class_type%Types_}~_}~@ _}~_}~@@@@@@' @@г_&string_}~"_}~(@@ @@@''@@@@@'*@@;&3@@@' @@'1_}}@@ @_}}@] This function returns a string representing a [Types.class_type]. @param complete indicates if we must print complete signatures or just [object end]. Default is [false]. _}(}(_}}@@@@@@@_`@@#@]_@@@@@@Q.string_of_text_~L~P_~L~^@б@г^ $text`~L~a`~L~e@@ @@@'3````````@j8@A@@г_۠&string`~L~i`~L~o@@ @@@'@@@@@'@@@`~L~L @^; Get a string from a text. `)~+~+`*~+~K@@@@@@@`Ba@@@^`=@@@@@@1.string_of_info`@~~`A~~@б@гT$info`K~~`L~~@@ @@@'3`M`M`M`M`M`M`M`M@J_8@A@@г`$&string`Z~~`[~~@@ @@@'@@@@@'@@@`e~~ @^P & Get a string from an info structure. `r~q~q`s~q~@@@@@@@`b@@@^``@@@@@@1.string_of_type`~~`~@б@гA&t_type$Type`~ `~@ `~`~@@@@@@'3````````@ShA@A @@г`v&string`~`~ @@ @@@'@@@@@'@@@`~~ @^ . @return a string to describe the given type. `~~`~~@@@@@@@`c@@@^`ؐ@@@@@@10string_of_record`"&`"6@б@г`_$list`"K`"O@гB,,record_field$Type`"9`"=@ `">`"J@@@@@@'3````````@]{K@A @@@" @@@'@@г`נ&stringa "Sa"Y@@ @@@'@@@@@'"@@@a"" @@a0d@@ @@8string_of_type_extensiona#a$@б@гJS0t_type_extension)Extensiona2a3@ a6a7@@@@@@'3a9a9a9a9a9a9a9a9@?g(@A @@гa&stringaFaG@@ @@@'@@@@@'@@@aQ @_< 8 @return a string to describe the given type extension. a^[[a_[@@@@@@@awe@@@_Lar@@@@@@13string_of_exceptionauav.@б@гE+t_exception)Exceptiona1a:@ a;aF@@@@@@'3aaaaaaaa@SqA@A @@гab&stringaJaP@@ @@@'@@@@@'@@@a @_ 3 @return a string to describe the given exception. aa@@@@@@@af@@@_aĐ@@@@@@1/string_of_valueaa@б@г:('t_value%Valueaa@ aa@@@@@@'3aaaaaaaa@SqA@A @@гa&stringaa@@ @@@'@@@@@'@@@a @_ / @return a string to describe the given value. bRRbR@@@@@@@bg@@@_b@@@@@@13string_of_attributebb@б@г:z+t_attribute%Valueb( b)@ b,b-@@@@@@'3b/b/b/b/b/b/b/b/@SqA@A @@гb&stringb<b=$@@ @@@'@@@@@'@@@bG @`2 3 @return a string to describe the given attribute. bTbU@@@@@@@bmh@@@`Bbh@@@@@@10string_of_methodbk\`bl\p@б@г:(t_method%Valuebz\sb{\x@ b~\yb\@@@@@@'3bbbbbbbb@SqA@A @@гbX&stringb\b\@@ @@@'@@@@@'@@@b\\ @` 0 @return a string to describe the given method. b&&b&[@@@@@@@bi@@@`b@@@@@@1bbǐ= {2 Miscellaneous functions} bb@@@@@@3bbbbbbbb@Ca1@A6first_sentence_of_textbb@б@г`堐$textbb@@ @@@'@@г`$textbb@@ @@@''@@@@@(*@@@b @`ސ Return the first sentence (until the first dot followed by a blank or the first blank line) of a text. Don't stop in the middle of [Code], [CodePre], [Verbatim], [List], [Enum], [Latex], [Link], [Ref], [Subscript] or [Superscript]. ccm@@@@@@@cj@@@`c@@@@@@I?first_sentence_and_rest_of_textc c  @б@гa,$textc" c# @@ @@@(3c$c$c$c$c$c$c$c$@b]8@A@@В@гa?$textc5 c6 @@ @@@(@@@гaN$textcD cE "@@ @@@("@@@@@ @@() @@@/ @@(,2@@@cV @aA  Return the first sentence (until the first dot followed by a blank or the first blank line) of a text, and the remaining text after. Don't stop in the middle of [Code], [CodePre], [Verbatim], [List], [Enum], [Latex], [Link], [Ref], [Subscript] or [Superscript].cccd@@@@@@@c|k@@"@aQcw@@@@@@K5text_no_title_no_listcz ^bc{ ^w@б@гa$textc ^zc ^~@@ @@@(3cccccccc@dy8@A@@гa$textc ^c ^@@ @@@(@@@@@(@@@c ^^ @a 4 Return the given [text] without any title or list. c $$c $]@@@@@@@cl@@@ac@@@@@@1+text_concatcc@б@гa$text*Odoc_typescc@ cc @@@@@@( 3cccccccc@ShA@A @@б@гca$listcc"@гa$text*Odoc_typescc@ cc@@@@@@( $ @@@ @@@( )@@гa$text*Odoc_typesd&d0@ d1d5@@@@@@( ? @@@@@(B) @@@H@@(EP @@@d$@b [ [concat sep l] concats the given list of text [l], each separated with the text [sep]. d1d2@@@@@@@dJm@@@bdE@@@@@@d2get_titles_in_textdHdI@б@гb]$textdSdT@@ @@@(3dUdUdUdUdUdUdUdU@}8@A@@гc۠$listdbdc@В@гdD#intdpdq@@ @@@(@@@гc۠&optiondd@гdS&stringdd@@ @@@(6@@@@@@(; @@@гb$textdd@@ @@@(J@@@@5@@ @@(S<@@@Q @@@(XdO@@@_@@(\bR@@@dU@b b Return the list of titles in a [text]. A title is a title level, an optional label and a text.d77db@@@@@@@dn@@e@bdؐ@@@@@@{2create_index_lists d"d4@б@гd_$listd:d>@А!a@(&g@(3dddddddd@>@Ad7d9@@@ @@@( @@б@б@А!aeCeE@@гd֠&stringe Ie O@@ @@@( @@@(@@(#@@гd$liste\e`@гd$liste&We'[@А!a@;e-Te.V@@@F@@@( B @@@@@@("G @@@)@@(#Je<B @@@I@@($NL#@@@eB&@c- 5 Take a sorted list of elements, a function to get the name of an element and return the list of list of elements, where each list group elements beginning by the same letter. Since the original list is sorted, elements whose name does not begin with a letter should be in the first returned list.eOeP@@@@@@@eho@@6@c=ec@@@@@@m-remove_option ef  eg @б@гR2)type_expr%Typeseu ev @ ey ez (@@@@@@('3e|e|e|e|e|e|e|e|@A@A @@гRJ)type_expr%Typese ,e 1@ e 2e ;@@@@@@(( @@@@@()& @@@e  @c Take a type and remove the option top constructor. This is useful when printing labels, we then remove the top option constructor for optional labels.ebbe@@@@@@@ep@@@ce@@@@@@:+is_optional e#que#q@б@г(Asttypes)arg_label(Asttypese#qe#q@ e#qe#q@@@@@@(*3eeeeeeee@^|C@A @@гe$boole#qe#q@@ @@@(+@@@@@(,@@@e#qq @cܐ . Return [true] if the given label is optional.e"==e"=p@@@@@@@fq@@@cf@@@@@@1*label_name f'f' @б@гT)arg_label(Asttypesf$'f%'@ f('f)'!@@@@@@(-3f+f+f+f+f+f+f+f+@SsA@A @@гf&stringf8'%f9'+@@ @@@(.@@@@@(/@@@fC' @d. Y Return the label name for the given label, i.e. removes the beginning '?' if present.fP%fQ&@@@@@@@fir@@@d>fd@@@@@@12use_hidden_modules fg,fh,@б@гU!t$Namefv,fw,@ fz,f{,@@@@@@(03f}f}f}f}f}f}f}f}@SqA@A @@гU!t$Namef,f,@ f,f,@@@@@@(1 @@@@@(2& @@@f, @d Return the given name where the module name or part of it was removed, according to the list of modules which must be hidden (cf {!Odoc_args.hidden_modules})f)--f+@@@@@@@fs@@@df@@@@@@:'verbosef/BFf/BM@б@гf&stringf/BPf/BV@@ @@@(33ffffffff@Sq8@A@@гf$unitf/BZf/B^@@ @@@(4@@@@@(5@@@f/BB @dҐ : Print the given string if the verbose mode is activated. f.f.A@@@@@@@g t@@@dg@@@@@@1'warningg 4g 4@б@гfࠐ&stringg4g4@@ @@@(63gggggggg@J_8@A@@гfϠ$unitg%4g&4@@ @@@(7@@@@@(8@@@g04 @e x Print a warning message to stderr. If warnings must be treated as errors, then the error counter is incremented. g=1``g>3@@@@@@@gVu@@@e+gQ@@@@@@1.print_warningsgT7HLgU7HZ@гe#refg]7Hbg^7He@гg"$boolgg7H]gh7Ha@@ @@@(93gigigigigigigigi@Rg@@A@@@ @@@(; @@@gv7HH@ea F A flag to indicate whether ocamldoc warnings must be printed or not. g6g6G@@@@@@@gv@@)@eqg@@@@@@&&errorsg=!g='@гf #refg=.g=1@гg#intg=*g=-@@ @@@(<3gggggggg@Gd@@A@@@ @@@(> @@@g=@e Increment this counter when an error is encountered. The ocamldoc tool will print the number of errors encountered exit with code 1 if this number is greater than 0. g9ggg<@@@@@@@gw@@)@egݐ@@@@@@&)apply_optg@aeg@an@б@б@А!a@(Ig@(?3gggggggg@=Z6@Ag@arg@at@@А!b@(Kg@(@ g@axg@az@@@ @@(A@@б@гgf&optionh @ah @a@А!a'"h@ah@a@@@-@@@(C) @@гg{&optionh@ah @a@А!b/7h&@ah'@a@@@5@@@(E> @@@@@(FA@@@4@@(GDh3@aq@@@h6@aa@f! ( Apply a function to an optional value. hC?33hD?3`@@@@@@@h\x@@'@f1hW@@@@@@d.apply_if_equalhZE)-h[E);@б@б@А!a@(Rg@(L3hehehehehehehehe@{6@AhkE)?hlE)A@@А!a hqE)EhrE)G@@@@@(M  @@б@А!ah|E)Lh}E)N@@б@А!a hE)RhE)T@@А!a&!hE)XhE)Z@@@++@@(N& @@@.@@(O)@@@!@@(P,hE)> @@@hE))@f Apply a function to a first value if it is not different from a second value. If the two values are different, return the second one.hBhD(@@@@@@@hy@@@fh@@@@@@L.text_of_stringhJhJ@б@гh&stringhJhJ@@ @@@(S3hhhhhhhh@ex8@A@@гfࠐ$texthJhJ@@ @@@(T@@@@@(U@@@hJ @f̐ [text_of_string s] returns the text structure from the given string. @raise Text_syntax if a syntax error is encountered. hG\\hI@@@@@@@iz@@@fi@@@@@@13text_string_of_textiOiO@б@гg$textiOiO@@ @@@(V3iiiiiiii@J_8@A@@гh預&stringiOi O@@ @@@(W@@@@@(X@@@i*O @g [text_string_of_text text] returns the string representing the given [text]. This string can then be parsed again by {!Odoc_info.text_of_string}.i7Li8N@@@@@@@iP{@@@g%iK@@@@@@1.info_of_stringiNViOV@б@гi#&stringiYViZV@@ @@@(Y3i[i[i[i[i[i[i[i[@J_8@A@@г]Ǡ$infoihViiV@@ @@@(Z@@@@@([@@@isV @g^ [info_of_string s] parses the given string like a regular ocamldoc comment and return an {!Odoc_info.info} structure. @return an empty structure if there was a syntax error. TODO: change this iQiU@@@@@@@i|@@@gni@@@@@@14info_of_comment_filei_ i_ %@б@гi$listi_ 8i_ <@г,(t_module&Modulei_ (i_ .@ i_ /i_ 7@@@@@@)3iiiiiiii@]rK@A @@@" @@@)@@б@гi&stringi_ @i_ F@@ @@@)@@г^7$infoi_ Ji_ N@@ @@@)#@@@@@)&@@@&@@))4 @@@i_  @gѐ B [info_of_comment_file file] parses the given file and return an {!Odoc_info.info} structure. The content of the file must have the same syntax as the content of a special comment. The given module list is used for cross reference. @raise Failure if the file could not be opened or there is a syntax error. iXi^  @@@@@@@j }@@@gj@@@@@@H5remove_ending_newlinej bj b@б@гiߠ&stringjbjb@@ @@@)3jjjjjjjj@a8@A@@гi&stringj$bj%b@@ @@@)@@@@@)@@@j/b @h L [remove_ending_newline s] returns [s] without the optional ending newline. j<aPPj=aP@@@@@@@jU~@@@h*jP@@@@@@1&SearchpgjUejVe@jn@@БA+.result_elementhjdgjeg@@;@@*Res_module,(t_module@@@)@@juh=Gjvh=d@@j@/Res_module_type,-t_module_type@@@)@@jiemjie@@j@)Res_class='t_class@@@)@@jjjj@@j@.Res_class_type>,t_class_type@@@)@@jkjk@@j@)Res_valueC 't_value@@@)@@jljl@@j@(Res_typeL&t_type@@@)@@jmjm1@@j@-Res_extension S7t_extension_constructor@@@)@@jn2:jn2n@@j@-Res_exception!N+t_exception@@@)@@joowjoo@@j@-Res_attribute"CK+t_attribute@@@)@@jpjp@@k@*Res_method#C[(t_method@@@)@@kqkq@@k@+Res_section$j@@@)i$@@@)@@krkr@@k1@,Res_recfield%Ld&t_type@@@)Lk,record_field@@@)@@k/s$k0sU@@kH@)Res_const&L{&t_type@@@)L3variant_constructor@@@)@@kFtV^kGtV@@k_@@@A+Odoc_search.result_element@@@*@@@@kSg  @@@@kk@@#kZh=Q@@г&Modulekeh=Ukfh=[@kih=\@@@3khkhkhkhkhkhkhkh@ShA;@@@A@@@*@)@@@@%@@@#@A@@@@@#k|ieok}ie~@@г&Modulekiekie@ kie@@@# @@@@ @#kjkj@@г %Classkjkj@kj@@@:@@@@@#kkkk@@г%Classkkkk@kk@@@Q@@@@@#klkl@ @г%Valueklkl@kl@@@%h@@@@ @#kmkm"@@г$Typekm&km*@%km+#@$@@,%@@@@'@###kn2<kn2I@@г%)Extensionkn2Mkn2V@,kn2W*@+@@3,@@@@.@#**looyloo@!@г,)Exceptionlooloo@3loo1@2@@:3@@@@5@#11lplp@(@г3%Valuel)pl*p@:l-p8@9@@Aİ:@@@@<@#88l4ql5q@/@г:%Valuel@qlAq@AlDq?@@@@H۰A@@@@C@#??lKrlLr @3@гA&stringlUr lVr@@I@@гF$textl_rG@@MH@@@@J@#FFles&lfs2@6@гH$Typelqs6lrs:@Olus;lvsA@@@W @@гR$TypelsDlsH@YlsIW@X@@`Y@@@@[@#WWltV`ltVi@G@гY$TypeltVmltVq@`ltVrltVx@@@h5@@гc$TypeltV{ltV@jltVh@i@@qEj@@@@l@@Aгh+Odoc_searchlg lg+@mlg,lg:@@@wV@@p@@3llllllll@V@Aq}@A+-search_resultDilwlw@@;@@d AlQx@@@+A@@@+C@@@@lwlw@jǐ ) The type representing a research result.lvlv@@@@@@@@@m@@@Aг$listlw@г .result_elementlwlw@@(3llllllll@7;@@@A?@@@+N@+@@@@@/,@@@A@@@9 /@@1jm/.@..@@@.@.@@3mmmmmmmm@@A=<@.search_by_nameem zPZm!zPh@б@гl$listm+zP{m,zP@г/(t_module&Modulem9zPkm:zPq@ m=zPrm>zPz@@@@@@+R3m@m@m@m@m@m@m@m@@F|v@A @@@" @@@+T@@б@г#Str®exp#StrmZzPm[zP@ m^zPm_zP@@@@@@,! @@г-search_resultmlzPmmzP@@ @@@,.@@@@@,1@@@1@@,4? @@@mzzPV@ke J Research of the elements whose name matches the given regular expression.mymyO@@@@@@@m@@@kum@@@@@@S&valuesfm}m}@б@гm"$listm} m}@г0(t_module&Modulem}m}@ m}m} @@@@@@,3mmmmmmmm@K@A @@@" @@@,@@гmI$listm} m}$@гF0't_value%Valuem}m}@ m}m}@@@@@@,' @@@ @@@,,@@@,@@,/: @@@m}#@kސ ; A function to search all the values in a list of modules. n|n|@@@@@@@n@@3@kn@@@@@@N*extensionsgnq{nq@б@гm$listn"qn#q@г0(t_module&Modulen0qn1q@ n4qn5q@@@@@@,3n7n7n7n7n7n7n7n7@zK@A @@@" @@@,@@гm $listnIqnJq@гWx7t_extension_constructor)ExtensionnWqnXq@ n[qn\q@@@@@@,' @@@ @@@,,@@@,@@,/: @@@nlqw#@lW ? A function to search all the extensions in a list of modules. ny&,nz&p@@@@@@@n@@3@lgn@@@@@@N*exceptionshnn'@б@гn$listn:n>@г1(t_module&Modulen*n0@ n1n9@@@@@@,3nnnnnnnn@zK@A @@@" @@@,@@гn;$listnXn\@гR+t_exception)ExceptionnBnK@ nLnW@@@@@@,' @@@ @@@,,@@@,@@,/: @@@n#@lА ? A function to search all the exceptions in a list of modules. nn@@@@@@@o @@3@lo@@@@@@N%typesio o @б@гn$listoo@г1(t_module&Moduleo"o#@ o&o'@@@@@@,3o)o)o)o)o)o)o)o)@zK@A @@@" @@@,@@гn$listo;o<@гP&t_type$TypeoIoJ@ oMoN@@@@@@,' @@@ @@@,,@@@,@@,/: @@@o^#@mI : A function to search all the types in a list of modules. ok^dol^@@@@@@@o@@3@mYo@@@@@@N*attributesjo1;o1E@б@гo$listo1Xo1\@г1(t_module&Moduleo1Ho1N@ o1Oo1W@@@@@@,3oooooooo@zK@A @@@" @@@,@@гo-$listo1ro1v@гH+t_attribute%Valueo1`o1e@ o1fo1q@@@@@@,' @@@ @@@,,@@@,@@,/: @@@o17#@m E A function to search all the class attributes in a list of modules. oo0@@@@@@@o@@3@mo@@@@@@N'methodskoo@б@гo$listpp@г2s(t_module&Modulepp@ pp@@@@@@,3pppppppp@zK@A @@@" @@@,@@гo$listp-p.@гH(t_method%Valuep;p<@ p?p@@@@@@@,' @@@ @@@,,@@@,@@,/: @@@pP#@n; B A function to search all the class methods in a list of modules. p]x~p^x@@@@@@@pv@@3@nKpq@@@@@@N'classeslptOYpuO`@б@гo$listpOspOw@г2(t_module&ModulepOcpOi@ pOjpOr@@@@@@,3pppppppp@zK@A @@@" @@@,@@гp$listpOpO@гD't_class%ClasspO{pO@ pOpO@@@@@@,' @@@ @@@,,@@@,@@,/: @@@pOU#@n < A function to search all the classes in a list of modules. p pN@@@@@@@p@@3@npꐠ@@@@@@N+class_typesmpp@б@гpq$listpp@г3e(t_module&Moduleqq@ q q @@@@@@,3q q q q q q q q @zK@A @@@" @@@,@@гp$listqq "@гD,t_class_type%Classq- q.@ q1q2@@@@@@,' @@@ @@@,,@@@,@@,/: @@@qB#@o- @ A function to search all the class types in a list of modules. qOqP@@@@@@@qh@@3@o=qc@@@@@@N'modulesnqflvqgl}@б@гpꠐ$listqqlqrl@г3(t_module&Moduleqlql@ qlql@@@@@@,3qqqqqqqq@zK@A @@@" @@@,@@гq$listqlql@г4(t_module&Moduleqlql@ qlql@@@@@@,' @@@ @@@,,@@@,@@,/: @@@qlr#@o < A function to search all the modules in a list of modules. q$*q$k@@@@@@@q@@3@oqܐ@@@@@@N,module_typesoqq@б@гqc$listq$q(@г4W(t_module&Moduleqq@ qq#@@@@@@,3qqqqqqqq@zK@A @@@" @@@,@@гq$listrArE@г4~-t_module_type&Moduler,r 2@ r#3r$@@@@@@@,' @@@ @@@,,@@@,@@,/: @@@r4#@p A A function to search all the module types in a list of modules. rArB@@@@@@@rZ@@3@p/rU@@@@@@N@A@A@:@g@G@y@Y@@k@@}&@@8@@3rgrgrgrgrgrgrgrg@i:@A3rjrjrjrjrjrjrjrj@@ArofrpGN@@p[r6 Research in elements r~drd@@@@@@@re@@$Scantjryry@r@@Б/A@'scannerrr@skrkqkБ@*scan_valueA@K't_value@@@-rj@@@-@@-@@-m@,-scan_type_preA@T &t_type@@@-r@@@-@@-@@-m@,/scan_type_constA@T &t_type@@@-@T(3variant_constructor@@@-r@@@-@@-@@-@@-m@-2scan_type_recfieldA@T=&t_type@@@-@TE,record_field@@@-r@@@-@@-@@-@@-m@-)scan_typeA@TZ&t_type@@@-r@@@-@@-@@-m@- :scan_extension_constructorA@\X7t_extension_constructor@@@-r@@@-@@-@@-m@-.scan_exceptionA@WJ+t_exception@@@-r@@@-@@-@@-m@-.scan_attributeA@K+t_attribute@@@-s @@@-@@-@@-m@-+scan_methodA@K(t_method@@@-s"@@@-@@-@@-m@-4scan_included_moduleA@5/included_module@@@-s7@@@-@@-@@-m@-$7scan_type_extension_preA@\0t_type_extension@@@-s]@@@-@@-@@-m@-) scan_type_extension_constructorsA@\0t_type_extension@@@-sa@@@-@@-@@-m@-.3scan_type_extensionA@\0t_type_extension@@@-sv@@@-@@-@@-m@-32scan_class_commentA@q@@@.s@@@.@@.@@.m@-8.scan_class_preA@GO't_class@@@. s@@@. @@. @@.m@-=3scan_class_elementsA@Gd't_class@@@.s@@@.@@.@@.m@-B*scan_classA@Gy't_class@@@.s@@@.@@.@@.m@-G7scan_class_type_commentA@r7@@@.#s@@@."@@.!@@. m@-L3scan_class_type_preA@G,t_class_type@@@.+t@@@.*@@.)@@.(m@-Q8scan_class_type_elementsA@G,t_class_type@@@.3t@@@.2@@.1@@.0m@-V/scan_class_typeA@G,t_class_type@@@.;t@@@.:@@.9@@.8m@-[3scan_module_commentA@r@@@.Ct-@@@.B@@.A@@.@m@-`/scan_module_preA@6(t_module@@@.KtS@@@.J@@.I@@.Hm@-e4scan_module_elementsA@7 (t_module@@@.StW@@@.R@@.Q@@.Pm@-j+scan_moduleA@7(t_module@@@.[tl@@@.Z@@.Y@@.Xm@-o8scan_module_type_commentA@r@@@.ct@@@.b@@.a@@.`m@-t4scan_module_type_preA@7G-t_module_type@@@.kt@@@.j@@.i@@.hm@-y9scan_module_type_elementsA@7\-t_module_type@@@.st@@@.r@@.q@@.pm@-~0scan_module_typeA@7q-t_module_type@@@.{t@@@.z@@.y@@.xm@-0scan_module_listA@t7(t_module@@@.@@@.t@@@.@@.@@.m@-@@-@-m@-@-m@-@-m@-z@-{m@-u@-vm@-p@-qm@-k@-lm@-f@-gm@-a@-bm@-\@-]m@-W@-Xm@-R@-Sm@-M@-Nm@-H@-Im@-C@-Dm@->@-?m@-9@-:m@-4@-5m@-/@-0m@-*@-+m@-%@-&m@- @-!m@-@-m@-@-m@-@-m@- @- m@-@-m@-@-m@,@,m@,@,m@,@@,m@,3u/u/u/u/u/u/u/u/@  @  A@tnA@#@P@0@b@B@t@T@@f@@x!@@s=@@@@@@ ;@@@AA^A]AwAvAASAR-A,DAC>A=UATAAAAAqApAAAAAAAAA A AAA@@.l@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.l@,@@,@@@@uunw@@@@u@ #@@@a@Aam@-@@Am@-F@AB@Am@-7@İ@Am@-A@A۰@Am@-<@b@Abm@-Z@ABC@Am@-K@~@A~m@-U@A@Am@-P@B@Am@-@CD@Am@-@W@AWm@-#@An@Anm@-@'@A'm@-n@ABf@Afm@-_@B@ABm@-i@ɰ@Am@-@AB\@A\m@-d@@Am@-@A#@A#m@-s@@Am@-}@A@Am@-x@BCDEFް@Am@- @@Am@-@>@A>m@-2@ABU@AUm@--@m@Amm@-(@AC<@A@@@-@@г>$unityy@@F@@@-@@R@@Sy$@@wy5 # Scan of a comment inside a class. y2y3@@@@@@@XAAШ@б@гU%ClassyDyE@\yHyI@@@d@@@. @@гb$boolyUyV@@j@@@.(@@x)@@y*y]@@wHyn Override this method to perform controls on the class comment and params. This method is called before scanning the class elements. @return true if the class elements must be scanned.ykyl@@@@@@@|AAШ@б@гy%Classy}8]y~8b@y8cy8j@@@@@@. U @@г$unity8ny8r@@@@@. a@@b@@cy8@@@wy 4 This method scans the elements of the given class. yy7@@@@@@@AAШ@б@г%Classy7y<@y=yD@@@@@@. @@г$unityHyL@@@@@.@@@@y#@@wy Scan of a class. Should not be overridden. It calls [scan_class_pre] and if [scan_class_pre] returns [true], then it calls scan_class_elements.yt{y@@@@@@@yy񐠠7 Scan of a class type. yNTyNp@@@@@@@AAШ@б@гҠ$textyy@@@@@.Ѱ@@гڠ$unitz z @@@@@.ݰ@@ް@@߰z@@wz# ( Scan of a comment inside a class type. z rzz!r@@@@@@@AAШ@б@г񠡠%Classz2z3@z6z7@@@@@@.$  @@г$boolzCzD@@@@@.%@@@@zK@@x6z\ Override this method to perform controls on the class type comment and form. This method is called before scanning the class type elements. @return true if the class type elements must be scanned.zYzZ@@@@@@@AAШ@б@г%ClasszkPzzlP@zoPzpP@@@$@@@.,C @@г"$unitz|Pz}P@@*@@@.-O@@8P@@9QzPX@@xoz 9 This method scans the elements of the given class type. z z O@@@@@@@@@?{rnv@@y]{ 5 This method scans the elements of the given module. {+3{+m@@@@@@@AAШ@б@гՠ&Module{Xu{X{@ܰ{X|{X@@@@@@.Tj @@г⠐$unit{X{X@@@@@.Uv@@w@@x{X`@@y{ Scan of a module. Should not be overridden. It calls [scan_module_pre] and if [scan_module_pre] returns [true], then it calls scan_module_elements.{{W@@@@@@@{{͐7 Scan of module types. {{@@@@@@@ AAШ@б@г $text{{@@@@@.\@@г$unit{{@@@@@.]@@&@@'{@@y{ ) Scan of a comment inside a module type. {{@@@@@@@,AAШ@б@г)&Module|4|:@0|;|H@@@8@@@.d @@г6$bool|L| P@@>@@@.e@@L@@M|'@@z|8 Override this method to perform controls on the module type comment and form. This method is called before scanning the module type elements. @return true if the module type elements must be scanned. |5!)|6 @@@@@@@PAAШ@б@гM&Module|G|H@T|K|L@@@\@@@.l @@гZ$unit|X|Y@@b@@@.m+@@p,@@q-|`@@zK|q : This method scans the elements of the given module type. |nRZ|oR@@@@@@@tAAШ@б@гq&Module||@x||@@@@@@.tX @@г~$unit||@@@@@.ud@@e@@f|@@z| Scan of a module type. Should not be overridden. It calls [scan_module_type_pre] and if [scan_module_type_pre] returns [true], then it calls scan_module_type_elements.||@@@@@@@@||7 Main scanning method. ||@@@@@@@AAШ@б@г$list|/a|/e@г&Module|/Q|/W@|/X|/`@@@@@@.| @@@ @@@.~@@г$unit|/i|/m@@@@@.@@@@|/7@@z}9 Scan a list of modules. |}.@@@@@@@@WXϰ}]@@#@ ^A ] KA J 8A 7 A  A  A  A  A  A  A  A  }A | jA i WA V FA E 3A 2 A  A AAAAAAAyAxhAgUATBAA/A.@/@/%@/$@/#@/"@/!@/ @/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/ @/ @/ @/ @/ @/@@/@@ @A@ F@A@AB @A@ _@A@A u@A@@A@ABC 9@A@ @A@A +@A@B $@A@CD :@A@ @A@A @A@@A@AB@A@Ѱ@A@W@A@AB@A@p@A@A@A@@A@A@A@BCDEF f@A@ @A@ İ@A@AB ڰ@A@ @A@AC @A@ @A@A ذ@A@BDG ~@@#@ ;@@,A A  A  A  A  A  tA s aA ` NA M ;A : (A ' A  A  A  A  A  A  A  A  A  nA m [A Z HA G 7A 6 $A # A AAAAAp@/'@/E@/D@/C@/B@/A@/@@/?@/>@/=@/<@/;@/:@/9@/8@/7@/6@/5@/4@/3@/2@/1@/0@//@/.@/-@/,@/+@/*@/)@/( /@@/&@@@@+@@@(@+@(+@@3}}}}}}}}@@A,+@@ 6#@ON@0@-A@ 8#@O;@@zAN@@@@4@@@1@4@1A@ ;;@@}A|@@@@8@@@5A@@3}}}}}}}}@ E#@: E@A@> G#@= H@C@@ J#@ BA@ ? >@@@/ =@@@/@@/@@/ :A@ 7 6@@@/ 5@@@/@@/@@/ 2A@ / .@@@/@ - ,@@@/ +@@@/@@/@@/@@/ (A@ % $@@@/@ # "@@@/ !@@@/@@/@@/@@/ A@  @@@/ @@@/@@/@@/ A@  @@@/r @@@/q@@/p@@/o A@  @@@/n @@@/m@@/l@@/k A@  @@@/J @@@/I@@/H@@/G A@  @@@/z @@@/y@@/x@@/w A@  @@@/v @@@/u@@/t@@/s A@  @@@/ @@@/@@/@@/ A@  @@@/ @@@/@@/@@/ A@  @@@/ @@@/@@/@@/ A@ @@@/R @@@/Q@@/P@@/O A@  @@@/Z @@@/Y@@/X@@/W A@  @@@/V @@@/U@@/T@@/S A@  @@@/N @@@/M@@/L@@/K A@ @@@/b @@@/a@@/`@@/_ A@  @@@/j @@@/i@@/h@@/g A@  @@@/f @@@/e@@/d@@/c A@  @@@/^ @@@/]@@/\@@/[ A@ @@@/ @@@/@@/@@/ A@  @@@/ @@@/@@/@@/ A@  @@@/ @@@/@@/@@/ A@ ~ }@@@/~ |@@@/}@@/|@@/{ yA@ v@@@/ u@@@/@@/@@/ rA@ o n@@@/ m@@@/@@/@@/ jA@ g f@@@/ e@@@/@@/@@/ bA@ _ ^@@@/ ]@@@/@@/@@/ ZA@ W V U@@@/@@@/ T@@@/@@/@@/:@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/Ő Q>@@/>@@ 8@A3@ @A@AB @A@ @A@A @A@ 4@A@ABC r@A@ N@A@A d@A@B ]@AP@CD s@A^@ #@A.@A 9@A<@ @Aq@AB /@A@ @A@ @A7@AB "@A@ @AH@A @Ao@ °@AY@A ذ@Ag@BCDEF @A@ ݰ@A@ @A @AB @A.@ *@A=@AC @A@ ɰ@A@A @A@BDG9 @@@/F@ @  $#@ A@  @@@0~ @@@0}@@0|@@0{ A@  @@@0z @@@0y@@0x@@0w A@  @@@0v@  @@@0u @@@0t@@0s@@0r@@0q A@  @@@0p@  @@@0o @@@0n@@0m@@0l@@0k A@  @@@0j @@@0i@@0h@@0g A@  @@@0f @@@0e@@0d@@0c A@  @@@0b @@@0a@@0`@@0_ A@  @@@0^ @@@0]@@0\@@0[ A@  @@@0Z @@@0Y@@0X@@0W A@  @@@0V @@@0U@@0T@@0S A@  @@@0R @@@0Q@@0P@@0O A@  @@@0N @@@0M@@0L@@0K A@  @@@0J @@@0I@@0H@@0G A@ @@@0F @@@0E@@0D@@0C A@  @@@0B @@@0A@@0@@@0? A@  @@@0> @@@0=@@0<@@0; A@  @@@0: @@@09@@08@@07 A@ @@@06 @@@05@@04@@03 A@  @@@02 @@@01@@00@@0/ A@  @@@0. ~@@@0-@@0,@@0+ {A@ x w@@@0* v@@@0)@@0(@@0' sA@ p@@@0& o@@@0%@@0$@@0# lA@ i h@@@0" g@@@0!@@0 @@0 dA@ a `@@@0 _@@@0@@0@@0 \A@ Y X@@@0 W@@@0@@0@@0 TA@ Q@@@0 P@@@0@@0@@0 MA@ J I@@@0 H@@@0@@0@@0 EA@ B A@@@0 @@@@0 @@0 @@0  =A@ : 9@@@0  8@@@0 @@0@@0 5A@ 2 1 0@@@0@@@0 /@@@0@@0@@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 ,@@0@@@A3@ Z@A@AB @A@ s@A@A @A@ @A@ABC M@A@ )@A@A ?@A@B8@AP@CDN@A^@ @A.@A@A<@ ̰@Aq@AB @A@ @A@ k@A7@AB @A@ @AH@A °@Ao@ @AY@A @Ag@BCDEFz@A@@A@ ذ@A @AB @A.@@A=@ACӰ@A@@A@A@A@BDG;@@@AAAAAAArA_A~LAs9Ah&A]ARAG A< A2 A' A A A A lA YA HA 5A "A A A A A A@0@0@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/䐐@@/@@@@ :@@@ 7@ :@ 7?;@@@AA@@@@1:@@@19@@18@@17 A@  @@@16 @@@15@@14@@132A@/@@@12.@@@11@@10@@1/A@@@@1.@@@1-@@1,@@1+8A@54@@@1*3@@@1)@@1(@@1' A@  @@@1& @@@1%@@1$@@1#A@@@@1"@@@1!@@1 @@1 A@  @@@1 @@@1@@1@@1A@@@@1@@@1@@1@@1A@@@@1@@@1@@1@@1@A@=<@@@1;@@@1@@1@@1A@@@@1@@@1 @@1 @@1 A@@@@1 @@@1 @@1@@1 A@  @@@1 @@@1@@1@@1(A@%@@@1$@@@1@@1@@0 A@ @@@0@@@0@@0@@0 A@   @@@0@@@0 @@@0@@0@@0?A@<;@@@0:@@@0@@0@@0 A@  @@@0 @@@0@@0@@0A@@@@0@@@0@@0@@0 A@  @@@0 @@@0@@0@@0 A@@@@0@@@0@@0@@0A@@@@0@@@0@@0@@0:A@76@@@0@54@@@03@@@0@@0@@0@@0kA@hg@@@0f@@@0@@0@@0A@@@@0@@@0@@0@@0A@@@@0@@@0@@0@@0A@@@@0@@@0@@0@@0dA@a`@@@0@_^@@@0]@@@0@@0@@0@@0A@@@@0@@@0@@0@@0@@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@@0@@@@ @@@ @A3uuuuuuuu@C@Az{x}@@f # Scanning of collected information PPPx@@@@@@@yy@@#Depwl  @@@Б6kernel_deps_of_modulesu -5 -K@б@г*$list -^ -b@гF(t_module&Module -N -T@  -U -]@@@@@@1;3@C@2A@3A@4A@@VU@UU@@@U@U@RN@A@@@4@@@1=$1@@г$unit -f -j@@ @@@1>&@@@@@1?)4@@@ -1 @ m Modify the module dependencies of the given list of modules, to get the minimum transitivity kernel.   ,@@@@@@@@@@@@@@@@H-deps_of_typesvzz@б&kernelг᠐$bool&z'z@@ @@@1@3((((((((@c:@A@@б@г$list7z8z@гe}&t_type$TypeEzFz@ IzJz@@@@@@1A$ @@@ @@@1C)@@гՠ$list\z]z@В@гe&t_type$Typenzoz@ rzsz@@@@@@1DM @@@г$listzz@гs!t$Namezz@ zz@@@@@@1Eo @@@ @@@1Gt@@@@/@ @@1H{9z@@@S @@@1JzQ@@@`@@1KlT@@K@@@1L @@1Mz\@@ @z~_@  Return the list of dependencies between the given types, in the form of a list [(type name, names of types it depends on)]. @param kernel indicates if we must keep only the transitivity kernel of the dependencies. Default is [false]. lpsy@@@@@@@@@o@ܐ@@@@@@@7@"@@3@$@A3@@A @@򐠠> Computation of dependencies. @@@@@@@ @@; {1 Some global variables} @@@@@@3@=t@i@T@@*)@))@@@)@)@&}@A&Globalm! "@:@@Б&errorsx/!0'@г#ref8.91@г#intB*C-@@ @@@1N3DDDDDDDD@B@A@@@@@@1P @@@P@@h@@@@ *warn_errory[2:\2D@г#refd2Le2O@г)$booln2Go2K@@ @@@1Q3pppppppp@oJ'@A@@@ @@@1S @@@}26@@@@@@ (out_filez@г#ref@гe&string@@ @@@1T3@.K'@A@@@ @@@1V @@@@ ; The file used by the generators outputting only one file. QUQ@@@@@@@@@)@ː@@@@@@&'verbose{""@гT#ref""@г$bool""@@ @@@1W3@Gd@@A@@@ @@@1Y @@@"@ې6 Verbose mode or not. !!@@@@@@@@@)@@@@@@@&*target_dir|%,4%,>@г#ref%,H%,K@г&string'%,A(%,G@@ @@@1Z3))))))))@Gd@@A@@@ @@@1\ @@@6%,0@! 1 The directory where files have to be generated. C$D$+@@@@@@@\@@)@1W@@@@@@&%title}Z([(@г#refc(d(@гɠ&optionm(n(@гA&stringw(x(@@ @@@1]3yyyyyyyy@QnJ@A@@@ @@@1_ @@@(@@@1a %@@@((@v ; The optional title to use in the generated documentation. 'MQ'M@@@@@@@@@8@@@@@@@+*intro_file~++ @г5#ref++!@г&option++@г&string++@@ @@@1b3@V}J@A@@@ @@@1d @@@(@@@1f %@@@+(@ː < The optional file whose content can be used as intro text. **@@@@@@@@@8@@@@@@@+(with_toc.px.p@г#ref .p.p@гҠ$bool.p.p@@ @@@1g3@Ls@@A@@@ @@@1i @@@&.pt@ C The flag which indicates if we must generate a table of contents. 3-#'4-#o@@@@@@@L@@)@!G@@@@@@&*with_indexJ1K1@г#refS1T1@г$bool]1^1@@ @@@1j3________@Gd@@A@@@ @@@1l @@@l1@W 8 The flag which indicates if we must generate an index. y0z0@@@@@@@@@)@g@@@@@@&+with_header4/74/B@г#ref4/J4/M@г^$bool4/E4/I@@ @@@1m3@Gd@@A@@@ @@@1o @@@4/3@ 7 The flag which indicates if we must generate a header.33.@@@@@@@@@)@Ӑ@@@@@@&,with_trailer77@г\#ref77@г$bool77@@ @@@1p3@Gd@@A@@@ @@@1r @@@7@㐠 8 The flag which indicates if we must generate a trailer.6OS6O@@@@@@@@@)@@@@@@@&@@@r@R.@@@wD@$@@x@X4@@3''''''''@=Z6@A(./8@@@1@-@-analyse_files;=\`<=\m@б-merge_optionsг$listH>pI>p@г?,merge_option*Odoc_typesV>pW>p@ Z>p[>p@@@@@@1s3]]]]]]]]@\F@;@@@~@^:@@@tP@0 @@@@@JW@A% @@@:!@@@1u*7@@б,include_dirsг$list??@г_&string??@@ @@@1v:@@@@@@1x? @@б3hidden_include_dirsг$$list@@@г&string@@@@ @@@1yZ@@@@@@1{_ @@б&labelsг$boolAA@@ @@@1|p@@б,sort_modulesг$boolB &B *@@ @@@1}@@б'no_stopг$boolC.EC.I@@ @@@1~@@б$initгw$listDMyDM}@гJi(t_module+Odoc_module DMd DMo@ DMpDMx@@@@@@1 @@@ @@@1@@б@г$list%E&E@г+Odoc_global+source_file+Odoc_global5E6E@ 9E:E@@@@@@2߰ @@@"@@@2@@гŠ$listLFMF@гK(t_module&ModuleZF[F@ ^F_F@@@@@@2 @@@ @@@2 @@@,@@2 8 @@zPO[@@@2 @@2tDM](@@PW@@@2@@2|C.<0@@P_@@@2 @@2!#B 8@@Pg@@@2"@@2#+A@@@Po@@@2$@@2%3@H@@Pw@@@2&@@2';?P@@`P'@@@2(@@2)C>ptX@@ @=\\[@ Analysis of the given source files. @param init is the list of modules already known from a previous analysis. @return the list of analysed top modules. :<,[@@@@@@@@@k@Ȑ@@@@@@c,dump_modulesJ04J0@@б@г&stringJ0CJ0I@@ @@@2*3@|8@A@@б@г`$listJ0bJ0f@гKR(t_module+Odoc_moduleJ0MJ0X@ J0YJ0a@@@@@@2+$ @@@ @@@2-)@@г$unit J0j J0n@@ @@@2.6@@@@@2/9 @@@?@@20<B @@@J00@ M Dump of a list of modules into a file. @raise Failure if an error occurs.'H(I/@@@@@@@@@@@;@@@@@@[,load_modules>N?N@б@г&stringINJN@@ @@@213KKKKKKKK@t8@A@@гѠ$listXNYN@гK(t_module+Odoc_modulefNgN@ jNkN@@@@@@22" @@@ @@@24'@@@-@@25*0 @@@{N#@f M Load of a list of modules from a file. @raise Failure if an error occurs.LppM@@@@@@@@@3@v@@@@@@I@ A@B@B@A@B@A@KEA@A@A@A@{A{;A@zSz>@z@wwwz@@w@ssvsw@@s@nn&ns@@n@lkln@@k@c3ack@@c@^A]^-c@@^'@MFLM2^!@@M,@/A./-M&@@..@.r.@--@--~@-^,@,,@,,T@,4+@++s@+S+ @**@**|@*\*,@* )@))@)v)F@)&(@((@((V@(#'@''@'}'V@'6&@&&B@&"%@%%`@%@%@$$@$$e@$E$@##@##@#s#O@#/"@""w@"W"0@"!@!!@!!1@! @ @ @@@J@@@C/@@@@@@@`@@@3&&&&&&&&@@A@ H************************************************************************/A@@0A@L@ H 5BMM6BM@ H OCaml ;C ?* (target, code) : to specify code specific to a target format ! 9* A text is a list of [text_element]. The order matters. + 3* The different forms of references in \@see tags.  _* Raised when parsing string to build a {!Odoc_info.text} structure. [(line, char, string)]  "* The information in a \@see tag.  "* Parameter name and description. ^ )* Raised exception name and description.  V* Information in a special comment @before 3.12 \@before information was not present. ~8* The description text. % (* The list of authors in \@author tags.  #* The string in the \@version tag. :* The list of \@see tags. Ѡ !* The string in the \@since tag.  .* the version number and text in \@before tag  0* The description text of the \@deprecated tag. s &* The list of parameter descriptions. W !* The list of raised exceptions. ; ,* The description text of the return value.  '* A text associated to a custom @-tag. ~ A* Alerts associated to the same item. Not from special comments. ~ݠ >* Location of elements in implementation and interface files. |<:* implementation location |y5* interface location |[4* A dummy location. { #* Representation of element names. y==* Access to the simple name. { <* [concat t1 t2] returns the concatenation of [t1] and [t2].z z* Return the depth of the name, i.e. the number of levels to the root. Example : [depth "Toto.Tutu.name"] = [3]. zv F* Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 or else n2. z Q* Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 and n1<>"" or else n2. yƠ C* Return the name of the 'father' (like [dirname] for a file name).y S* Representation and manipulation of method / function / class / module parameters.u],* {1 Types} y1 ,* Representation of a simple parameter name xĠ * Representation of parameter names. We need it to represent parameter names in tuples. The value [Tuple ([], t)] stands for an anonymous parameter.x #* A parameter is just a param_info.w0* {1 Functions} wS P* Access to the name as a string. For tuples, parentheses and commas are added. w?* Access to the complete type. vˠ _* Access to the list of names ; only one for a simple parameter, or a list for a tuple. vv {* Access to the description of a specific name. @raise Not_found if no description is associated to the given name. v m* Access to the type of a specific name. @raise Not_found if no type is associated to the given name. u 1* Representation and manipulation of extensions. p[ k* Used when the extension is a rebind of another extension, when we have [extension Xt = Target_xt].t -* The complete name of the target extension. tנ '* The target extension, if we found it.t ,* the optional return type of the extension sɠ 1* the type extension containing this constructor s -* [None] when the extension is not a rebind. s<* optional user description sj 8* Information found in the optional associated comment. r@<* The type of the extension r' '* Access to the extensions in a group. p 1* Representation and manipulation of exceptions. m k* Used when the exception is a rebind of another exception, when we have [exception Ex = Target_ex].p -* The complete name of the target exception. pG '* The target exception, if we found it.p) 8* Information found in the optional associated comment. oC -* The optional return type of the exception. o -* [None] when the exception is not a rebind. n +* Representation and manipulation of types.d堠 &* Description of a record type field. l5* Name of the field. m45* [true] if mutable. m4* [true] if atomic. m5* Type of the field. l 1* Optional description in the associated comment.lѠ -* Description of a variant type constructor. k;* Name of the constructor. k 2* Optional description in the associated comment. j۠?* The various kinds of a type. i ** Type is abstract, for example [type t]. j/* constructors i)* fields iܠ/* Type is open iȠ 1* Type is external, e.g. [type t = external "t"] i<* optional user description h /* Type manifest directly taken from Typedtree. g<* Representation of a type. f=* Complete name of the type. gX 8* Information found in the optional associated comment. g< $* type parameters: (type, variance) g-* Type kind. f:* Private or public type. f⠠ Q* Representation and manipulation of values, class attributes and class methods. `8=* Representation of a value. d9>* Complete name of the value. d 8* Information found in the optional associated comment. dܠ5* Type of the value. dà $* [true] if the value is recursive. d:* The parameters, if any. d E* The code of the value, if we had the only the implementation file. dr '* Representation of a class attribute. b >* an attribute has almost all the same information as a value b젠 &* [true] if the attribute is mutable. bՠ &* [true] if the attribute is virtual. b $* Representation of a class method. a :* a method has almost all the same information as a value b "* [true] if the method is private.a렠 #* [true] if the method is virtual. aԠ K* Return [true] if the value is a function, i.e. it has a functional type. ` C* Access to the description associated to the given parameter name.` =* Representation and manipulation of classes and class types.Op,* {1 Types} `M ,* To keep the order of elements in a class. _䠠 :* Used when we can reference a t_class or a t_class_type. _" "* Class type and type parameters. _= (* Complete name of the inherited class. ] ** The associated t_class or t_class_type. ]⠠ '* The inheritance description, if any. ]Ơ ** The complete name of the applied class. ] )* The associated t_class if we found it. \ 3* The type of expressions the class is applied to. \ߠ !* The code of these expressions. \à ** The complete name of the applied class. [蠠 5* The associated class or class type if we found it. [̠ /* The type parameters of the class, if needed. [ E* An explicit class structure, used in implementation and interface. Z렠 =* Application/alias of a class, used in implementation only. ZҠ * A class used to give the type of the defined class, instead of a structure, used in interface only. For example, it will be used with the name [M1.M2....bar] when the class foo is defined like this : [class foo : int -> bar] Z (* A class definition with a constraint. Z=* Representation of a class. ^ؠ>* Complete name of the class. YҠ 8* Information found in the optional associated comment. Y5* Type of the class. Y3* Type parameters. Y $* [true] when the class is virtual. Yh * The way the class is defined. YQ?* The parameters of the class. Y3 ** Complete name of the target class type. WǠ 5* The target t_class or t_class_type, if we found it.W ,* The type parameters. FIXME : use strings? W 0* A class type eventually applied to type args. V "* Representation of a class type. ^à=* Complete name of the type. V> 8* Information found in the optional associated comment. V"3* Type parameters. U &* [true] if the class type is virtual Uߠ %* The way the class type is defined. UȠ0* {1 Functions} T %* Access to the elements of a class. T< ** Access to the list of class attributes. SŠ J* Access to the description associated to the given class parameter name. S^ $* Access to the methods of a class. R砠 %* Access to the comments of a class. Ry ** Access to the elements of a class type. R /* Access to the list of class type attributes. Q O* Access to the description associated to the given class type parameter name. Q- )* Access to the methods of a class type. P ** Access to the comments of a class type. PH ?* Representation and manipulation of modules and module types. 1,* {1 Types} Oߠ -* To keep the order of elements in a module. N蠠 9* Used where we can reference t_module or t_module_type. N (* Complete name of the included module. L 6* The included module or module type, if we found it. L 0* comment associated with the include directive Lh &* Complete name of the target module. K ;* The real module or module type if we could associate it. K+* the name K+* the type J4* the original code Jޠ "* the way the parameter was built JǠ?* Different kinds of a module. N?* A complete module structure. J 8* Complete name and corresponding module if we found it I ?* A functor, with its parameter and the rest of its definition IϠ 0* A module defined by application of a functor. I )* A generative application of a functor. I o* A module whose type is a with ... constraint. Should appear in interface files only. Iz (* A module constraint by a module type. I\ 0* by now only the code of the module expression IC /* code of the expression and module type alias I&>* Representation of a module. N?* Complete name of the module. G:* The type of the module. G 8* Information found in the optional associated comment. G /* [true] for modules read from interface files Gi %* The file the module is defined in. GR !* The way the module is defined. G; 5* The toplevels module names this module depends on. G?* The whole code of the module F 0* The whole code of the interface of the module F٠ .* [true] if the module comes from a text file F  +* Complete name of the target module type. E 1* The real module type if we could associate it. D頠 "* Different kinds of module type. N?* A complete module signature. Da ?* A functor, with its parameter and the rest of its definition DC D* Complete alias name and corresponding module type if we found it. D* <* The module type kind and the code of the with constraint. D 0* by now only the code of the module expression C #* Representation of a module type. Nv $* Complete name of the module type. C 8* Information found in the optional associated comment. B 1* [None] means that the module type is abstract. BӠ 0* [true] for modules read from interface files. B ** The file the module type is defined in. B * The way the module is defined. [None] means that module type is abstract. It is always [None] when the module type was extracted from the implementation file. That means module types are only analysed in interface files. B<* {1 Functions for modules} AY &* Access to the elements of a module. @ (* Access to the submodules of a module. @ ** Access to the module types of a module. @ .* Access to the included modules of a module. ? -* Access to the type extensions of a module. ?. (* Access to the exceptions of a module. > #* Access to the types of a module. >@ $* Access to the values of a module. =ɠ +* Access to functional values of a module. =R /* Access to non-functional values of a module. <۠ %* Access to the classes of a module. * {2 Miscellaneous functions} + * Return the first sentence (until the first dot followed by a blank or the first blank line) of a text. Don't stop in the middle of [Code], [CodePre], [Verbatim], [List], [Enum], [Latex], [Link], [Ref], [Subscript] or [Superscript]. +  * Return the first sentence (until the first dot followed by a blank or the first blank line) of a text, and the remaining text after. Don't stop in the middle of [Code], [CodePre], [Verbatim], [List], [Enum], [Latex], [Link], [Ref], [Subscript] or [Superscript].+b 5* Return the given [text] without any title or list. + \* [concat sep l] concats the given list of text [l], each separated with the text [sep]. * c* Return the list of titles in a [text]. A title is a title level, an optional label and a text.* 6* Take a sorted list of elements, a function to get the name of an element and return the list of list of elements, where each list group elements beginning by the same letter. Since the original list is sorted, elements whose name does not begin with a letter should be in the first returned list.) * Take a type and remove the option top constructor. This is useful when printing labels, we then remove the top option constructor for optional labels.)* /* Return [true] if the given label is optional.(٠ Z* Return the label name for the given label, i.e. removes the beginning '?' if present.( * Return the given name where the module name or part of it was removed, according to the list of modules which must be hidden (cf {!Odoc_args.hidden_modules})(2 ;* Print the given string if the verbose mode is activated. '젠 y* Print a warning message to stderr. If warnings must be treated as errors, then the error counter is incremented. ' G* A flag to indicate whether ocamldoc warnings must be printed or not. 'c * Increment this counter when an error is encountered. The ocamldoc tool will print the number of errors encountered exit with code 1 if this number is greater than 0. ' )* Apply a function to an optional value. & * Apply a function to a first value if it is not different from a second value. If the two values are different, return the second one.&J * [text_of_string s] returns the text structure from the given string. @raise Text_syntax if a syntax error is encountered. & * [text_string_of_text text] returns the string representing the given [text]. This string can then be parsed again by {!Odoc_info.text_of_string}.% * [info_of_string s] parses the given string like a regular ocamldoc comment and return an {!Odoc_info.info} structure. @return an empty structure if there was a syntax error. TODO: change this %x C* [info_of_comment_file file] parses the given file and return an {!Odoc_info.info} structure. The content of the file must have the same syntax as the content of a special comment. The given module list is used for cross reference. @raise Failure if the file could not be opened or there is a syntax error. % M* [remove_ending_newline s] returns [s] without the optional ending newline. $ 7* Research in elements  ** The type representing a research result." K* Research of the elements whose name matches the given regular expression.! <* A function to search all the values in a list of modules. ! @* A function to search all the extensions in a list of modules.  @* A function to search all the exceptions in a list of modules.   ;* A function to search all the types in a list of modules.  F* A function to search all the class attributes in a list of modules. 2 C* A function to search all the class methods in a list of modules.  =* A function to search all the classes in a list of modules. F A* A function to search all the class types in a list of modules. Р =* A function to search all the modules in a list of modules. Z B* A function to search all the module types in a list of modules. 䠠 $* Scanning of collected information  ;* Scan of a type extension 砠 * Override this method to perform controls on the extension's type, private and info. This method is called before scanning the extension's constructors. @return true if the extension's constructors must be scanned. B* This method scans the constructors of the given type extension. { * Scan of a type extension. Should not be overridden. It calls [scan_type_extension_pre] and if [scan_type_extension_pre] returns [true], then it calls scan_type_extension_constructors.E3* Scan of a class. 7 $* Scan of a comment inside a class.  * Override this method to perform controls on the class comment and params. This method is called before scanning the class elements. @return true if the class elements must be scanned.Ҡ 5* This method scans the elements of the given class.  * Scan of a class. Should not be overridden. It calls [scan_class_pre] and if [scan_class_pre] returns [true], then it calls scan_class_elements.f8* Scan of a class type. X )* Scan of a comment inside a class type. ) * Override this method to perform controls on the class type comment and form. This method is called before scanning the class type elements. @return true if the class type elements must be scanned. :* This method scans the elements of the given class type.  * Scan of a class type. Should not be overridden. It calls [scan_class_type_pre] and if [scan_class_type_pre] returns [true], then it calls scan_class_type_elements.3* Scan of modules. y %* Scan of a comment inside a module. J * Override this method to perform controls on the module comment and form. This method is called before scanning the module elements. @return true if the module elements must be scanned. 6* This method scans the elements of the given module. ޠ * Scan of a module. Should not be overridden. It calls [scan_module_pre] and if [scan_module_pre] returns [true], then it calls scan_module_elements.8* Scan of module types.  ** Scan of a comment inside a module type. k * Override this method to perform controls on the module type comment and form. This method is called before scanning the module type elements. @return true if the module type elements must be scanned. 5 ;* This method scans the elements of the given module type.  * Scan of a module type. Should not be overridden. It calls [scan_module_type_pre] and if [scan_module_type_pre] returns [true], then it calls scan_module_type_elements.ɠ8* Main scanning method. :* Scan a list of modules. w?* Computation of dependencies.  n* Modify the module dependencies of the given list of modules, to get the minimum transitivity kernel.  z * Return the list of dependencies between the given types, in the form of a list [(type name, names of types it depends on)]. @param kernel indicates if we must keep only the transitivity kernel of the dependencies. Default is [false].  <* {1 Some global variables}   <* The file used by the generators outputting only one file.  Π7* Verbose mode or not.  2* The directory where files have to be generated.  H <* The optional title to use in the generated documentation.  =* The optional file whose content can be used as intro text.  D* The flag which indicates if we must generate a table of contents. a 9* The flag which indicates if we must generate an index.  8* The flag which indicates if we must generate a header.۠ 9* The flag which indicates if we must generate a trailer. * Analysis of the given source files. @param init is the list of modules already known from a previous analysis. @return the list of analysed top modules. 젠 N* Dump of a list of modules into a file. @raise Failure if an error occurs.| N* Load of a list of modules from a file. @raise Failure if an error occurs.@,./ocamlc.opt)-nostdlib"-I(./stdlib"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I(ocamldoc"-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ސ S/home/teraram/ci/builds/workspace/parallel-build/flambda/true/label/ocaml-manycores <10/.-,+*)('&%$#"! @@0%LԇR@ Ҿ3@@@(Asttypes0>n{T8cئ5Build_path_prefix_map0z HkGs8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ*Format_doc0]mWϓ:Mݠ%Ident0">WA+9*X,Identifiable0 {d\FX'`(Location0a7cK_H%9)Longident0s `7mɕc$Misc0ob]6>Vê>b0_"#C{sF0>@ӽX4Idy0?*sR(6]!$. 0l-53Ji/W0uIg8S$jO0z8P*%"e$Path0Y2kf֯J._Ϡ)Primitive0²~$xzT෠%Shape0oNՄBH&Stdlib0Lku]8_٠.Stdlib__Buffer08APF< t..Stdlib__Digest0l!LHgErζ .Stdlib__Domain0:M;׉<O$Ġ.Stdlib__Either0Vy`u~c à.Stdlib__Format0ܚ#G7m|/Stdlib__Hashtbl0ѱN][/!,Stdlib__Lazy0* -S$.)"0D.Stdlib__Lexing0e<.V +Stdlib__Map0L5xE|O0~,J-.Stdlib__Result06 ]/J+Stdlib__Seq0nwzG&amg+Stdlib__Set0\$;7 .Stdlib__String0@@@s}r@ 5%$~VsV@))=>(]h\p0o@@@nem@&N%A78,SҐT4x"w[@ \ O+Ok)j@]]\qbp@:5:kDj9}|l@@+,\@GFdΐe)nQm3@AAAEÕD@7&7`nn%{t{@=>b_5@lsl9xxI@ t#Ɛ$5..3@kk%nUm@FSEP@O@ Ö Ͱ(o(@NrN@HpHHȓ ڒ@wvb@  'ZYf@2|2ΰb\i^hg@ddO@+%+hBsBްb*aհc֓c@:@ 0 X##rt?s@)B)ܓX@ihrq@[ Zfnf @ ]67oNN@SSQȰkk@!@!gYg@^7]q~6~@Q Q @cp`u}u?@RFʰf@C%CR`K$@@@ؓ`@JILROD@w}v!@ c:W:°WGo@@ml@RO@k@&ʓ%bby@ONUVP@,-,y@KIðrr,= Q@+,(u4t@]\@[J[v%vp@-.0@GGhKJ@&ٓ%@@22o@@)g@WݐX8ts@@ْz@@ce[dd@V|@9:yx@\\8``dy9xk@S#Qedΰ@ljd@'Ȗ'@8Q8@4Ð5{{A@@=|=@@@ 2@RNnKn@/ې0cɰF@@@FٕFMɓLS@Qdww @dbc@drc@^] u@@hg@ @  ?@(Z(@@uvH@s_s@@q\q@WPW{z{@ l 1D1^@ss{k{T@'&f@nwn+@@+,+fQٓQ@@NMTIR@?@SRF@_ۓ_d@n[n@56$@=a=ðbaaee@T}SӰss@@~\~@LfKOOOJ@fʰ  <a`@jiq˓qxDw*@DEUғT@@`A_@:;&@@'Γ&dD_^hh6nnT@YuY@kk ] @AǐB2YYp@@jiil{@{@{@**m4Ր5R9:Tq5pͰvǖv@<~@jj9@Փ@'ޓ&@5ǐ6 @4I4^^ @..BmBذdeU@I$H@  (R'Z@@@@ Ȗ ҰxǕxU@EF[KZeϒf n@ݓ@[Օ[>@qVp@$%e``Zf@PP@ L }~@ujt@@>@[Е[4@@@O"N&l@[gZ@mNlFswr@#9#'&SIcc@@34'@ϐA:LK@/ʐ0pbo԰{|{@@EE|zmy{{2@ml@qyqutߐ+@iHh@@GFLMKLK@@(ē'Ӱ;@@p5p@))MII1Ԓ@L$Jxx@@77KUUư{@@//@=c=ŰUMSɰ]]n;@k<j;|А}%Y@@J_J2@@535vc4b~~C@@$$@@(')mhl?@,,ðH\G@p?Z?rq@qr&@=>^NM@GGt;s@@ABU_S۰_|^@('+Ґ, hh_{{V@UKSĒ@&&Ǖ/@@a/`k2j @X7X@UU@"b"̰3A3{W[W@$L$U%Sut3s@RR.@T_J@@!4!>*C*}II[vvZ@ ΐ 3@2q2no7x@st@PNvv@@WWr@UgS@@bbZ@ON@ / ^]ưcc@@BBUS“@hh@`h_{y{LzkS<@==@MLzOSN@Nm@HH a@DDwwK@@@3I3e]@22R@n!11M\[@}}@*+hiQ@340V@MkL @klrmn0@̐@ i@)(@#]#ǰP#O@MLR@f eK@22@@P@@