Caml1999I037g#"F))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@@}@@@C(4(>(4(P@@!@*rf_mutable@@$boolE@@@B(k(u (k(@@/@)rf_atomic@@@@@A+((,((@@;@'rf_type@@c)type_expr@@@@9((:((@@I@'rf_textA@@@@>@@@?I ))#J ))B@@Y@@@A&,record_field@@@D@@@@T''U )y)@@@@d@A@0constructor_args;@@+Cstr_recordLf@@@G@@@H@@m))n)*@@}@*Cstr_tuple_)type_expr@@@E@@@F@@**"**F@@@@@A_0constructor_args@@@I@@@@ )) @@@@@A@3variant_constructor;@@'vc_name@@ @@@O****@@@'vc_args@@O@@@N****@@@&vc_ret@@W)type_expr@@@L@@@M***+@@@'vc_textA@j+@@@J@@@K+ +*+ +I@@@@@A3variant_constructor@@@P@@@@*H*L++@@@@@A@)type_kind;@@-Type_abstract@@++++@@@,Type_variantÐ٠f@@@S@@@T@@,$,*,$,T@@ @+Type_recordĐ@@@Q@@@R@@ ,|, ,|,@@ @)Type_openŐ@@  ,,  ,,@@ %@@@A)type_kind@@@U@@@@ ++ @@@@ /@A@,object_field;@@'of_name@@@@@Y 1#- -& 2#- -8@@ A@'of_type@@i)type_expr@@@X ?$-9-? @$-9-Z@@ O@'of_textA@$info@@@V@@@W R%-[-a S%-[-@@ b@@@A/,object_field@@@Z@@@@ ]",, ^&--@@@@ m@A@-type_manifest;@@%Otherː)type_expr@@@]@@ s)-- t)-.@@ @+Object_type̐e_@@@[@@@\@@ *.<.B *.<.d@@ @@@Ac-type_manifest@@@^@@@@ (-- @@@@ @A@&t_type;@@'ty_name@@!t@@@l /.. /..@@ @'ty_infoA@P@@@j@@@k 0./ 0./"@@ @-ty_parameters@@@)type_expr@@@g@(Variance!t@@@f@@h@@@i 1/`/j 1/`/@@ @'ty_kind@@@@@e 3// 3/0@@ @*ty_private@@@@@d 400 4008@@ @+ty_manifest@@@@@b@@@c 50X0b 50X0@@ @&ty_locA@@@@a 600 600@@ @'ty_codeA@ @@@_@@@` 700 700@@ )@@@A&t_type@@@m@@@@ $-.. %800@@@@ 4@A@@@ ('m'm ):00@ 8@@@Ӡ%Value@'t_value;@@(val_name@@Q!t@@@* AB11 BB11@@ Q@(val_infoA@@@@(@@@) QC11 RC12@@ a@(val_type@@)type_expr@@@' _D2V2` `D2V2|@@ o@-val_recursive@@N@@@& kE22 lE22@@ {@.val_parametersA@ [)parameter@@@$@@@% ~F22 F23#@@ @(val_codeA@ + @@@"@@@# G3C3M G3C3o@@ @'val_locA@{@@@! H33 H33@@ @@@A*Odoc_value't_value@@@+@@@@ @1{1 I33@@@@ @A@+t_attribute;@@)att_value@@@@@. N4V4` N4V4u@@ @+att_mutable@@@@@- O44 O44@@ @+att_virtual@@@@@, P55 P55"@@ @@@A7+t_attribute@@@/@@@@ L44  Q5O5X@@@@ @A@(t_method;@@)met_value@@5@@@2 V55 V55@@ @+met_private@@@@@1 W66$ W668@@ @+met_virtual@@@@@0 X6a6k X6a6@@ @@@Ak(t_method@@@3@@@@ T55 Y66@@@@ @A@+is_function @f@@@4@@@5@@6@ "\77  #\77-@@ 2@@_7{7 ?_7{7@@ N@@@@ B=1@1@ C`77@ R@@@Ӡ%Class@-class_element ;@@/Class_attribute.+t_attribute@@@@@ ^i88 _i88@@ n@,Class_method(t_method@@@@@ mj88 nj88@@ }@-Class_comment  @@@@@ zk88 {k89@@ @@@A*Odoc_class-class_element@@@@@@@ h8l8p @@@@ @A@#cct ;@@"Cl)'t_class@@@@@ o9v9~ o9v9@@ @&Cltype*,t_class_type@@@ )type_expr@@@@@@@@ p99 p99@@ @@@A>#cct@@@@@@@ n9V9Z @@@@ @A@/inherited_class ;@@'ic_name+@@!t@@@ t:+:5 t:+:G@@ @(ic_class,A@ X@@@@@@ u:u: u:u:@@ @'ic_text-@@  @@@@@@ v:: v::@@ @@@A|/inherited_class@@@@@@@ r99 w;;%@@@@ @B@+class_apply;@@)capp_name.@@$!t@@@ {;`;j {;`;~@@ $@*capp_class/A@ @@@@@@ $|;; %|;;@@ 4@+capp_params0@@ `)type_expr@@@@@@ 7}< < 8}< <9@@ G@0capp_params_code1@@ ' @@@@@@ H~2>;@@@@ @B@*class_kind;@@/Class_structure5 @@@@@@ g@@@@@@@@ >j>r >j>@@ @+Class_apply6@@@@@ ?? ??#@@ @,Class_constr7y@@@@@ ?n?t ?n?@@ @0Class_constraint8F@@@/class_type_kind@@@@@ @@ @@@@ @@@An*class_kind@@@@@@@ >=>A @@@@ @B@_;@@'cl_name9@@!t@@@Ű AuA AuA@@ @'cl_info:A@ q@@@@@@İ AA AA@@ #@'cl_type;@@K*class_type@@@° !BB& "BBB@@ 1@2cl_type_parameters<@@ ])type_expr@@@@@@ 4B]Bg 5B]B@@ D@*cl_virtual=@@#@@@ @BB ABB@@ P@'cl_kind>A@k@@@ KBB LBC@@ [@-cl_parameters?A@ ;)parameter@@@@@@ ^C@CJ _C@C|@@ n@&cl_loc@A@ J@@@ iCC jCC@@ y@@@A't_class@@@@@@@ tADAH uCC@@@@ @B@0class_type_alias;@@(cta_nameA@@!t@@@˰ DD DD2@@ @)cta_classBA@ 4@@@@@@ʰ DbDl DbD@@ @3cta_type_parametersC@@ )type_expr@@@@@@Ȱ DD DD@@ @@@A00class_type_alias@@@@@@@ CC E0E9@@@@ @B@;@@/Class_signatureD @@@@@@Ѡ @@@@@@@@ ErEz ErE@@ @*Class_typeEg@@@@@ EE EE@@ @@@Ah/class_type_kind@@@@@@@ E;E? @@@@ @B@I;@@(clt_nameF@@ !t@@@۰ FzF FzF@@ @(clt_infoGA@ k@@@@@@ڰ FFFF@@@(clt_typeH@@ E*class_type@@@ذG"G,G"GI@@+@3clt_type_parametersI@@  W)type_expr@@@@@@װ.GJGT/GJG@@>@+clt_virtualJ@@@@@հ:GG;GG@@J@(clt_kindKA@`@@@԰EGGFGH@@U@'clt_locLA@ 1@@@ӰPH<HFQH<Hb@@`@@@A,t_class_type@@@@@@@[F?FC\HcHl@@@@k@B@.class_elements%trans S@@@@@@@@@@ ^@@@@@@@@@@@~HHHH@@@@0class_attributes%trans#u@@@@@@@@@@ D+t_attribute@@@@@@@@@@@I0I4I0I{@@@@Q4QP@@ @)im_moduleA@KD@@@x@@@yQ~QQ~Q@@ @'im_infoA@\B$info@@@v@@@wQQQR@@ @@@Ak/included_module@@@{@@@@PPRNRW@@@@@B@,module_alias";@@'ma_name@@ !t@@@~RRRR@@@)ma_moduleA@B@@@|@@@}RRRS@@@@@A,module_alias@@@@@@@RYR]SHSQ@@@@ @B@0module_parameter#;@@'mp_name@@y@@@ SSSS@@@'mp_type@@ I+module_type@@@@@@ SS!SS@@0@,mp_type_code@@@@@,SS-ST@@<@'mp_kind@@0module_type_kind'@@@:T0T8;T0TT@@J@@@A0module_parameter@@@@@@@ESSSWFT|T@@@@U@B@+module_kind$;@@-Module_struct=@@@@@@@@^ TT_ TU @@n@,Module_alias@@@@@l U.U4m U.UR@@|@.Module_functorx@@@3@@@@@ UU UU@@@,Module_apply@@@@@@@@ V"V( V"VS@@@1Module_apply_unit@@@@@VVVV@@@+Module_withs@@@@@@@@W WW W:@@@1Module_constraint>@@@@@@@@WWWW@@@-Module_typeof:@@@@@XBXHXBXa@@@-Module_unpackH@@@1module_type_alias&@@@@@XXXX@@@@@A+module_kind@@@@@@@TT @@@@@B@*;@@&m_name@@ !t@@@Y[YeY[Yv@@@&m_typeA@ 6+module_type@@@ YY YY@@@&m_infoA@ z@@@@@@YYYZ@@,@.m_is_interface@@ @@@(ZOZY)ZOZp@@8 @&m_file@@@@@4 ZZ5 ZZ@@D!@&m_kindA@@@@?!ZZ@!Z[@@O"@%m_locA@+@@@J"[:[DK"[:[^@@Z#@*m_top_depsA@: k!t@@@@@@\#[_[i]#[_[@@l$@&m_codeA@ @@@@@@m$[[n$[[@@}%@+m_code_intfA@@@@@@@~%\\%\\D@@&@+m_text_only@@ m@@@&\z\&\z\@@'@@@A3(t_module@@@@@@@Y'Y+'\\@@@@@B@;@@(mta_name@@ !t@@@+]]'+]]:@@(@*mta_moduleA@S@@@@@@,]k]u,]k]@@)@@@A_1module_type_alias@@@@@@@)\\-]]@@@@@B@;@@2Module_type_structĐz@@@@@@@@1^G^M1^G^x@@*@3Module_type_functorŐk@@@@@@@@2^^2^^@@+@1Module_type_aliasƐ@@@@@4_0_64_0_^@@,@0Module_type_withǐ@@@s@@@@@6__6__@@-@2Module_type_typeofȐ@@@@@8`7`=8`7`[@@%.@@@A0module_type_kind@@@@@@@ 0^ ^ @@@@/@B@L;@@'mt_name@@ @!t@@@0>aa1>aa$@@@/@'mt_infoA@ݠ @@@@@@@?aNaXA?aNaw@@P0@'mt_typeA@|+module_type@@@@@@S@aaT@aa@@c1@/mt_is_interface@@ B@@@_Ab"b,`Ab"bD@@o2@'mt_file@@@@@kBbzblBbzb@@{3@'mt_kindA@C@@@@@@{Cbb|Cbb@@4@&mt_locA@g@@@GddGdd5@@5@@@A/-t_module_type@@@@@@@<``Hd6d?@@@@@B@/module_elements)%trans6 @@@@@@@@@@V@@@@@@@@@@@MddMdd@@6@@.module_modules*%transX @@@@@@@@@@ @@@@@@@@@@@PeePeeR@@7@@3module_module_types+%transz @@@@@@@&@@@נ@@@@@@@@@@@SeeSee@@8@@7module_included_modules,%trans @@@@@@@H@@@/@@@@@@@@@@@Vf fVf f[@@)9@@6module_type_extensions-%trans @@@@@@@j@@@0t_type_extension@@@@@@@@@@@=Yff>Yff@@M:@@1module_exceptions.%trans 4@@@@@@@@@@?'+t_exception@@@@@@@@@@@a\g g$b\g gp@@q;@@,module_types/%trans X@@@@@@@@@@c;&t_type@@@@@@@@@@@_gg_gg@@<@@-module_values0%trans* |@@@@@@@@@@ K't_value@@@@@@@@@@@bhhbhhS@@=@@0module_functions1%transN @@@@@@@@@@ o't_value@@@@@@@@@@@ehhehh@@>@@4module_simple_values2%transr @@@@@@@@@@Ϡ 't_value@@@@@@@@@@@hi ihi iU@@?@@.module_classes3%trans @@@@@@@B@@@'t_class@@@@@@@@ @@ @kiikii@@%@@@2module_class_types4%trans @@@ @@@ @f@@@ =,t_class_type@@@@@@@@@@@9nij:nijL@@IA@@2module_all_classes5%transޠ 0@@@@@@@@@@;a't_class@@@@@@@@@@@]qjj^qjj@@mB@@1module_is_functor6@@@@ R@@@@@@otk k$ptk kL@@C@@1module_parameters7%trans f@@@@@@@@@@q@@@@!@;>@@@@@@ @@"@@@#@@$@@%@wkkwkk@@D@@/module_comments8%transD @@@&@@@'@@@@(a@@@)@@@*@@+@@,@zll zllY@@E@@4module_type_elements9%transf @@@-@@@.@@@@/à@@@0@@@1@@2@@3@lllm @@F@@3module_type_modules:%trans @@@4@@@5@$@@@6;@@@7@@@8@@9@@:@mCmGmCm@@G@@8module_type_module_types;%trans @@@;@@@<@F@@@=M@@@>@@@?@@@@@A@'mm(mn@@7H@@%transd@@@P@@@Q@@@@RoG&t_type@@@S@@@T@@U@@V@oxo|oxo@@K@@2module_type_values?%trans6@@@W@@@X@@@@Y W't_value@@@Z@@@[@@\@@]@ooopE@@L@@5module_type_functions@%transZ@@@^@@@_@@@@` {'t_value@@@a@@@b@@c@@d@pppp@@M@@9module_type_simple_valuesA%trans~@@@e@@@f@@@@g۠ 't_value@@@h@@@i@@j@@k@qqqqe@@ N@@3module_type_classesB%trans@@@l@@@m@>@@@n%'t_class@@@o@@@p@@q@@r@!qq"qq@@1O@@7module_type_class_typesC%transƠ@@@s@@@t@b@@@u#I,t_class_type@@@v@@@w@@x@@y@Er"r&Fr"rz@@UP@@7module_type_all_classesD%trans<@@@z@@@{@@@@|Gm't_class@@@}@@@~@@@@@irrjrs/@@yQ@@6module_type_is_functorE@@@@^@@@@@@{sbsf|sbs@@R@@6module_type_parametersF%trans r@@@@@@@@@@}@'@@@@GJ@@@@@@@@@@@@@@@@ssstH@@S@@4module_type_commentsG%trans P@@@@@@@@@@m@@@@@@@@@@@trtvtrt@@T@@@@MMtt@U@@@0reset_type_names@$unitF@@@6@@@7@@8@uuuv@@V@@2string_of_variance@&t_type@@@9@)(Variance!t@@@:p@@@;@@<@@=@vvvw@@W@@3string_of_type_expr@?)type_expr@@@>@@@?@@@@wawawaw@@)X@@6string_of_class_params@.'t_class@@@A@@@B@@C@-xx.xx5@@=Y@@3string_of_type_list#par Ҡ$@@@D@@@E@@@@F@2~)type_expr@@@G@@@H@@@I@@J@@K@@L@YxxZxx@@iZ@@9string_of_type_param_list@ &t_type@@@M@@@N@@O@myVyVnyVy@@}[@@ #string_of_type_extension_param_list@T0t_type_extension@@@P@@@Q@@R@yyyzK@@\@@?string_of_class_type_param_list@t)type_expr@@@S@@@T@@@U@@V@zzz{@@]@@5string_of_module_type$code @@@@W@@@X(complete L@@@Y@@@Z@+module_type@@@[4@@@\@@]@@^@@_@|b|b|b|@@^@@4string_of_class_type(complete m@@@`@@@a@*class_type@@@bU@@@c@@d@@e@}w}w}w}@@_@@.string_of_text@@@@fg@@@g@@h@}}}~@@ `@@.string_of_info@h@@@iy@@@j@@k@ ~4~4~4~W@@a@@.string_of_type@&t_type@@@l@@@m@@n@!~~"~~@@1b@@0string_of_record@,record_field@@@o@@@p@@@q@@r@:~~;~~@@Jc@@8string_of_type_extension@ !0t_type_extension@@@s@@@t@@u@N00O0s@@^d@@3string_of_exception@ %+t_exception@@@v@@@w@@x@bc@@re@@/string_of_value@'t_value@@@y@@@z@@{@vwK@@f@@3string_of_attribute@)+t_attribute@@@|@@@}@@~@@@g@@0string_of_method@=(t_method@@@ @@@@@@"@@h@@6first_sentence_of_text@M@@@P@@@@@@@@@i@@i@@?first_sentence_and_rest_of_text@^@@@@e@@@@j@@@@@@@@@@j@@5text_no_title_no_list@x@@@{@@@@@@  @@k@@+text_concat@l$text@@@@ՠx$text@@@@@@$text@@@@@@@@@@l@@2get_titles_in_text@@@@@@@@@@@@@@@@@@@@@@@@@@@)66*6x@@9m@@2create_index_lists@!a@@@@@@ @@@@@-1@@@@@@@@@@@OP@@_n@@-remove_option@)type_expr@@@)type_expr@@@@@@fg@@vo@@+is_optional@(Asttypes)arg_label@@@`@@@@@@}!~!4@@p@@*label_name@)arg_label@@@@@@@@@%%@@q@@2use_hidden_modules@!t@@@!t@@@@@@*nn*n@@r@@'verbose@"@@@@@@@@@--@@s@@'warning@5@@@@@@@@@2uu2u@@t@@.print_warnings&Stdlib#ref@@@@@@@55@@u@@&errors#ref@@@@@@@;;@@v@@)apply_opt@@!a@!b@@@@@@@@@@@@@@@>>,@@'w@@.apply_if_equal@@!a@@@@@@@@@@@@,C-C@@<x@@.text_of_string@@@@@@@@@@>Hzz?Hz@@Ny@@3text_string_of_text@@@@@@@@@@PM==QM=e@@`z@@.info_of_string@@@@@@@@@@bT77cT7Z@@r{@@4info_of_comment_file@U (t_module@@@@@@@@@@@@@@@@@@]]@@|@@5remove_ending_newline@@@@@@@@@@`99`9e@@}@@Ӡ&Search@.result_elementH;@@*Res_module9(t_module@@@,@@ff@@@/Res_module_typeH-t_module_type@@@+@@gg-@@@)Res_class 't_class@@@*@@h.6h.R@@@.Res_class_type ,t_class_type@@@)@@iS[iS@@@)Res_value't_value@@@(@@jj@@@(Res_type &t_type@@@'@@kk@@ @-Res_extension 7t_extension_constructor@@@&@@ l l@@@-Res_exception  +t_exception@@@%@@mm6@@(@-Res_attribute!+t_attribute@@@$@@'n7?(n7c@@7@*Res_method"(t_method@@@#@@6odl7od@@F@+Res_section#@@@"@@@!@@HpIp@@X@,Res_recfield$ &t_type@@@  ,record_field@@@@@]q^q@@m@)Res_const% #&t_type@@@ )3variant_constructor@@@@@rrsr*@@@@@A+Odoc_search.result_element@@@-@@@@e @@@@~@A@-search_resultI;@@@Aq@@@.@@@/@@@@uagua@@@@@A@.search_by_nameJ@0(t_module@@@0@@@1@#Str®exp@@@20@@@3@@4@@5@xx5@@@@&valuesK@S(t_module@@@6@@@7v't_value@@@8@@@9@@:@{~{~@@@@*extensionsL@Ǡr(t_module@@@;@@@<Ѡ 7t_extension_constructor@@@=@@@>@@?@~~]@@@@*exceptionsM@(t_module@@@@@@@A +t_exception@@@B@@@C@@D@@@"@@%typesN@(t_module@@@E@@@F &t_type@@@G@@@H@@I@1;A2;u@@A@@*attributesO@$(t_module@@@J@@@K.+t_attribute@@@L@@@M@@N@PQ @@`@@'methodsP@C(t_module@@@O@@@PM(t_method@@@Q@@@R@@S@o]cp]@@@@'classesQ@b (t_module@@@T@@@Ul 't_class@@@V@@@W@@X@$@@@@+class_typesR@,(t_module@@@Y@@@Z ,t_class_type@@@[@@@\@@]@rxr@@@@'modulesS@K(t_module@@@^@@@_U(t_module@@@`@@@a@@b@ C@@@@,module_typesT@j(t_module@@@c@@@dɠt-t_module_type@@@e@@@f@@g@@@@@@@c@@@@Ӡ$Scan@Š'scannerU#@*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@@@]@@@@@@@4scan_module_elementsA@(t_module@@@@@@@@@@+scan_moduleA@ (t_module@@@@@@@@@@8scan_module_type_commentA@E@@@@@@@@@@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@[@\@]W@@^@@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@@@?@ 5$( 6@@ E@A@Ơ@V#@?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@@@!!@!@@@Ӡ#Dep@6kernel_deps_of_modulesX@(t_module@@@0@@@1 E@@@2@@3@!% !& @@!5@@-deps_of_typesY&kernelʠ@@@4@@@5@ $&t_type@@@6@@@7 .@ &t_type@@@:@ =n!t@@@8@@@9@@;@@@<@@=@@>@!`!ap@@!p@@@@!d::!eqv@!t@@@Ӡ&Global@&errorsZ#ref $@@@@@@@!}!~@@!@@*warn_error[#refr@@@@@@@!!@@!@@(out_file\#ref!@@@@@@@!-1!-J@@!@@'verbose]#ref@@@@@@@! lp! l@@!@@*target_dir^#ref!4@@@ @@@!@!#!#@@!@@%title_#ref |!K@@@"@@@#@@@$@!&)-!&)J@@!@@*intro_file`#ref !c@@@%@@@&@@@'@!)!)@@" @@(with_toca,#ref@@@(@@@)@" , " ,"@@"@@*with_indexb?#ref@@@*@@@+@"/fj" /f@@"/@@+with_headercR#ref@@@,@@@-@"22"32@@"B@@,with_trailerde#ref'@@@.@@@/@"E5(,"F5(G@@"U@@@@"I"J6HK@"Y@@@-analyse_files-merge_options!A!,merge_option@@@@@@@@@,include_dirs!T!@@@@@@@@@3hidden_include_dirs!e!@@@@@@@@@&labels#u@@@@@@,sort_modules/@@@@@@'no_stop;@@@@@@$initG!Z(t_module@@@@@@@@@@!+Odoc_global+source_file@@@@@@!`(t_module@@@@@@@@@@@@@@@@@@@@@@@";"DJr@@"@@,dump_modules@"R@@@@!Р(t_module@@@@@@ @@@@@@@@"H"H@@#@@,load_modules@"r@@@!(t_module@@@@@@@@@#LZZ#LZ@@#!@@@q͠)Odoc_info0 TvwŠ(Warnings0mJɒkgr@ӽ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ئ@@@Caml1999T037Ķ eG 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@@@@@A@@@%bytesC;@@ A@@@@@E@@@%floatD;@@A@@@@@I@@@$boolE;@@%falsec@@S@$trued@@Y@@@A@@@@@Z@A@$unitF;@@"()e@@d@@@A@@@@@e@A@ #exnG;@@@A@@@@@i@@@#effH;@@O@A@A@@@@@@r@@@,continuationI;@@Q@@P@BDA@nY@@@@@@@@@ %arrayJ;@@R@AOA@@@@@@@@@$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#4@/@@A&#))@-Match_failureV#=@@<@8@:@@a@@A74::@)Not_foundZ#N@@@A?<B B@-Out_of_memoryW#V@@@AGDJJ@.Stack_overflow^#^@@@AOLRR@.Sys_blocked_io_#f@@@AWTZ"Z@)Sys_error[#n@i@@A`]c+c@:Undefined_recursive_modulea#w@@v@r@t@@h@@Aqnt<t@:Continuation_already_takenb#@@@Ayv|D|@&Stdlib@AtA+(ref_kindA|S}S@@;@@)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. RwwRw@@@@@@@@@.@@@#@@@@@#"U@@@@@#(V@@@@@#.W@@@@@#4X@@@@@#:Y @@@@@#@Z(,@@@@@#F[9=@@@@@#L\JN~@}@@@@#}}R][_{@z@@@~@#zzX^imY^iw@q@г|$textb^i{{@@3````````@b;@@@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#9e#h@@@@@@@5R@(Verbatim8@@@m@@*fik+fi@%1 String 'as is'. 8fi9fi@@@@@@@QS@$Bold9a@@@n@@FgGg@A5 Text in bold style. TgUg@@@@@@@mT@&Italic:}@@@o@@bhch@]1 Text in italic. phqh@@@@@@@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?o @@@t@@@v@@mm@) A list. mm@@@@@@@Z@$Enum@.@@@w@@@y@@nn@5 An enumerated list. "n#n@@@@@@@;[@'NewlineA@@+o,o@&8 To force a line break. 9o:o@@@@@@@R\@%BlockBb@@@z@@GpHp)@B: Like html's block quote. Up*VpI@@@@@@@n]@%TitleC9@@@{̠9@@@|@@@~@@@@@rqJLsqJq@m ) Style number, optional label, and text. rrrr@@@@@@@^@%LatexD[@@@@@ss@5 A string for latex. ss@@@@@@@_@$LinkEw@@@@@@@@tt@ ' A reference string and the link text. tt #@@@@@@@`@#RefF@@@4Z@@@@@@>@@@@@@@@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  "@@@@@@@"b@)SubscriptH2@@@@@z # %z # 8@- Subscripts. %z # 9&z # K@@@@@@@>c@+Module_listI@@@@@@@@8{ L N9{ L j@3 5 The table of the given modules with their abstract. F| k rG| k @@@@@@@_d@*Index_listJ@@O}  P}  @J 7 The links to the various indexes (values, types, ...) ]}  ^}  @@@@@@@ve@&CustomK8@@@@@@@@p~  q~  @k8 to extend \{foo syntax ~~  ~  2@@@@@@@f@&TargetLY@@@^@@@@@ 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@@@@@@ᠰ@@@@@@#ڠڰgg@@гܠ$text#g@@@@@@࠰5@@@@@@#٠ٰ4h5h@@г۠$text>h@@ܰ@@@@ߠ9P@@@@@@#ؠذOiPi@@гڠ$textYi@@@@@@ޠTk@@@@@@#נװjjkj%@@г٠$texttj)@@@@@@ݠo@@@@@@#ְ֠kDHkDL@@гؠ$textkDP@@-@@@@ܠ@@@@@@#ՠհllpllu@@гנ$textlly@@H@@@@۠@@@@@@#Ԡ԰mm@@г֠$listm@гڠ$textmm@@l@@@m@@@@ߠᐠ@@@@@@#ؠذnn@@гڠ$listn@гޠ$textnn@@@@@@@@@㠰@@@@@@#ܠܰo@@@@ݠ@@@@@@#ְ֠pp!@@гؠ$text p%@@@@@@ܠ2@@@@@@#ՠհ1qJN2qJS@@гנ#int;qJWF N ]E@@K3 < < < < < < < <@ ?a{^;@@@Af@@@@ @@@@.,@@@AT@@@@V@#RR RG d h SG d p@K@гT&string \G d tU@@[V@@@@X@#TT bH {  cH { @M@гV&string lH { W@@].X@@@@Z@@AгV*Odoc_types wE * 9 xE * C@] {E * D |E * K@@@e?@@`x _^@^^@@@^@^@@3        @J@Alv@+Text_syntaxQC L   L  @#@ u@@@& z@@@' v@@@(@@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 gY:S hY:Y@гC&string pY:L qY: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@@ ? @@@@@@ a a,@ ' The list of authors in \@author tags.  a- aY@@@@@@@ u@)i_version[@@ A @@@@@@ bZ^ bZx@ ݐ " The string in the \@version tag.  bZy bZ@@@@@@@ v@&i_sees\@@ }@@@@@@ c c@ 9 The list of \@see tags.  c c@@@@@@@ (w@'i_since]@@  @@@@@@ d !d@  The string in the \@since tag.  .d /d@@@@@@@ Gx@(i_before^@@ @ @@@@ c@@@@@@@@ Ie Je?@ D - the version number and text in \@before tag  We@ Xer@@@@@@@ py@,i_deprecated_@@ Ǡ @@@@@@ hfsw ifs@ c / The description text of the \@deprecated tag.  vfs wfs@@@@@@@ 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@@ `@ @@@Ѡ@ @@@@@@@@հ 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@@@@@@@ 4@@@A "$info@@@@@@@ &_ 'llo@ ! U Information in a special comment @before 3.12 \@before information was not present.  4\^^ 5^@@@@@@@@@ Ms@@# <`@@@Ш@г&option E` F`@г$text N` O`@@3 M M M M M M M M@HB;@@@A@@@ 7@@@@@74@@&@A@@@ @@@@@ Y p@@@@@@# oa@@@Ш@г$list xa' ya+@г&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@г֠&string d d@@@@@ @@@@@ݠ  @@@@@@#ְ֠ e&@@@Ш@г٠$liste9e=@В@гޠ&string!e*"e0@@Ӱ@@@г㠐$text,e3-e7@@ް@@@߰@@@1e)@@@@@젰 -D@@@@@@#Cfs@@@Ш@г蠐&optionLfsMfs@г$textUfsVfs@@@@@ @@@@ @ Tk@@@@@@#jg@@@Ш@г$listsgtg@г%param|g}g@@.@@@/ @@@@2@ {@@@@@@#h%@@@Ш@г$listh9h=@г0raised_exceptionh(h8@@U@@@ V @@ @@Y@ @@@@@@#iew@@@Ш@г&optionieie@г$textiezie~@@ |@@@} @@@@@    @  @@@ @ @#j@@@Ш@г$listjj@В@г &stringjj@@@@@г$textjj@@@@@%@@@*j@@.@@@ @@@@@@# k @@@Ш@г$list k !k #@г%alert)k *k @@$۰@@@)ܰ @@,@@@# (?! @  @@@ @ @@Aг*Odoc_typesC_D_@#G_H_@@@+@@& D[$#@##@@@#@#@@3SSSSSSSS@@A21@A+(locationeIaobo@@;@@(loc_impl@@Ҡ(Location!t@@@ /@@@ 1wpxp@ 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&option q9 q?@г}(Locationq.q6@q7q8@@@:@@@; @@@@ 7>@0@@@@@@@Aг*Odoc_types4o5o@8o9o@@@Y@@5L@@@@@@@3DDDDDDDD@d@A@)dummy_locɠQuz~Ruz@г(locationZuz[uz@@ @@@3\\\\\\\\@}@A@@@duzz @^3 A dummy location. qtaartay@@@@@@@C@@@n@@@@@@!$NameJxx@K@@БA+!tKzz@@;@@Ao@@@@@@@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@б@г!tss@@ @@@3@J_8@A@@б@г!t)s*s@@ @@@@@г!t6s7s@@ @@@@@@@@!@@@'@@$* @@@Dsy@> ; [concat t1 t2] returns the concatenation of [t1] and [t2].Q,2R,r@@@@@@@jF@@@Ne@@@@@@C%depth͠h"i'@б@гڠ!ts*t+@@ @@@3uuuuuuuu@\q8@A@@гV#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@@б@г!t())*@@ @@@@@г!t5.6/@@ @@@@@@@@!@@@'@@$* @@@C @= P Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 and n1<>"" or else n2. PQ@@@@@@@iI@@@Md@@@@@@C&fatherРgh@б@г٠!trs@@ @@@3tttttttt@\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@@@@@"#@@;M@'sn_typeA@@%Types)type_expr@@@23@@KO@'sn_textBA@]@@@@@@CD @@\P@@@A.Odoc_parameter+simple_name@@@Q@@@@P_cQ @K + Representation of a simple parameter name ^*._*^@@@@@@@@@wL@@#IIDf@C@@Ш@гL&stringop@@T3nnnnnnnn@b;@@@Aj@@@`@@@@@-*@@@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@%TupleOy#@@@}@@@)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@@@@@@@@@5Q@@#AA:$@9@гB+simple_name-C@@I3++++++++@@ Z;@@@Ab@@@@{@@@@,*@@@AP@@@@R@#NN?@@;@гP$listI*J.@гU*param_infoRS)@@]&@@@b' @@гZ%Types_1`6@ac7_@`@@h7a@@@@c@@Aг_.Odoc_parameterop@fst@@@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@@@(@@@@@@I#typR+W_,Wb@б@г)parameter6We7Wn@@ @@@388888888@b]8@A@@г)type_expr%TypesIWrJWw@ MWxNW@@@@@@ @@@@@! @@@YW[ @S> Access to the complete type. f/3g/V@@@@@@@V@@@cz@@@@@@:%namesS}~@б@г)parameter@@ @@@3@Sh8@A@@г$list@гl&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@@ @@@@@г`&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. ()K@@@@@@@AX@@-@%<@@@@@@R,type_by_nameU?JR@J^@б@г)parameterJJaKJj@@ @@@3LLLLLLLL@k8@A@@б@г&&string[Jn\Jt@@ @@@@@г8)type_expr%TypeslJxmJ}@ pJ~qJ@@@@@@' @@@@@* @@@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@@@B@@@@@G@@@E@A0+@@H@@3AAAAAAAA@(@AIU@A+/extension_aliasoROP@@;@@'xa_namer@@!t@@@h^_@Y , The complete name of the target extension. lm4@@@@@@@a@%xa_xtsA@ܠ7t_extension_constructorpR@@@k@@@m5?5o@z & The target extension, if we found it.5p5@@@@@@@b@@@A/extension_alias@@@r@@@@@ 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@@@H@L@@@@74@@&T;@@@A\@@@I@M@@@@  @@@@_@0t_type_extensionqR;@@@A @@@J@N@@@@  ""@@@@`@@A2-@@@@i-@@@@@@@#5G5L@oA@Ш@г&option5g5m@г7t_extension_constructor5O5f@@Q@@@R @@@@nU@%@@@@@@@Aг.Odoc_extension)*@-.@@@p@@*A@@@@@@+Ġİ@A@@;@@'xt_namet@@!t@@@sOP@@hc@'xt_args~@@)Odoc_type0constructor_args@@@Ұ_#`G@@xd@&xt_ret@@ϠA)type_expr@@@@@@װrHRsHr@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@7$info@@@@@@    @Ր; optional user description     @@@@@@@i@@@A7t_extension_constructor@@@@@@@@@@@# @@@Ш@г$Name@@@@I@@@@tL@@#*@@@Ш@г)Odoc_type,5@°6 F@@@b@@@@e@@#àð)HX@@@Ш@гƠ&option2Hj3Hp@гˠ%Types=HZ>H_@ҰAH`BHi@@@@@@ @@@@@נAX@@@@@@#РаW@@@Ш@гӠ0t_type_extension`a@@@@@@@ڠ^u@@@@@@#ӠӰt  @@@Ш@г֠&option}  .~  4@г۠/extension_alias    -@@Ȱ@@@ɰ @@@@@⠰@@@@@@#۠۰ i { i @A@Ш@гߠ*Odoc_types i  i @ i  i @@@@@@@@@#    @A@Ш@г렐&option    @г𠡠*Odoc_types    @    @@@@@@ @@@@@吠@@@@@@@Aг.Odoc_extension@@@@0@@@+ ! !@@;@@'te_infoA@fv@@@@@@!@!J!@!i@ 7 Information found in the optional associated comment. !@!j!@!@@@@@@@.j@,te_type_name@@ !t@@@#!!$!!@; The type of the extension 1!!2!!@@@@@@@Jk@2te_type_parameters@@)type_expr@@@@@@D!!E!"@@]l@*te_private@@u@@@P"")Q""D@@im@/te_constructorsA@ݠ@@@@@@a"E"Ob"E"@@zn@&te_locA@ @@@m""n""@@o@'te_codeA@ݠJ@@@@@@~""""@@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_constructor!"E"h""E"@@c@@@d @@@@g@@#àð+"",""@A@Ш@гǠ(location5""6""@@w@@@@z@@#ʠʰ>""?""@A@Ш@гΠ&optionH""I""@гӠ&stringQ""R""@@@@@ @@@@@@@Aг֠.Odoc_extension` !a !"@ݰd !#e !3@@@@@@@3eeeeeeee@@A@6extension_constructorsr##s##1@б@г0t_type_extension}##4~##D@@ @@@H3@ D;5@A  @@г $list##`##d@г7t_extension_constructor##H##_@@ @@@I@@@@@@K  @@@&@@L#)@@@##@ & 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@@@O$v$$v$@ , The complete name of the target exception. $v$$v$@@@@@@@6u@%ea_exA@+t_exceptionT@@@R@@@T0$$1$$@+ & The target exception, if we found it.>$$?$%@@@@@@@Wv@@@A.Odoc_exception/exception_alias@@@w@@@@K$0$4L% %)@F j Used when the exception is a rebind of another exception, when we have [exception Ex = Target_ex].Y##Z#$/@@@@@@@@@rs@@#YYRa$v$@C@@Ш@г\$Namel$v$m$v$@cp$v$q$v$@@@k3pppppppp@Z@A@2,A@=B@B@@@|@@@@@@;@@@A@@@@M@@@@LI@@;k;@@@As@@@@N@@@@%+%/','5@@@@t@@A83@@@@P3@@@@@@@#$$$$@wA@Ш@г&option$$$$@г+t_exception$$$$@@W@@@X @@@@U[@ސ@@@@@@@Aг.Odoc_exception$0$K$0$Y@$0$Z$0$i@@@v@@@@@@@@+̠̰%+%3%+%>@@;@@'ex_name@@ !t@@@x%h%r %h%@@!w@'ex_infoA@x@@@{@@@}%%%%@ 7 Information found in the optional associated comment. '%%(%%@@@@@@@@x@'ex_args@@0constructor_args@@@5%%6%&@@Ny@&ex_ret@@ )type_expr@@@@@@H&&&I&&G@C , The optional return type of the exception. V&&HW&&y@@@@@@@oz@(ex_alias@@Ơh@@@@@@g&z&h&z&@b , [None] when the exception is not a rebind. u&z&v&z&@@@@@@@{@&ex_locA@"@@@&&&&@@|@'ex_codeA@^@@@@@@'' ''+@@}@@@AT+t_exception@@@@@@@@@@@#%h%y@@@Ш@г$Name%h%|%h%@%h%%h%@@@@@@@@yC@@#%%%%@A@Ш@г&option%%%%@г$info%%%%@@\@@@] @@@@~`@㐠@@@@@@#%%@@@Ш@г)Odoc_type%&%& @%& %&@@@@@@@@@#&&,@@@Ш@г &option&&?&&E@гǠ%Types&&/&&4@ΰ&&5&&>@@@@@@ @@@@@Ӡ*@@@@@@#̠̰)&z&@@@Ш@гϠ&option2&z&3&z&@гԠ/exception_alias;&z&<&z&@@ʰ@@@˰ @@@@@۠:Q@@@@@@#Ԡ԰P&&Q&&@A@Ш@гؠ(locationZ&&[&&@@@@@@@@#۠۰c''d''@A@Ш@гߠ&optionm''#n'')@г䠐&stringv''w''"@@@@@ @@@@ @@@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@@@H@@@@'' @@A@@@#@@@@@#''@@@@@@Aг)Odoc_type''''@''''@@@%3@@ A@B@@on@nn@@@n@n@k"S;@@@A[@@@R@G@@@@;@@@9@A$@@<@@3@@A=G@A+,record_fieldW*'(+'(@@;@@'rf_name@@@@@]7(4(>8(4(P@24 Name of the field. E(4(QF(4(j@@@@@@@^@*rf_mutable@@@@@`Q(k(uR(k(@L4 [true] if mutable. _(k(`(k(@@@@@@@x@)rf_atomic@@,@@@ck((l((@f3 [true] if atomic. y((z((@@@@@@@@'rf_type@@ W)type_expr@@@f((((@4 Type of the field. ((()@@@@@@@@'rf_textA@@@@i@@@k ))# ))B@ 0 Optional description in the associated comment. ))C ))x@@@@@@@@@@Ab,record_field@@@n@@@@'' )y)@ % Description of a record type field. ''''@@@@@@@@@@@#(4(E@@@Ш@г&string(4(H(4(N@@3@!;@@@A@@@|@\@@@@.+@@@A@@@@^@@@@@@@#(k(@@@Ш@г$bool (k( (k(@@)@@@@a,@ @@@@@@# ((@@@Ш@г$bool $(( %((@@F@@@@dI@" 9@@@@@@# 8((@@@Ш@г%Types C(( D((@° G(( H((@@@j@@@@gm@ǠF ]@@@@@@# \ ))+ ] ))2@A@Ш@гĠ&option f )): g ))@@гɠ$info o ))5 p ))9@@@@@ @@@@l@Рn @@@@@@@Aгɠ)Odoc_type '( '(@а '( '('@@@@@Ӡ @@@@@@@3        @@A@A+0constructor_argsX  ))  ))@@;@@+Cstr_record 7@@@@@@@@ )) )*@@ @*Cstr_tuple J )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!***2!+**7@a!.**8!/**A@@@i-@@@n. b@@@@d@@Aг`)Odoc_type!< ))!= ))@g!@ ))!A ))@@@o?@@j=!Tih@hh@@@h@h@@3!L!L!L!L!L!L!L!L@J@Av@A+3variant_constructorY!Z*H*Q![*H*d@@;@@'vc_name@@!4@@@!g**!h**@b: Name of the constructor. !u**!v**@@@@@@@!@'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@@#"$+ +2"%+ +9@qA@Ш@г&option".+ +A"/+ +G@г$info"7+ +<"8+ +@@@h@@@i @@@@l@ 6"M@@@@@@@Aг)Odoc_type"Q*H*g"R*H*p@"U*H*q"V*H*@@@@@@@3"V"V"V"V"V"V"V"V@@A@A+)type_kindZ"d++"e++@@;@@-Type_abstract@@"n++"o++@ i ) Type is abstract, for example [type t]. "|++"}+,#@@@@@@@"@,Type_variantÐ" 6@@@@@@@@",$,*",$,T@ . constructors ",U,h",U,{@@@@@@@"@+Type_recordĐ",@@@@@@@@",|,",|,@ ( fields ",,",,@@@@@@@"@)Type_openŐ@@" ,," ,,@ . Type is open " ,," ,,@@@@@@@"@@@A )type_kind@@@@@@@"++@ ڐ> The various kinds of a type. "++"++@@@@@@@@@#@@#@w@@@ #@@@@@@##,$,,#,$,8@h@г$list#,$,P@г3variant_constructor#,$,<#,$,O@@3########@I;@@@A@@@@@@@@FD@@6@A@@@ @@@@! #7@@@@@@##6,|,#7,|,@x@г$list#@,|,@г,record_field#H,|,#I,|,@@1@@@2@@@@!E#\@@@@@@##[ ,,@@@@!V#m@@@@@@@Aг)Odoc_type#q++#r++@#u++#v++@@@_@@!r#@@@@@@@3########@j@A@A+,object_field[#",,#",-@@;@@'of_name@@#i@@@)##- -&##- -8@@#@'of_type@@z)type_expr@@@,#$-9-?#$-9-Z@@#@'of_textA@#!$info@@@/@@@1#%-[-a#%-[-@!; optional user description #%-[-#%-[-@@@@@@@#@@@A y,object_field@@@4@@@@#",,#&--@@@@#@@#GGB##- --@A@@Ш@гJ&string##- -0##- -6@@R3########@a;@@@Ai@@@>@(@@@@ @@@@A@@a@@*@]@#YYR#$-9-F@Q@@Ш@г\%Types$$-9-I$$-9-N@c$ $-9-O$ $-9-X@@@k%@@n@@-(@h@#dd$%-[-i$%-[-p@JA@Ш@гh&option$%-[-$ %-[-@гm*Odoc_types$*%-[-s$+%-[-}@t$.%-[-~$/%-[-@@@|H@@@I @@@@2L@y".$Ewv@vv@@@v@v@@Aгr)Odoc_type$I",-$J",-@y$M",-$N",-@@@g@@|@@3$N$N$N$N$N$N$N$N@g@A}|@A+-type_manifest\$\(--$](--@@;@@%Otherː=)type_expr@@@R@@$m)--$n)-.@"h . Type manifest directly taken from Typedtree. ${)-.$|)-.;@@@@@@@$@+Object_type̐$ @@@S@@@U@@$*.<.B$*.<.d@@$@@@A <-type_manifest@@@V@@@@$(-- @@@@$@@#<<$)--$)--@%@г>%Types$)--$)--@E$)--C@D@@L3$$$$$$$$@*$];@@@Ae@@@a@Q@@@@&@@@$@AQ@@@@S"$ϐQP@PP@@@P@P@#LL$*.<.D$*.<.O@@@гN$list$*.<.`J@гR,object_field$*.<.S$*.<._@@Z0@@@_1U@@@@W@@AгS)Odoc_type$(--$(--@Z$(--$(--@@@bB@@]@@3$$$$$$$$@B@A^h@A+&t_type]%-..%-..@@;@@'ty_name@@!t@@@u%/..%/..@# < Complete name of the type. %/..%/..@@@@@@@%6@'ty_infoA@$@@@x@@@z%.0./%/0./"@#) 7 Information found in the optional associated comment. %<0./#%=0./_@@@@@@@%U@-ty_parameters@@$ɠ@")type_expr@@@}@+(Variance!t@@@ @@ @@@%]1/`/j%^1/`/@#X # type parameters: (type, variance) %k2//%l2//@@@@@@@%@'ty_kind@@@@@%w3//%x3/0@#r, Type kind. %3/0%3/0@@@@@@@%@*ty_private@@@@@%400%4008@#9 Private or public type. %4009%400W@@@@@@@%@+ty_manifest@@%U@@@@@@%50X0b%50X0@@%@&ty_locA@]@@@%600%600@@%@'ty_codeA@%,%@@@@@@!%700%700@@%@@@A {&t_type@@@&@@@@%-..%800@#Ӑ; Representation of a type. %,.f.j%,.f.@@@@@@@@@%@@#%/..@@@Ш@г頡$Name%/..%/..@%/..%/..@@@3%%%%%%%%@O;@@@A@@@H@t@@@@52@@$@A@@@@v@$&@@@@@@#&0./ &0./@A@Ш@г&option&(0./&)0./ @г$info&10./&20./@@ 3@@@4 @@@@{7@ $0&G@@@@@@#&F1/`/w@@@Ш@г$list&O1/`/&P1/`/@В@г %Types&^1/`/{&_1/`/@&b1/`/&c1/`/@@@e@@@г%Types&r1/`/&s1/`/@&v1/`/&w1/`/@@!&{1/`/&|1/`/@ @@+~ @@@8"@@@=&1/`/z2@@A@@@($}&&%@%%@@@%@%@#!!&3//@ @@Ш@г$)type_kind&3//&3/0@@,@@/@@@+$&)(@((@@@(@(@#$$&400(@@@Ш@г',private_flag&400+&4007@@/@@2@@@.$&ΐ,+@++@@@+@+@#''&50X0m@@@Ш@г*&option&50X0~&50X0@г/-type_manifest&50X0p&50X0}@@7@@@< @@?@@@6@#22&600&600@-A@Ш@г6(location&600&600@@>@@A@@@=@#99&700&700@/A@Ш@г=&option'700'700@гB&string'700'700@@J@@@O @@R@@"@I@@AгE)Odoc_type'-..'-..@L'"-..'#-..@@@T%@@O%'6ML@LL@@@L@L@@3'.'.'.'.'.'.'.'.@0@A[Z@@smA@ A@A@A@A@A@A@GAA@@3'@'@'@'@'@'@'@'@@CIC@A3'C'C'C'C'C'C'C'C@C@A'H'{'}'I:00@@%C'Z * Representation and manipulation of types.'W'='='X'='l@@@@@@@'Z'm'm@@%Value^'f=1@1G'g=1@1L@'@@БA+'t_value_'u@1{1'v@1{1@@;@@(val_name@@!t@@@ʰ'B11'B11@%= Complete name of the value. 'B11'B11@@@@@@@'@(val_infoA@'@@@@@@ϰ'C11'C12@% 7 Information found in the optional associated comment. 'C12'C12U@@@@@@@'@(val_type@@)type_expr@@@Ұ'D2V2`'D2V2|@%4 Type of the value. 'D2V2}'D2V2@@@@@@@'@-val_recursive@@'@@@հ'E22'E22@%Ԑ # [true] if the value is recursive. 'E22'E22@@@@@@@(@.val_parametersA@'t)parameter@@@@@@ڰ'F22'F23#@%9 The parameters, if any. (F23$( F23B@@@@@@@(!@(val_codeA@'x'@@@@@@߰(G3C3M(G3C3o@& D The code of the value, if we had the only the implementation file. ('G3C3p((G3C3@@@@@@@(@@'val_locA@@@@(3H33(4H33@@(L@@@A*Odoc_value't_value@@@*@@@@(@@1{1(AI33@&;< Representation of a value. (N?1U1Y(O?1U1z@@@@@@@@@(g@@#٠ٰ(VB11@@@Ш@гܠ$Name(aB11(bB11@(eB11(fB11@@@3(e(e(e(e(e(e(e(e@ g @  A@ K EA@A@A@A@A@#A@{A@@&v21@11@@@1@1@. ;@@@A@@@B@@@@@QN@@@@A0+@@@@+@&( @  @@@ @ @#  (C12(C12@A@Ш@г &option(C12(C12@г$info(C12 (C12@@O@@@P @@"@@S@&(ː@@@@@@# (D2V2h@@@Ш@г%Types(D2V2k(D2V2p@(D2V2q(D2V2z@@@$t@@'@@w@!&(@@@@@@#(E22@@@Ш@г$bool(E22(E22@@%@@(@@@$&) "!@!!@@@!@!@#) F22) F23@A@Ш@г!$list)F23)F23!@г&.Odoc_parameter) F23)!F23@-)$F23)%F23@@@5@@@: @@=@@@2'$);0/@//@@@/@/@#++):G3C3U);G3C3]@A@Ш@г/&option)DG3C3g)EG3C3m@г4&string)MG3C3`)NG3C3f@@<@@@A @@D@@@;'L)c98@88@@@8@8@#44)bH33)cH33@/A@Ш@г8(location)lH33)mH33@@@@@C@@ @?@@Aг;*Odoc_value)z@1{1){@1{1@@)~@1{1)@1{1@@@J@@C'{)A@@@@@@@@@@@@3))))))))@$@AON@A++t_attribute`)L44%)L440@@;@@)att_value@@2@@@)N4V4`)N4V4u@' = an attribute has almost all the same information as a value )N4V4v)N4V4@@@@@@@)@+att_mutable@@)@@@)O44)O44@' % [true] if the attribute is mutable. )O44)O45@@@@@@@)@+att_virtual@@)@@@)P55)P55"@'Ԑ % [true] if the attribute is virtual. )P55$)P55N@@@@@@@*@@@A+t_attribute@@@@@@@)L44 )Q5O5X@'퐠 & Representation of a class attribute. *K33*K34@@@@@@@@@*@@#hhc*N4V4i@T@@Ш@гk't_value*N4V4l*N4V4s@@s3********@;@@@A@@@@@@@@.+@@@A@@@@@~(*2|{@{{@@@{@{@#wwr*1O44@c@@Ш@гz$bool*:O44*;O44@@)@@@@,@(8*O~@~~@@@~@~@#zzu*NP55@f@@Ш@г}$bool*WP55*XP55 @@F@@@@I@(U*l@@@@@@@Aг}*Odoc_value*pL443*qL44=@*tL44>*uL44I@@@d@@(q*@@@@@@@3********@o@A@A+(t_methoda*T55*T55@@;@@)met_value@@(@@@۰*V55*V55@( 9 a method has almost all the same information as a value *V55*V56@@@@@@@*@+met_private@@*v@@@ް*W66$*W668@( ! [true] if the method is private.*W66:*W66`@@@@@@@*@+met_virtual@@*@@@*X6a6k*X6a6@(ʐ " [true] if the method is virtual. *X6a6*X6a6@@@@@@@*@@@A(t_method@@@@@@@*T55*Y66@(㐠 # Representation of a class method. *S5Z5^*S5Z5@@@@@@@@@+@@#hhc*V55@T@@Ш@гk't_value+V55+V55@@s3++++++++@xr;@@@A@@@@@@@@.+@@@A@@@@@~)+(|{@{{@@@{@{@#wwr+'W66/@c@@Ш@гz$bool+0W662+1W666@@)@@@@,@).+E~@~~@@@~@~@#zzu+DX6a6v@f@@Ш@г}$bool+MX6a6y+NX6a6}@@F@@@@I@)K+b@@@@@@@Aг}*Odoc_value+fT55+gT55@+jT55+kT55@@@d@@)g+~@@@@@@@3+v+v+v+v+v+v+v+v@o@A@+is_function+\77+\77@б@г't_value+\77+\77%@@ @@@3++++++++@ @A@@г+\$bool+\77)+\77-@@ @@@@@@@@@@@+\77  @) J Return [true] if the value is a function, i.e. it has a functional type. +[66+[67@@@@@@@+@@@)+ɐ@@@@@@11O1Q,>`77@@*8,O P Representation and manipulation of values, class attributes and class methods. ,L<00,M<01?@@@@@@@,O=1@1@@@%ClassWb,[c8 8,\c8 8@,t@@Б,t,s+ {1 Types} ,pe8!8%,qe8!85@@@@@@3,o,o,o,o,o,o,o,o@ @A@A@A@@p@@*y@?@??@@@?@?@<"@AA+-class_elementc,h8l8u,h8l8@@;@@/Class_attribute@+t_attribute@@@-@@,i88,i88@@,@,Class_methodP(t_method@@@.@@,j88,j88@@,@-Class_comment *@@@/@@,k88,k89@@,@@@A*Odoc_class-class_element@@@D@@@@,h8l8p @*ɐ + To keep the order of elements in a class. ,g878;,g878k@@@@@@@@@,@@#II@,i88@?@гJ%Value,i88,i88@Q,i88O@P@@X3,,,,,,,,@h;@@@Ap@@@V@ @@@@20@@"@A\@@@@^@#ZZ-j88-j88@Q@г\%Value-j88-j88@c-j88a@b@@j"c@@@@e@#aa-k88-k89 @Z@гc$text-&k89 d@@j2e@@@@g@@Aгc*Odoc_class-1h8l8-2h8l8@h-5h8l8-6h8l8@@@rC@@k+2-Iji@ii@@@i@i@@Ұv@A+#cct d-Nn9V9_-On9V9b@@;@@"Cl)'t_class%d@@@{@@-_o9v9~-`o9v9@@-x@&Cltype*,t_class_type(d@@@|,J)type_expr@@@}@@@@@-{p99-|p99@+v ! Class type and type parameters. -p99-p99@@@@@@@-@@@A#cct@@@@@@@-n9V9Z@+ 9 Used when we can reference a t_class or a t_class_type. -m99-m99U@@@@@@@@@-@@#SSJ-o9v9@I@гT't_class-o9v9S@@[3--------@K/)t;@@@A|@@@@r@@@@42@@$/inherited_class!d;@@@A @@@@s@@@@-r99-w;;%@@@@-@+class_apply"d;@@@A @@@@t@@@@-y;';+-<<@@@@-@,class_constr#d;@@@A @@@@u@@@@-<<->2>;@@@@. @*class_kind$d;@@@A @@@@v@@@@.>=>A.@@@@@@.@;@@@A@@@@w@@@@. ADAH.CC@,< Representation of a class. .AA".AAC@@@@@@@@@.4@0class_type_alias&d;@@@A @@@@x@@@@.*CC.+E0E9@@@@.C@/class_type_kind'd;@@@A @@@@y@@@@.9E;E?.:EE@@@@.R@;@@@A@@@@z@@@@.FF?FC.GHcHl@,A ! Representation of a class type. .TFF.UFF>@@@@@@@@@.m@@A@@@@@#.\p99.]p99@@г,t_class_type.fp99.gp99@@@@г$list.pp99@г%Types.zp99.{p99@.~p99.p99@@@ΰ@@@ϰ @@@@ ,|.@@@@@@@Aг*Odoc_class.n9V9e.n9V9o@ .n9V9p.n9V9s@@@@@ ,.  @  @@@ @ @+.r99.r9:@@;@@'ic_name+@@5!t@@@.t:+:5.t:+:G@, ' Complete name of the inherited class. .t:+:H.t:+:t@@@@@@@.@(ic_class,A@.;@@@@@@.u:u:.u:u:@,א ) The associated t_class or t_class_type. .u:u:.u:u:@@@@@@@/@'ic_text-@@.Z-@@@@@@.v::.v::@, & The inheritance description, if any. / v::/ v:;@@@@@@@/"@@@AG/inherited_class@@@@@@@A@@@>@#bb[/t:+:<@L@@Ш@гe$Name/#t:+:?/$t:+:C@l/'t:+:D/(t:+:E@@@tw@@w@@z@q-&/=on@nn@@@n@n@#jj/<u:u:/=u:u:@RA@Ш@гn&option/Fu:u:/Gu:u:@гs#cct/Ou:u:/Pu:u:@@{@@@ @@@@@z-N/exw@ww@@@w@w@#ssi/dv::@Z@@Ш@гv&option/mv::/nv::@г{$text/vv::/wv::@@Ű@@@ư @@@@@-u/@@@@@@@Aг{*Odoc_class/r9:/r9:@/r9:/r9:@@@@@@+Ġİ/y;';//y;';:@@;@@)capp_name.@@#!t@@@/{;`;j/{;`;~@- ) The complete name of the applied class. /{;`;/{;`;@@@@@@@/@*capp_class/A@/)l@@@@@@/|;;/|;;@-Ő ( The associated t_class if we found it. /|;;/|;< @@@@@@@/@+capp_params0@@/e)type_expr@@@@@@/}< </}< <9@-搠 2 The type of expressions the class is applied to. /}< <:/}< @#|0'{;`;s@m@@Ш@г$Name02{;`;v03{;`;z@06{;`;{07{;`;|@@@@@@@@.50L@@@@@@#0K|;;0L|;;@sA@Ш@г&option0U|;;0V|;;@г't_class0^|;;0_|;;@@@@@ @@@@@.]0t@@@@@@#0s}< 1@@@@@@@1O@@@At,class_constr@@@@@@@P@@@M@#dd]1E= =@N@@Ш@гg$Name1P= =1Q= ="@n1T= =#1U= =$@@@v@@y@@@s/S1jqp@pp@@@p@p@#ll1i=V=h1j=V=q@TA@Ш@гp&option1s=V=x1t=V=~@гu#cct1|=V=t1}=V=w@@}˰@@@̰ @@@@@|/{1zy@yy@@@y@y@#uui1==@Z@@Ш@гx$list1==1==@г}%Types1==1==@1==1==@@@@@@ @@@@@/1@@@@@@@Aг*Odoc_class1<<1<<@1<<1<<@@@@@@+ڠڰ1>=>E1>=>O@@;@@/Class_structure51`@@@@@@1j\@@@@@@@@1>j>r1>j>@/鐠 D An explicit class structure, used in implementation and interface. 1>>1>?@@@@@@@2@+Class_apply62@@@@@2 ??2 ??#@0 < Application/alias of a class, used in implementation only. 2?$?,2?$?m@@@@@@@21@,Class_constr7?@@@@@2&?n?t2'?n?@0!  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] 24??25@@@@@@@@@2M@0Class_constraint8L@@@@@@@@2G@@G@0A ' A class definition with a constraint. 2T@@2U@A@@@@@@@2m@@@A*class_kind@@@@@@@_@@@\@#u2c>j>@f@г$list2l>j>2m>j>@г/inherited_class2u>j>2v>j>@@İ@@@Ű @@г$list2>j>@г-class_element2>j>2>j>@@װ@@@ذ@@@@02@@@@@@#2?? 2??@@г+class_apply2??@@@@@@02@@@@@@#2?n?v2?n?@@г,class_constr2?n?@@@@@@02Ґ@@@@@@#2@@2@@@}@г*class_kind2@@2@@@@*@@г/class_type_kind2@@@@3@@@@02@@@@@@@Aг*Odoc_class2>=>R2>=>\@2>=>]3>=>g@@@O@@@+3ADAL3ADAS@@;@@'cl_name9@@"!t@@@3AuA3AuA@1= Complete name of the class. 3$AuA3%AuA@@@@@@@3=@'cl_info:A@2'@@@@@@ư35AA36AA@10 7 Information found in the optional associated comment. 3CAA3DAB@@@@@@@3\@'cl_type;@@ !*class_type@@@ɰ3QBB&3RBBB@1L4 Type of the class. 3_BBC3`BB\@@@@@@@3x@2cl_type_parameters<@@2 A)type_expr@@@@@@ΰ3rB]Bg3sB]B@1m2 Type parameters. 3B]B3B]B@@@@@@@3@*cl_virtual=@@3M@@@Ѱ3BB3BB@1 # [true] when the class is virtual. 3BB3BB@@@@@@@3@'cl_kind>A@@@@԰3BB3BC@1? The way the class is defined. 3BC3BC?@@@@@@@3@-cl_parameters?A@3A )parameter@@@@@@3C@CJ3C@C|@1> The parameters of the class. 3C@C}3C@C@@@@@@@3@&cl_loc@A@$@@@3CC3CC@@3@@@A't_class@@@@@@@@@@#3AuA@@@Ш@г䠡$Name3AuA3AuA@3AuA4AuA@@@O@@@@R@𠰠14@@@@@@#4AA4AA@A@Ш@г&option4AA4AA@г$info4'AA4(AA@@v@@@w @@@@z@2&4=@@@@@@#4<BB-@@@Ш@г%Types4GBB04HBB5@4KBB64LBB@@@@@@@@@2J4a@@@@@@#4`B]By@@@Ш@г$list4iB]B4jB]B@г%Types4tB]B|4uB]B@ 4xB]B4yB]B@@@Ȱ@@@ɰ @@@@@2x4  @  @@@ @ @#4BB@@@Ш@г $bool4BB4BB@@@@@@@24@@@@@@#  4BC4BC @A@Ш@г*class_kind4BC4BC@@@@@@@24ʐ@@@@@@#4C@CR4C@C_@A@Ш@г$list4C@Cv4C@Cz@г)Parameter4C@Cb4C@Ck@4C@Cl4C@Cu@@@&2@@@+3 @@.@@6@#24! @  @@@ @ @#4CC4CC@A@Ш@г (location5CC5CC@@(Q@@+@@T@'@@Aг#*Odoc_class5ADAV5ADA`@*5ADAa5ADAh@@@2d@@ 35(  @  @@@ @ @+5'CC5(CC@@;@@(cta_nameA@@$!t@@@56DD57DD2@31 ) Complete name of the target class type. 5DDD35EDDa@@@@@@@5]@)cta_classBA@4@@@@@@ 5UDbDl5VDbD@3P 4 The target t_class or t_class_type, if we found it.5cDbD5dDbD@@@@@@@5|@3cta_type_parametersC@@4"E)type_expr@@@ @@@5vDD5wDD@3q + The type parameters. FIXME : use strings? 5DD5DE/@@@@@@@5@@@A0class_type_alias@@@@@@@e@@@b@#dd]5DD'@N@@Ш@гg$Name5DD*5DD.@n5DD/5DD0@@@v@@y@@@s35qp@pp@@@p@p@#ll5DbDt5DbD}@TA@Ш@гp&option5DbD5DbD@гu#cct5DbD5DbD@@}@@@ @@@@ @|35zy@yy@@@y@y@#uui5DD@Z@@Ш@гx$list5DD5DD@г}%Types5DD5DD@5DD5DD@@@G@@@H @@@@K@36@@@@@@@Aг*Odoc_class6CC6CC@6CC6CD@@@f@@@+6E;EC6E;ER@@;@@/Class_signatureD5h@@@@@@5 @@@@@@@@6<ErEz6=ErE@@6U@*Class_typeE*@@@@@6JEE@4D / A class type eventually applied to type args. 6WEE6XEF@@@@@@@6p@@@A /class_type_kind@@@@@@@)@@@&@#@@*6fErE@)@гA$list6oErE6pErE@гF/inherited_class6xErE6yErE@@Nǰ@@@SȰ @@гK$list6ErEG@гO-class_element6ErE6ErE@@Wڰ@@@\۰R@@@@T@#PP6EE6EE@<@гR0class_type_alias6EEd@@Ye@@@@V46UT@TT@@@T@T@@AгP*Odoc_class6E;EU6E;E_@W6E;E`6E;Eo@@@_ @@@+ R R6F?FG6F?FS@@;@@(clt_nameF@@&F!t@@@6FzF6FzF@4ɐ< Complete name of the type. 6FzF6FzF@@@@@@@6@(clt_infoGA@6L+\@@@@@@!6FF6FF@4萠 7 Information found in the optional associated comment. 6FF6FG!@@@@@@@7@(clt_typeH@@#*class_type@@@$7 G"G,7 G"GI@@7"@3clt_type_parametersI@@6#)type_expr@@@'@@@)7GJGT7GJG@52 Type parameters. 7*GJG7+GJG@@@@@@@7C@+clt_virtualJ@@6@@@,76GG77GG@51 % [true] if the class type is virtual 7DGG7EGG@@@@@@@7]@(clt_kindKA@ !@@@/7PGG7QGH@5K $ The way the class type is defined. 7^GH7_GH;@@@@@@@7w@'clt_locLA@( @@@27jH<HF7kH<Hb@@7@@@A ,t_class_type@@@7@@@@ / ,@@ @#7yFzF@@@Ш@г$Name7FzF7FzF@7FzF7FzF@@@ ذ@@@@ @57@@@@@@#7FF7FF@A@Ш@г&option7FF7FF@гà$info7FF7FF@@ @@@  @@@@" @ʠ57Ɛ@@@@@@#àð7G"G4@@@Ш@гƠ%Types7G"G77G"G<@Ͱ7G"G=7G"GG@@@ $@@@@% '@@#Πΰ7GJGg@@@Ш@гѠ$list7GJGz7GJG~@г֠%Types7GJGj7GJGo@ݰ7GJGp7GJGy@@@ F@@@ G @@@@* J@⠰58 @@@@@@#۠۰8 GG@@@Ш@гޠ$bool8GG8GG@@ d@@@@- g@堰68*@@@@@@#ޠް8)GG8*GG@A@Ш@г⠐/class_type_kind83GH84GH@@ @@@@0 @頰618H@@@@@@#8GH<HN8HH<HU@A@Ш@г栐(location8QH<HX8RH<H`@@ @@@@3 @@@Aг頡*Odoc_class8_F?FV8`F?F`@8cF?Fa8dF?Fm@@@ @@ "6`8w  @  @@@ @ @@38o8o8o8o8o8o8o8o@ @A  -@88/ {1 Functions} 8HnHr8HnH@@@@@@388888888@  $ bo qf 4      E ?@A .class_elementsM8HH8HH@б%transг8c$bool8HH8HH@@ @@@V$@@б@г T't_class8HH8HH@@ @@@W3@@г8?$list8HH8HH@г 7-class_element8HH8HH@@ @@@XJ@@@@@@ZO @@@"@@[R%@@?8C8@@@\ @@]Z8HH @@ @8HH#@6ݐ $ Access to the elements of a class. 8HH8HH@@@@@@@9 @@3@69@@@@@@z0class_attributesN9I0I89I0IH@б%transг8Ӡ$bool9I0IR9I0IV@@ @@@^399999999@:@A@@б@г Ơ't_class9%I0IZ9&I0Ia@@ @@@_@@г8$list92I0Iw93I0I{@г+t_attribute%Value9@I0Ie9AI0Ij@ 9DI0Ik9EI0Iv@@@@@@`1 @@@ @@@b6@@@+@@c9. @@J{B@@@d @@e@9ZI0IK(@@ @9]I0I4+@7W ) Access to the list of class attributes. 9jHI9kHI/@@@@@@@9@@;@7g9~@@@@@@`JFJ^(@@ @:AJFJJ+@8; # Access to the methods of a class. :NJJ:OJJE@@@@@@@:g@@;@8K:b@@@@@@`.class_commentsQ:eJJ:fJJ@б%transг:1$bool:rJJ:sJJ@@ @@@u3:t:t:t:t:t:t:t:t@{:@A@@б@г $'t_class:JJ:JJ@@ @@@v@@г:$list:JJ:JJ@г8$text:JJ:JJ@@ @@@w(@@@@@@y- @@@"@@z0%@@AР9@@@{ @@|7:JJ@@ @:JJ"@8 $ Access to the comments of a class. :JJ:JJ@@@@@@@:@@2@8:Ӑ@@@@@@W3class_type_elementsR:K,K4:K,KG@б%transг:$bool:K,KQ:K,KU@@ @@@}3::::::::@r:@A@@б@г ,t_class_type:K,KY:K,Ke@@ @@@~@@г:$list;K,Kw;K,K{@гx-class_element; K,Ki; K,Kv@@ @@@(@@@@@@- @@@"@@0%@@AA9@@@ @@7; K,KJ@@ @;#K,K0"@9 ) Access to the elements of a class type. ;0JJ;1JK+@@@@@@@;I@@2@9-;D@@@@@@W5class_type_attributesS;GKK;HKK@б%transг;$bool;TKK;UKK@@ @@@3;V;V;V;V;V;V;V;V@r:@A@@б@г ,t_class_type;eKK;fKK@@ @@@@@г:$list;rKL;sKL @г+t_attribute%Value;KK;KK@ ;KK;KL@@@@@@1 @@@ @@@6@@@+@@9. @@JB@@@ @@@;KK(@@ @;KK+@9 . Access to the list of class type attributes. ;K}K;K}K@@@@@@@;@@;@9;@@@@@@` !class_type_parameter_text_by_nameT;LdLl;LdL@б@г],t_class_type;LdL;LdL@@ @@@3;;;;;;;;@y8@A@@б@г;&string;LdL;LdL@@ @@@@@г;L&option;LdL;LdL@г: $text;LdL;LdL@@ @@@(@@@@@@- @@@"@@0%@@@6@@39@@@<LdLh@: N Access to the description associated to the given class type parameter name. <L L<L Lc@@@@@@@<-@@-@:<(@@@@@@R2class_type_methodsU<+LL<,LM@б%transг;$bool<8LM <9LM@@ @@@3<:<:<:<:<:<:<:<:@m:@A@@б@гڠ,t_class_type=M:Ml@@@@@@@=@@2@:=@@@@@@W@{A@A@MdB@@ xB@3 =B@& HB@ B@B@B@aB@C@#@c@C@|@\ @@u-@ @F@@3=3=3=3=3=3=3=3=3@H@A+3=6=6=6=6=6=6=6=6@@A=;d88=<MM@@;6=M < Representation and manipulation of classes and class types.=Jb77=Kb78 @@@@@@@=Mc8 8 @@&Modulee=YMN=ZMN @=rU@@Б=r=q+ {1 Types} =nNN=oNN)@@@@@@3=m=m=m=m=m=m=m=m@@A@.(A@B@ B@ B@ B@' yB@f[B@YfB@B@@1@@Q@1@s@S@@s@@@;^]@]]@@@]@]@ZI@A9A+.module_elementXf=NaNj=NaNx@@;@@.Element_moduleb(t_module^f@@@@@=NN=NN@@=@3Element_module_typec-t_module_typeaf@@@@@=NN=NN@@=@7Element_included_moduled/included_moduleZf@@@@@=NN=NO@@=@-Element_classe't_class@@@ G@@=OO!=OOA@@> @2Element_class_typef,t_class_type@@@ H@@>OBOH>OBOr@@>@-Element_valueg't_value@@@ I@@>OsOy>OsO@@>)@6Element_type_extensionh'T0t_type_extension@@@ n@@> OO>!OO@@>9@1Element_exceptioni"A+t_exception@@@ @@>0OO>1OP @@>I@,Element_typej&t_type@@@ @@>@P P>AP P-@@>Y@6Element_module_commentkNP.P4>OP.PT@@>g@@@A+Odoc_module.module_element@@@#@@@@>[NaNe @hN+N/>iN+N`@@@@@@@@@>@@#>pNN@@г(t_module>yNN@@3>w>w>w>w>w>w>w>w@;@@@A@@@%@@@@@42@@$#mmtYf;@@@A @@@%@@@@@>PP>PP@< 8 Used where we can reference t_module or t_module_type. >PVPZ>PVP@@@@@@@@@>@;@@@A@@@%@@@@@>PP>RNRW@@@@>@,module_alias[f;@@@A @@@%@@@@@>RYR]>SHSQ@@@@>@0module_parameter\f;@@@A @@@%@@@@@>SSSW>T|T@@@@>@+module_kind]f;@@@A @@@% @@@@@>TT>XX@<ݐ> Different kinds of a module. >TT>TT@@@@@@@@@? @7;@@@A?@@@% @@@@@>Y'Y+>'\\@<= Representation of a module. ? YY? YY&@@@@@@@@@?$@1module_type_alias_f;@@@A @@@% @@@@@?)\\?-]]@@@@?3@0module_type_kind`f;@@@A @@@% @@@@@?)0^ ^?*8`7`[@=$ ! Different kinds of module type. ?7/]]?8/]^ @@@@@@@@@?P@n;@@@Av@@@% @@@@@?D<``?EHd6d?@=? " Representation of a module type. ?R;``?S;``@@@@@@@@@?k@@A@@@@@#?ZNN?[NN@@г-t_module_type?dNN@@@@@@@#?jNN?kNO@@г/included_module?tNO @@@@@@@#?zOO#?{OO0@@г%Class?OO4?OO9@?OO:@@@@@@@@#?OBOJ?OBO\@@г%Class?OBO`?OBOe@?OBOf@@@)@@@@@#?OsO{?OsO@@г%Value?OsO?OsO@?OsO@@@@@@@@@#?OO?OO@@г)Extension?OO?OO@?OO@@@W@@@@@#?OO?OO@@г)Exception?OO?OO@?OO@@@n@@@@@#?P P?P P@@г$Type?P P"?P P&@?P P'@@@@@@@@#@P.P6@P.PL@@г$text@P.PP@@@@@@@@Aг+Odoc_module@NaN{@NaN@İ@NaN@NaN@@@@@Ǡ>@1@@@@@@+@0PP@1PP@@;@@#Mod@@@#@@@?PP@@PP@@@X @'Modtype@@@#@@@MPP@@@e @@@A#mmt@@@#@@@@@@@###@[PP@\PP@@г%(t_module@ePP&@@,'@@@@)@#%%@kPP@lPP@@г'-t_module_type@uPP@@.@@@@+@@Aг(+Odoc_module@PP@PP@/@PP@PP@@@7 @@>@@@@@@@+@PP@PQ @@;@@'im_name@@0!t@@@#@Q4Q>@Q4QP@> ' Complete name of the included module. @Q4QQ@Q4Q}@@@@@@@@ @)im_moduleA@@$4@@@#@@@#@Q~Q@Q~Q@> 5 The included module or module type, if we found it. @Q~Q@Q~Q@@@@@@@@ @'im_infoA@@C>$info@@@#@@@#@QQ@QR@>ᐠ / comment associated with the include directive @QR@QRM@@@@@@@A  @@@A/included_module@@@#@@@@J@@@G@#dd]AQ4QE@N@@Ш@гg$NameAQ4QHAQ4QL@nAQ4QMAQ4QN@@@v@@y@@#@s?A(qp@pp@@@p@p@#llA'Q~QA(Q~Q@TA@Ш@гp&optionA1Q~QA2Q~Q@гu#mmtA:Q~QA;Q~Q@@}°@@@ð @@@@#@|?9APzy@yy@@@y@y@#uuAOQQAPQQ@[A@Ш@гy&optionAYQRAZQR@г~*Odoc_typesAdQRAeQR @AhQR AiQR@@@@@@ @@@@#@?hA@@@@@@@Aг+Odoc_moduleAPQ APQ@APQAPQ'@@@@@@+ՠհARYRaARYRm@@;@@'ma_name@@1!t@@@#ARRARR@? % Complete name of the target module. ARRARR@@@@@@@A@)ma_moduleA@A,@@@#@@@#ARRARS@? : The real module or module type if we could associate it. ARSARSG@@@@@@@A@@@A},module_alias@@@#@@@@@@@@#CC<ARR@-@@Ш@гF$NameARRARR@MARRARR@@@Ur@@X@@#u@R?APO@OO@@@O@O@#KKARRARR@3A@Ш@гO&optionBRRB RS@гT#mmtBRRBRR@@\@@@a @@d@@#@[@B'YX@XX@@@X@X@@AгT+Odoc_moduleB+RYRpB,RYR{@[B/RYR|B0RYR@@@c@@p@+nnB7SSS[B8SSSk@@;@@'mp_name@@B@@@#BDSSBESS@@?* the name BRSSBSSS@@@@@@@Bk@'mp_type@@A /4+module_type@@@#@@@#BeSSBfSS@@`* the type BsSSBtSS@@@@@@@B@,mp_type_code@@BL@@@#BSSBST@@z3 the original code BSTBST/@@@@@@@B@'mp_kind@@z@@@#BT0T8BT0TT@@ ! the way the parameter was built BT0TUBT0T{@@@@@@@B@@@AY0module_parameter@@@#@@@@@@@@#wwrBSS@c@@Ш@гz&stringBSSBSS@@G@@@@#J@@BԐ~@~~@@@~@~@#zznBSS@_@@Ш@г}&optionBSSBSS@г%TypesBSSBSS@BSSBSS@@@t@@@u @@@@#x@@C@@@@@@#CST @s@@Ш@г&stringC STC ST@@@@@@#@AC@@@@@@#CT0T?@v@@Ш@г0module_type_kindC'T0TBC(T0TR@@@@@@#@A%C<@@@@@@@Aг+Odoc_moduleC@SSSnCASSSy@CDSSSzCESSS@@@Ͱ@@v@+ttCLTTCMTT@@;@@-Module_structBܠ@@@#@@@#@@C` TTCa TU @A[> A complete module structure. Cn TU Co TU-@@@@@@@C@,Module_alias@@@#@@C| U.U4C} U.UR@Aw 7 Complete name and corresponding module if we found it C U.USC U.U@@@@@@@C@.Module_functor@@@#@@@#@@C UUC UU@A > A functor, with its parameter and the rest of its definition C UUC UV!@@@@@@@C@,Module_apply@@@#@@@#@@C V"V(C V"VS@A / A module defined by application of a functor. CVTViCVTV@@@@@@@C@1Module_apply_unit@@@#@@CVVCVV@AՐ ( A generative application of a functor. CVVCVW @@@@@@@D@+Module_with@@@#ĠC@@@#@@CW WCW W:@A n A module whose type is a with ... constraint. Should appear in interface files only. D W;WPD WW@@@@@@@D"@1Module_constraint?@@@#Ơ@@@#@@DWWDWW@B ' A module constraint by a module type. D*XXD+XXA@@@@@@@DC@-Module_typeofD@@@#@@D8XBXHD9XBXa@B3 / by now only the code of the module expression DFXBXbDGXBX@@@@@@@D_@-Module_unpackD!@@@#ɠI@@@#@@DYXXw@BS . code of the expression and module type alias DfXXDgXX@@@@@@@D@@@A+module_kind@@@#@@@@@@~@#!!Du TTDv TT@@г#$listD TU@г'.module_elementD TTD TU@@/@@@4*@@@@,BD*)@))@@@)@)@#%%D U.U6D U.UB@@г',module_aliasD U.UF(@@.+)@@@@+BD)(@((@@@(@(@#$$D UUD UU@ @г&0module_parameterD UUD UU@@.G@@г++module_kindD UU,@@2P-@@@@/BDې-,@,,@@@,@,@#((D V"V*D V"V6@@г*+module_kindD V"V:D V"VE@@2l@@г/+module_kindD V"VH0@@6u1@@@@3BE10@00@@@0@0@#,,DVVEVV@@г.+module_kindE VV/@@50@@@@2CE0/@//@@@/@/@#++EW WEW W@@г-0module_type_kindE$W W!E%W W1@@5@@г2&stringE.W W43@@94@@@@6C)E@43@33@@@3@3@#//E?WWE@WW@@г1+module_kindEIWWEJWW@@9Ѱ@@г60module_type_kindESWW7@@=ڰ8@@@@:CNEe87@77@@@7@7@#33EdXBXJEeXBXW@@г5&stringEnXBX[6@@<7@@@@9CiE76@66@@@6@6@#22EXXEXX@@г4&stringEXXEXX@@<@@г91module_type_aliasEXX@@@@@@@=CE<;@;;@@@;@;@@Aг7+Odoc_moduleETTETT@>ETTETT@@@F6@@РCE@@@@@@+EY'Y/EY'Y7@@;@@&m_name@@5G!t@@@#̰EY[YeEY[Yv@Cʐ> Complete name of the module. EY[YwEY[Y@@@@@@@E@&m_typeA@2+module_type@@@#ϰEYYEYY@C搠9 The type of the module. EYYEYY@@@@@@@F@&m_infoA@Ei:y@@@#@@@#԰F YYF YZ@D 7 Information found in the optional associated comment. FYZFYZN@@@@@@@F1@.m_is_interface@@E@@@#װF$ZOZYF%ZOZp@D . [true] for modules read from interface files F2ZOZqF3ZOZ@@@@@@@FK @&m_file@@F @@@#ڰF> ZZF? ZZ@D9 $ The file the module is defined in. FL ZZFM ZZ@@@@@@@Fe!@&m_kindA@@@@#ݰFX!ZZFY!Z[@DS The way the module is defined. Ff!Z[Fg!Z[9@@@@@@@F"@%m_locA@7@@@#Fr"[:[DFs"[:[^@@F#@*m_top_depsA@E5!t@@@#@@@#F#[_[iF#[_[@D 4 The toplevels module names this module depends on. F#[_[F#[_[@@@@@@@F$@&m_codeA@FFp@@@#@@@#F$[[F$[[@D> The whole code of the module F$[[F$[\@@@@@@@F%@+m_code_intfA@F"F@@@#@@@#F%\\F%\\D@D / The whole code of the interface of the module F%\\EF%\\y@@@@@@@F&@+m_text_only@@F@@@#F&\z\F&\z\@Dؐ - [true] if the module comes from a text file F&\z\F&\z\@@@@@@@G'@@@A(t_module@@@#@@@@@@@#22+FY[Yk@@@Ш@г5$NameGY[YnGY[Yr@<G Y[YsG Y[Yt@@@D@@G@@#@AEG?>@>>@@@>@>@#::GYYGYY@%A@Ш@г>%TypesG*YYG+YY@EG.YYG/YY@@@M@@P@@#@JE-GDHG@GG@@@G@G@#CCGCYYGDYZ@+A@Ш@гG&optionGMYZ GNYZ@гL$infoGVYZGWYZ@@Tް@@@Y߰ @@\@@#@SEUGlQP@PP@@@P@P@#LLGGkZOZg@8@@Ш@гO$boolGtZOZjGuZOZn@@W@@Z@@#@VErGTS@SS@@@S@S@#OOJG ZZ@;@@Ш@гR&stringG ZZG ZZ@@Z @@]@@# @YEGWV@VV@@@V@V@#RRG!ZZG!Z[@?A@Ш@гV+module_kindG!Z[G!Z[@@^ 7@@a@@# :@]EGĐ[Z@ZZ@@@Z@Z@#VVG"[:[LG"[:[Q@QA@Ш@гZ(locationG"[:[TG"[:[\@@b U@@e@@# X@a@#]]G#[_[qG#[_[{@CA@Ш@гa$listG#[_[G#[_[@гf$NameG#[_[~G#[_[@mG#[_[G#[_[@@@u x@@@z y @@}@@# |@rEHpo@oo@@@o@o@#kkH$[[H$[[@SA@Ш@гo&optionH$[[H$[[@гt&stringH$[[H$[[@@| @@@  @@@@# @{FH.yx@xx@@@x@x@#ttH-%\\'H.%\\2@\A@Ш@гx&optionH7%\\<H8%\\B@г}&stringH@%\\5HA%\\;@@ Ȱ@@@ ɰ @@@@# @F?HV@@@@@@#}}xHU&\z\@i@@Ш@г$boolH^&\z\H_&\z\@@ @@@@# @F\Hs@@@@@@@Aг+Odoc_moduleHwY'Y:HxY'YE@H{Y'YFH|Y'YN@@@ @@ FxH  @  @@@ @ @+ ~ ~H)\\H)\\@@;@@(mta_name@@8!t@@@#H+]]'H+]]:@F * Complete name of the target module type. H+]];H+]]j@@@@@@@H(@*mta_moduleA@H @@@#@@@#H,]k]uH,]k]@F 0 The real module type if we could associate it. H,]k]H,]k]@@@@@@@H)@@@A |1module_type_alias@@@$@@@@ @@@ @#CC<H+]]/@-@@Ш@гF$NameH+]]2H+]]6@MH+]]7H+]]8@@@U q@@X@@# t@RFHPO@OO@@@O@O@#KKH,]k]}H,]k]@3A@Ш@гO&optionI,]k]I,]k]@гT-t_module_typeI,]k]I,]k]@@\ @@@a  @@d@@# @[GI&YX@XX@@@X@X@@AгT+Odoc_moduleI*)\\I+)\\@[I.)\\I/)\]@@@c @@ @+  I60^ ^I70^ ^%@@;@@2Module_type_structĐHƠ @@@$@@@$@@IJ1^G^MIK1^G^x@GE> A complete module signature. IX1^G^yIY1^G^@@@@@@@Iq*@3Module_type_functorŐ @@@$ L@@@$@@Ik2^^Il2^^@Gf > A functor, with its parameter and the rest of its definition Iy3^^Iz3^_/@@@@@@@I+@1Module_type_aliasƐ w@@@$@@I4_0_6I4_0_^@G C Complete alias name and corresponding module type if we found it. I5___kI5___@@@@@@@I,@0Module_type_withǐ @@@$ Iu@@@$ @@I6__I6__@G ; The module type kind and the code of the with constraint. I7__I7_`6@@@@@@@I-@2Module_type_typeofȐI@@@$ @@I8`7`= @G / by now only the code of the module expression I9`\`hI9`\`@@@@@@@I.@@@A 0module_type_kind@@@$ @@@@  @@ @#I1^G^OI1^G^a@@г$listI1^G^t@г.module_elementI1^G^eI1^G^s@@ z@@@ {@@@@GJ@@@@@@#J2^^J2^^@@г0module_parameterJ2^^J2^^@@ @@г0module_type_kindJ2^^@@ @@@@HJ+@@@@@@#J*4_0_8J+4_0_I@@г1module_type_aliasJ44_0_M@@ @@@@H/JF@@@@@@#JE6__JF6__@@г0module_type_kindJO6__JP6__@@ װ@@г&stringJY6__@@ @@@@HTJk@@@@@@#Jj8`7`?Jk8`7`Q@@г&stringJt8`7`U K@@  L@@@@HoJ@@@@@@@Aг+Odoc_moduleJ0^ ^(J0^ ^3@J0^ ^4J0^ ^D@@@ @@ jHJ h g@ g g@@@ g@ g@+ Ӡ ӰJ<``J<``@@;@@'mt_name@@:(!t@@@$ J>aaJ>aa$@H # Complete name of the module type. J>aa%J>aaM@@@@@@@J/@'mt_infoA@J.?>@@@$@@@$J?aNaXJ?aNaw@Hʐ 7 Information found in the optional associated comment. J?aNaxJ?aNa@@@@@@@J0@'mt_typeA@JM7+module_type@@@$@@@$J@aaJ@aa@H될 0 [None] means that the module type is abstract. J@aaJ@ab!@@@@@@@K1@/mt_is_interface@@J@@@$K Ab"b,K Ab"bD@I / [true] for modules read from interface files. KAb"bEKAb"by@@@@@@@K12@'mt_file@@J@@@$K$BbzbK%Bbzb@I ) The file the module type is defined in. K2BbzbK3Bbzb@@@@@@@KK3@'mt_kindA@J #@@@$ @@@$"KCCbbKDCbb@I>  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. KQDbc KRFcd@@@@@@@Kj4@&mt_locA@;@@@$%K]GddK^Gdd5@@Kv5@@@A -t_module_type@@@$*@@@@ $ !@@ @#àðKl>aa@@@Ш@гƠ$NameKw>aaKx>aa @ͰK{>aa!K|>aa"@@@ @@@@$ @ҠIzK@@@@@@#ˠ˰K?aNa`K?aNag@A@Ш@гϠ&optionK?aNaoK?aNau@гԠ$infoK?aNajK?aNan@@ +@@@ , @@@@$ /@۠IK@@@@@@#Ԡ԰K@aaK@aa@A@Ш@гؠ&optionK@aaK@aa@гݠ%TypesK@aaK@aa@K@aaK@aa@@@ Z@@@ [ @@@@$ ^@頰IK萠@@@@@@#KAb"b;@@@Ш@г堐$boolKAb"b>KAb"bB@@ x@@@@$ {@젰IL@@@@@@#LBbzb@@@Ш@г蠐&stringL BbzbLBbzb@@ @@@@$ @J L"@@@@@@#L!CbbL"Cbb@A@Ш@г점&optionL+CbbL,Cbb@г0module_type_kindL4CbbL5Cbb@@ @@@  @@@@$# @J3LJ@@@@@@#LIGdd"LJGdd(@A@Ш@г(locationLSGdd+LTGdd3@@ ۰@@@@$& @@@Aг+Odoc_moduleLa<``Lb<``@Le<``Lf<``@@@ @@ &JbLy $ #@ # #@@@ #@ #@@ 0@LL; {1 Functions for modules} LJdAdELJdAde@@@@@@3LLLLLLLL@  tY   C  X    _@A/module_elementsРLMddLMdd@б%transгLe$boolLMddLMdd@@ @@@&%@@б@г(t_moduleLMddLMdd@@ @@@&4@@гLA$listLMddLMdd@г.module_elementLMddLMdd@@ @@@&K@@@@@@&P @@@"@@&S%@@?7@@@& @@&ZLMdd@@ @LMdd"@Jސ % Access to the elements of a module. LLdgdkLLdgd@@@@@@@M 6@@2@JM@@@@@@z.module_modulesѠMPeeM Pee'@б%transгLԠ$boolMPee1MPee5@@ @@@&3MMMMMMMM@:@A@@б@гf(t_moduleM&Pee9M'PeeA@@ @@@&@@гL$listM3PeeNM4PeeR@г}(t_moduleM=PeeEM>PeeM@@ @@@&(@@@@@@&- @@@"@@&0%@@As9@@@& @@&7MRPee*@@ @MUPee"@KO ' Access to the submodules of a module. MbOddMcOde@@@@@@@M{7@@2@K_Mv@@@@@@W3module_module_typesҠMySeeMzSee@б%transгME$boolMSeeMSee@@ @@@&3MMMMMMMM@r:@A@@б@гנ(t_moduleMSeeMSee@@ @@@&@@гM#$listMSeeMSee@гޠ-t_module_typeMSeeMSee@@ @@@&(@@@@@@&- @@@"@@&0%@@A9@@@& @@&7MSee@@ @MSee"@K ) Access to the module types of a module. MReTeXMReTe@@@@@@@M8@@2@KM琠@@@@@@W7module_included_modulesӠMVf fMVf f*@б%transгM$boolMVf f4MVf f8@@ @@@&3MMMMMMMM@r:@A@@б@гH(t_moduleNVf f;N Vf fC@@ @@@&@@гM$listNVf fWNVf f[@г?/included_moduleNVf fGN Vf fV@@ @@@&(@@@@@@&- @@@"@@&0%@@AU9@@@& @@&7N4Vf f-@@ @N7Vf f"@L1 - Access to the included modules of a module. NDUeeNEUef @@@@@@@N]9@@2@LANX@@@@@@W6module_type_extensionsԠN[YffN\Yff@б%transгN'$boolNhYffNiYff@@ @@@&3NjNjNjNjNjNjNjNj@r:@A@@б@г(t_moduleNyYffNzYff@@ @@@&@@гN$listNYffNYff@г70t_type_extension)ExtensionNYffNYff@ NYffNYff@@@@@@&1 @@@ @@@&6@@@+@@&9. @@JϠB@@@& @@&@NYff(@@ @NYff+@L , Access to the type extensions of a module. NXf]faNXf]f@@@@@@@N:@@;@LNҐ@@@@@@`1module_exceptionsՠN\g g(N\g g9@б%transгN$boolN\g gCN\g gG@@ @@@&3NNNNNNNN@{:@A@@б@г3(t_moduleN\g gJN\g gR@@ @@@&@@гN$listO\g glO\g gp@г3+t_exception)ExceptionO\g gVO\g g_@ O\g g`O\g gk@@@@@@&1 @@@ @@@&6@@@+@@&9. @@JIB@@@& @@&@O(\g g<(@@ @O+\g g$+@M% ' Access to the exceptions of a module. O8[ffO9[fg@@@@@@@OQ;@@;@M5OL@@@@@@`,module_types֠OO_ggOP_gg@б%transгO$boolO\_ggO]_gg@@ @@@&3O^O^O^O^O^O^O^O^@{:@A@@б@г(t_moduleOm_ggOn_gg@@ @@@&@@гN$listOz_ggO{_gg@г0&t_type$TypeO_ggO_gg@ O_ggO_gg@@@@@@&1 @@@ @@@&6@@@+@@&9. @@JàB@@@& @@&@O_gg(@@ @O_gg+@M " Access to the types of a module. O^grgvO^grg@@@@@@@O<@@;@MOƐ@@@@@@`-module_valuesנObhhObhh#@б%transгO$boolObhh-Obhh1@@ @@@&3OOOOOOOO@{:@A@@б@г'(t_moduleObhh5Obhh=@@ @@@&@@гOs$listObhhOObhhS@г('t_value%ValuePbhhAPbhhF@ PbhhGPbhhN@@@@@@&1 @@@ @@@&6@@@+@@&9. @@J=B@@@& @@&@Pbhh&(@@ @Pbhh+@N # Access to the values of a module. P,aggP-agh @@@@@@@PE=@@;@N)P@@@@@@@`0module_functionsؠPCehhPDehh@б%transгP$boolPPehhPQehh@@ @@@&3PRPRPRPRPRPRPRPR@{:@A@@б@г(t_modulePaehhPbehh@@ @@@&@@гO$listPnehhPoehh@г)'t_value%ValueP|ehhP}ehh@ PehhPehh@@@@@@&1 @@@ @@@&6@@@+@@&9. @@JB@@@& @@&@Pehh(@@ @Pehh+@N * Access to functional values of a module. PdhUhYPdhUh@@@@@@@P>@@;@NP@@@@@@`4module_simple_values٠Phi iPhi i&@б%transгP$boolPhi i0Phi i4@@ @@@&3PPPPPPPP@{:@A@@б@г(t_modulePhi i7Phi i?@@ @@@&@@гPg$listPhi iQPhi iU@г)'t_value%ValuePhi iCPhi iH@ Phi iIPhi iP@@@@@@&1 @@@ @@@&6@@@+@@&9. @@J1B@@@& @@&@Qhi i)(@@ @Qhi i+@O . Access to non-functional values of a module. Q ghhQ!ghi @@@@@@@Q9?@@;@OQ4@@@@@@`.module_classesڠQ7kiiQ8kii@б%transгQ$boolQDkiiQEkii@@ @@@'3QFQFQFQFQFQFQFQF@{:@A@@б@г(t_moduleQUkiiQVkii@@ @@@'@@гP᠐$listQbkiiQckii@г%'t_class%ClassQpkiiQqkii@ QtkiiQukii@@@@@@'1 @@@ @@@'6@@@+@@'9. @@JB@@@' @@'@Qkii(@@ @Qkii+@O $ Access to the classes of a module. QjiWi[QjiWi@@@@@@@Q@@@;@OQ@@@@@@`2module_class_types۠QnijQnij@б%transгQ}$boolQnij"Qnij&@@ @@@'3QQQQQQQQ@{:@A@@б@г(t_moduleQnij)Qnij1@@ @@@' @@гQ[$listQnijHQnijL@г%,t_class_type%ClassQnij5Qnij:@ Qnij;QnijG@@@@@@' 1 @@@ @@@' 6@@@+@@' 9. @@J%B@@@' @@'@Rnij(@@ @Rnij+@P ( Access to the class types of a module. RmiiRmii@@@@@@@R-A@@;@PR(@@@@@@`2module_all_classesܠR+qjjR,qjj@б%transгQ$boolR8qjjR9qjj@@ @@@'3R:R:R:R:R:R:R:R:@{:@A@@б@г(t_moduleRIqjjRJqjj@@ @@@'@@гQՠ$listRVqjjRWqjj@г&'t_class%ClassRdqjjReqjj@ RhqjjRiqjj@@@@@@'1 @@@ @@@'6@@@+@@'9. @@JB@@@' @@'@R~qjj(@@ @Rqjj+@P{ Q The list of classes defined in this module and all its submodules and functors. RpjNjRRpjNj@@@@@@@RB@@;@PR@@@@@@`1module_is_functorݠRtk k(Rtk k9@б@г(t_moduleRtk k<Rtk kD@@ @@@'3RRRRRRRR@y8@A@@гR~$boolRtk kHRtk kL@@ @@@'@@@@@'@@@Rtk k$ @PĐ " [true] if the module is functor. RsjjRsjk@@@@@@@RC@@@PR될@@@@@@11module_parametersޠRwkkRwkk@б%transгR$boolRwkkRwkk@@ @@@'3RRRRRRRR@La:@A@@б@гL(t_moduleS wkkS wkk@@ @@@'@@гR$listSwkkSwkk@В@г\0module_parameterS'wkkS(wkk@@ @@@',@@@гR&optionS6wkkS7wkk@гQY$textS@wkkSAwkk@@ @@@'E@@@@@@' J @@@@&@ @@'!Q+@@@@ @@@'#VSWwkk>@@@L@@'$ZOA@@kc@@@'% @@'&aSbwkkI@@ @SewkkL@Q_ ? The list of couples (module parameter, optional description). SrvkNkRSsvkNk@@@@@@@SD@@\@QoS@@@@@@/module_commentsߠSzll$Szll3@б%transгSU$boolSzll=SzllA@@ @@@''3SSSSSSSS@:@A@@б@г砐(t_moduleSzllDSzllL@@ @@@'(@@гS3$listSzllUSzllY@гQנ$textSzllPSzllT@@ @@@')(@@@@@@'+- @@@"@@',0%@@A9@@@'- @@'.7Szll6@@ @Szll "@QА> The list of module comments. SykkSykl@@@@@@@SE@@2@QS@@@@@@WTT {1 Functions for module types} T|l[l_T|l[l@@@@@@3TTTTTTTT@i1@A4module_type_elementsT llTll@б%transгS٠$boolTllTll@@ @@@'/@@б@гY-t_module_typeT)llT*ll@@ @@@'0+@@гS$listT6lmT7lm @г.module_elementT@llTAlm@@ @@@'1B@@@@@@'3G @@@"@@'4J%@@?v7@@@'5 @@'6QTUll@@ @TXll"@RR * Access to the elements of a module type. Te~llTf~ll@@@@@@@T~F@@2@RbTy@@@@@@q3module_type_modulesT|mCmKT}mCm^@б%transгTH$boolTmCmhTmCml@@ @@@'73TTTTTTTT@:@A@@б@гʠ-t_module_typeTmCmoTmCm|@@ @@@'8@@гT&$listTmCmTmCm@г(t_moduleTmCmTmCm@@ @@@'9(@@@@@@';- @@@"@@'<0%@@A9@@@'= @@'>7TmCma@@ @TmCmG"@RÐ , Access to the submodules of a module type. Tm mTm mB@@@@@@@TG@@2@RTꐠ@@@@@@W8module_type_module_typesTmmTmm@б%transгT$boolTmmTmm@@ @@@'?3TTTTTTTT@r:@A@@б@г;-t_module_typeU mmU mn@@ @@@'@@@гT$listUmnUmn@гR-t_module_typeU"mn U#mn@@ @@@'A(@@@@@@'C- @@@"@@'D0%@@AX9@@@'E @@'F7U7mm@@ @U:mm"@S4 . Access to the module types of a module type. UGmmUHmm@@@@@@@U`H@@2@SDU[@@@@@@Wpp@б%transгW $boolWJppWKpp@@ @@@'g3WLWLWLWLWLWLWLWL@{:@A@@б@г-t_module_typeW[ppW\pp@@ @@@'h@@гV砐$listWhppWipp@г0't_value%ValueWvppWwpp@ WzppW{pp@@@@@@'i1 @@@ @@@'k6@@@+@@'l9. @@JB@@@'m @@'n@Wpp(@@ @Wpp+@U / Access to functional values of a module type. WpGpKWpGp@@@@@@@WM@@;@UW@@@@@@`9module_type_simple_valuesWqqWqq1@б%transгW$boolWqq;Wqq?@@ @@@'o3WWWWWWWW@{:@A@@б@г-t_module_typeWqqBWqqO@@ @@@'p@@гWa$listWqqaWqqe@г0't_value%ValueWqqSWqqX@ WqqYWqq`@@@@@@'q1 @@@ @@@'s6@@@+@@'t9. @@J+B@@@'u @@'v@X qq4(@@ @X qq+@V 3 Access to non-functional values of a module type. XppXpq@@@@@@@X3N@@;@VX.@@@@@@`3module_type_classesX1qqX2qq@б%transгW$boolX>qqX?qq@@ @@@'w3X@X@X@X@X@X@X@X@@{:@A@@б@г-t_module_typeXOqqXPqq@@ @@@'x@@гW۠$listX\qqX]qq@г, 't_class%ClassXjqqXkqq@ XnqqXoqq@@@@@@'y1 @@@ @@@'{6@@@+@@'|9. @@JB@@@'} @@'~@Xqq(@@ @Xqq+@V ) Access to the classes of a module type. XqgqkXqgq@@@@@@@XO@@;@VX@@@@@@`7module_type_class_typesXr"r*Xr"rA@б%transгXw$boolXr"rKXr"rO@@ @@@'3XXXXXXXX@{:@A@@б@г-t_module_typeXr"rRXr"r_@@ @@@'@@гXU$listXr"rvXr"rz@г,,t_class_type%ClassXr"rcXr"rh@ Xr"riXr"ru@@@@@@'1 @@@ @@@'6@@@+@@'9. @@J B@@@' @@'@Xr"rD(@@ @Yr"r&+@V - Access to the class types of a module type. YqqYqr!@@@@@@@Y'P@@;@W Y"@@@@@@`7module_type_all_classesY%rrY&rr@б%transгX$boolY2rsY3rs @@ @@@'3Y4Y4Y4Y4Y4Y4Y4Y4@{:@A@@б@гs-t_module_typeYCrs YDrs@@ @@@'@@гXϠ$listYPrs+YQrs/@г-'t_class%ClassY^rsY_rs"@ Ybrs#Ycrs*@@@@@@'1 @@@ @@@'6@@@+@@'9. @@J B@@@' @@'@Yxrr(@@ @Y{rr+@Wu V The list of classes defined in this module type and all its submodules and functors. Yr|rYr|r@@@@@@@YQ@@;@WY@@@@@@`6module_type_is_functorYsbsjYsbs@б@гڠ-t_module_typeYsbsYsbs@@ @@@'3YYYYYYYY@y8@A@@гYx$boolYsbsYsbs@@ @@@'@@@@@'@@@Ysbsf @W ' [true] if the module type is functor. Ys1s5Ys1sa@@@@@@@YR@@@WY吠@@@@@@16module_type_parametersYssYst@б%transгY$boolYst Yst@@ @@@'3YYYYYYYY@La:@A@@б@г6-t_module_typeZstZst@@ @@@'@@гY$listZstDZstH@В@гV0module_parameterZ!st$Z"st4@@ @@@',@@@гY&optionZ0st<Z1stB@гXS$textZ:st7Z;st;@@ @@@'E@@@@@@'J @@@@&@ @@'Q+@@@@ @@@'VZQst#>@@@L@@'ZOA@@k!}c@@@' @@'aZ\stI@@ @Z_ssL@XY ? The list of couples (module parameter, optional description). ZlssZmss@@@@@@@ZS@@\@XiZ@@@@@@4module_type_commentsZtrtzZtrt@б%transгZO$boolZtrtZtrt@@ @@@'3ZZZZZZZZ@:@A@@б@гѠ-t_module_typeZtrtZtrt@@ @@@'@@гZ-$listZtrtZtrt@гXѠ$textZtrtZtrt@@ @@@'(@@@@@@'- @@@"@@'0%@@A!9@@@' @@'7Ztrt@@ @Ztrtv"@Xʐ> The list of module comments. ZtJtNZtJtq@@@@@@@ZT@@2@XZ񐠠@@@@@@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[CNN[Dtt@@Y>[U > Representation and manipulation of modules and module types. [RMM[SMM@@@@@@@[UMM@@[j[i ! {2 Getting strings from values} [ftt[gtt@@@@@@3[e[e[e[e[e[e[e[e@@A@>B@B@B@=B@*B@B@nB@aFB@B@@1@ @  S@ 3 @  c@ C @  s@ S @  @ c @  @ s @@;@@L@,@n@N@@g@@w@@/@@?@@_@?@@Yxw@ww@@@w@w@tm@Ac0reset_type_names[uu[uv@б@г[$unit[uv[uv@@ @@@'x@@г[$unit[uv [uv@@ @@@'@@@@@'@@@[uu @Y퐠 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).\tt\uu@@@@@@@\V@@@Y\@@@@@@2string_of_variance\vv\vv@б@г=m&t_type$Type\&vv\'vv@ \*vv\+vv@@@@@@'3\-\-\-\-\-\-\-\-@fA@A @@б@гI (Variance!t%Types\Dvv\Evw@ \Hvw\Ivw @@\Mvw\Nvw@ @@@@@'#@@г\&&string\[vw\\vw@@ @@@'0@@@@@'3 @@@9@@'6A @@@\ivv@Zc [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.\vvv\wvv@@@@@@@\W@@@Zs\@@@@@@U3string_of_type_expr\wawe\wawx@б@гIh)type_expr%Types\waw{\waw@ \waw\waw@@@@@@'3\\\\\\\\@wA@A @@г\{&string\waw\waw@@ @@@'@@@@@'@@@\wawa @Z @ This function returns a string representing a Types.type_expr. \ww\ww`@@@@@@@\X@@@Z\ܐ@@@@@@16string_of_class_params\xx\xx@б@г0't_class%Class\xx\xx#@ \xx$\xx+@@@@@@'3\\\\\\\\@SqA@A @@г\͠&string]xx/]xx5@@ @@@'@@@@@'@@@] xx @[ e @return a string to display the parameters of the given class, in the same form as the compiler. ]ww]wx@@@@@@@]3Y@@@[].@@@@@@13string_of_type_list]1xx]2xx@б#parг\$bool]>xx]?xx@@ @@@'3]@]@]@]@]@]@]@]@@Lj:@A@@б@г]&string]Oxx]Pxx@@ @@@'@@б@г\ݠ$list]^xx]_xx@гJ8)type_expr%Types]lxx]mxx@ ]pxx]qxx@@@@@@'3 @@@ @@@'8@@г]N&string]xx]xx@@ @@@'E@@@@@'H @@@=@@'K@ @@\$T@@@' @@'R]xx@@ @]xx@[ a This function returns a string to represent the given list of types, with a given separator. ]x7x7]xx@@@@@@@]Z@@&@[]@@@@@@r9string_of_type_param_list]yVyZ]yVys@б@г?&t_type$Type]yVyv]yVyz@ ]yVy{]yVy@@@@@@'3]]]]]]]]@A@A @@г]&string]yVy]yVy@@ @@@'@@@@@'@@@]yVyV @[吠 ` This function returns a string to represent the list of type parameters for the given type. ]xx]y<yU@@@@@@@^[@@@[^ @@@@@@1 #string_of_type_extension_param_list^yz^yz$@б@гGN0t_type_extension)Extension^yz'^yz0@ ^"yz1^#yzA@@@@@@'3^%^%^%^%^%^%^%^%@SqA@A @@г]&string^2yzE^3yzK@@ @@@'@@@@@'@@@^=yy @\7 j This function returns a string to represent the list of type parameters for the given type extension. ^Jyy^Kyy@@@@@@@^c\@@@\G^^@@@@@@1?string_of_class_type_param_list^azz^bzz@б@г]렐$list^lz{^mz{@гKF)type_expr%Types^zz{^{z{@ ^~z{^z{@@@@@@'3^^^^^^^^@]{K@A @@@" @@@'@@г^^&string^z{^z{@@ @@@'@@@@@'"@@@^zz @\ This function returns a string to represent the given list of type parameters of a class or class type, with a given separator. ^zMzM^zz@@@@@@@^]@@@\^@@@@@@65string_of_module_type^|b|f^|b|{@б$codeг^&string^|b|^|b|@@ @@@'3^^^^^^^^@Qy:@A@@б(completeг^$bool^|b|^|b|@@ @@@'@@б@гK+module_type%Types^|b|^|b|@ ^|b|^|b|@@@@@@'+ @@г^Ҡ&string_|b|_|b|@@ @@@'8@@@@@';@@9&81@@@' @@'B_|b|@@T&@L@@@'@@'J_|b|~@@ @_"|b|b@] < 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. _/{ { _0|_|a@@@@@@@_H^@@+@],_C@@@@@@j4string_of_class_type_F}w}{_G}w}@б(completeг_$bool_S}w}_T}w}@@ @@@'3_U_U_U_U_U_U_U_U@:@A@@б@гL4*class_type%Types_h}w}_i}w}@ _l}w}_m}w}@@@@@@' @@г_E&string_z}w}_{}w}@@ @@@''@@@@@'*@@;&3@@@' @@'1_}w}@@ @_}w}w@] 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]. _||_}t}v@@@@@@@__@@#@]_@@@@@@Q.string_of_text_}}_}}@б@г]ՠ$text_}}_}}@@ @@@'3________@j8@A@@г_&string_}~_}~@@ @@@'@@@@@'@@@_}} @]А; Get a string from a text. _}}_}}@@@@@@@_`@@@]_@@@@@@1.string_of_info_~4~8_~4~F@б@гTs$info`~4~I`~4~M@@ @@@'3````````@J_8@A@@г_ߠ&string`~4~Q`~4~W@@ @@@'@@@@@'@@@`~4~4 @^ & Get a string from an info structure. `,~~`-~~3@@@@@@@`Ea@@@^)`@@@@@@@1.string_of_type`C~~`D~~@б@гA&t_type$Type`R~~`S~~@ `V~~`W~~@@@@@@'3`Y`Y`Y`Y`Y`Y`Y`Y@ShA@A @@г`1&string`f~~`g~~@@ @@@'@@@@@'@@@`q~~ @^k . @return a string to describe the given type. `~~Y~Y`~Y~@@@@@@@`b@@@^{`@@@@@@10string_of_record`~~`~~@б@г`$list`~~`~~@гA,record_field$Type`~~`~~@ `~~`~~@@@@@@'3````````@]{K@A @@@" @@@'@@г`&string`~~`~~@@ @@@'@@@@@'"@@@`~~ @@`c@@ @@8string_of_type_extension`04`0L@б@гJ0t_type_extension)Extension`0O`0X@ `0Y`0i@@@@@@'3````````@?g(@A @@г`ˠ&stringa0ma0s@@ @@@'@@@@@'@@@a 00 @_ 8 @return a string to describe the given type extension. a~~a~/@@@@@@@a1d@@@_a,@@@@@@13string_of_exceptiona/a0@б@гEK+t_exception)Exceptiona>a?@ aBaC@@@@@@'3aEaEaEaEaEaEaEaE@SqA@A @@гa&stringaRaS@@ @@@'@@@@@'@@@a] @_W 3 @return a string to describe the given exception. ajuuaku@@@@@@@ae@@@_ga~@@@@@@1/string_of_valuea"a1@б@г:('t_value%Valuea4a9@ a:aA@@@@@@'3aaaaaaaa@SqA@A @@гao&stringaEaK@@ @@@'@@@@@'@@@a @_ / @return a string to describe the given value. aa@@@@@@@af@@@_aА@@@@@@13string_of_attributeaa@б@г:z+t_attribute%Valueaa@ aa@@@@@@'3aaaaaaaa@SqA@A @@гa&stringaa@@ @@@'@@@@@'@@@b @_ 3 @return a string to describe the given attribute. bMMbM@@@@@@@b'g@@@` b"@@@@@@10string_of_methodb%b&@б@г:(t_method%Valueb4 b5@ b8b9@@@@@@'3b;b;b;b;b;b;b;b;@SqA@A @@гb&stringbHbI"@@ @@@'@@@@@'@@@bS @`M 0 @return a string to describe the given method. b`ba@@@@@@@byh@@@`]bt@@@@@@1bb= {2 Miscellaneous functions} b~$$b$F@@@@@@3b}b}b}b}b}b}b}b}@Ca1@A6first_sentence_of_textb@Db@Z@б@г`$textb@]b@a@@ @@@'@@г`$textb@eb@i@@ @@@''@@@@@'*@@@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]. bHHb?@@@@@@@bi@@@`bΐ@@@@@@I?first_sentence_and_rest_of_textbb@б@г`$textbb@@ @@@'3bbbbbbbb@b]8@A@@В@гa$textbb@@ @@@'@@@гa$textbb@@ @@@'"@@@@@ @@') @@@/ @@',2@@@c@a  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].ckkcE@@@@@@@c6j@@"@ac1@@@@@@K5text_no_title_no_listc4 c5 @б@гaX$textc? c@ @@ @@@'3cAcAcAcAcAcAcAcA@dy8@A@@гag$textcN cO @@ @@@'@@@@@'@@@cY  @aS 4 Return the given [text] without any title or list. cf cg @@@@@@@ck@@@accz@@@@@@1+text_concatc}c~@б@гa$text*Odoc_typescc@ cc@@@@@@(3cccccccc@ShA@A @@б@гc!$listcc@гa$text*Odoc_typescc@ cc@@@@@@($ @@@ @@@()@@гa$text*Odoc_typescc@ cc@@@@@@(? @@@@@(B) @@@H@@(EP @@@c@aؐ [ [concat sep l] concats the given list of text [l], each separated with the text [sep]. c c j@@@@@@@dl@@@ac@@@@@@d2get_titles_in_textd6:d6L@б@гb&$textd 6Od6S@@ @@@(3dddddddd@}8@A@@гc$listd6td6x@В@гc#intd*6Xd+6[@@ @@@(@@@гc&optiond96ed:6k@гd&stringdC6^dD6d@@ @@@( 6@@@@@@( ; @@@гbp$textdW6ndX6r@@ @@@( J@@@@5@@ @@( S<@@@Q @@@(Xdk6WO@@@_@@(\bR@@@dq66U@bk b Return the list of titles in a [text]. A title is a title level, an optional label and a text.d~d5@@@@@@@dm@@e@b{d@@@@@@{2create_index_listsdd@б@гd$listdd@А!a@(g@(3dddddddd@>@Add@@@ @@@( @@б@б@А!add@@гd&stringdd@@ @@@( @@@(@@(#@@гdU$listdd@гd_$listdd@А!a@;dd@@@F@@@(B @@@@@@(G @@@)@@(Jd @@@I@@(NL#@@@d&@b 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.e zze v@@@@@@@e"n@@6@ce@@@@@@m-remove_option e e!@б@гQ)type_expr%Typese/e0@ e3e4@@@@@@(3e6e6e6e6e6e6e6e6@A@A @@гR)type_expr%TypeseGeH@ eKeL@@@@@@( @@@@@( & @@@eW @cQ 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.edee@@@@@@@e}o@@@caex@@@@@@:+is_optional e{! e|!@б@г(Asttypes)arg_label(Asttypese!e!"@ e!#e!,@@@@@@(!3eeeeeeee@^|C@A @@гe_$boole!0e!4@@ @@@("@@@@@(#@@@e! @c . Return [true] if the given label is optional.e e @@@@@@@ep@@@ce̐@@@@@@1*label_name e%e%@б@гT)arg_label(Asttypese%e%@ e%e%@@@@@@($3eeeeeeee@SsA@A @@гe&stringe%e%@@ @@@(%@@@@@(&@@@e% @c Y Return the label name for the given label, i.e. removes the beginning '?' if present.f #66f $e@@@@@@@f#q@@@df@@@@@@12use_hidden_modules f!*nrf"*n@б@гU!t$Namef0*nf1*n@ f4*nf5*n@@@@@@('3f7f7f7f7f7f7f7f7@SqA@A @@гU!t$NamefH*nfI*n@ fL*nfM*n@@@@@@(( @@@@@()& @@@fX*nn @dR 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})fe'ff)3m@@@@@@@f~r@@@dbfy@@@@@@:'verbose f|-f}-@б@гfR&stringf-f-@@ @@@(*3ffffffff@Sq8@A@@гfD$unitf-f-@@ @@@(+@@@@@(,@@@f- @d : Print the given string if the verbose mode is activated. f,f,@@@@@@@fs@@@df@@@@@@1'warningf2uyf2u@б@гf&stringf2uf2u@@ @@@(-3ffffffff@J_8@A@@гf$unitf2uf2u@@ @@@(.@@@@@(/@@@f2uu @d䐠 x Print a warning message to stderr. If warnings must be treated as errors, then the error counter is incremented. f/f1Qt@@@@@@@gt@@@dg @@@@@@1.print_warningsg5g5@гe#refg5g5@гfࠐ$boolg!5g"5@@ @@@(03g#g#g#g#g#g#g#g#@Rg@@A@@@ @@@(2 @@@g05@e* F A flag to indicate whether ocamldoc warnings must be printed or not. g=4g>4@@@@@@@gVu@@)@e:gQ@@@@@@&&errorsgT;gU;@гe#refg];g^;@гg;#intgg;gh;@@ @@@(33gigigigigigigigi@Gd@@A@@@ @@@(5 @@@gv;@ep 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. g7g:@@@@@@@gv@@)@eg@@@@@@&)apply_optg>g>@б@б@А!a@(@g@(63gggggggg@=Z6@Ag> g> @@А!b@(Bg@(7 g>g>@@@ @@(8@@б@гg&&optiong>g>@А!a'"g>g>@@@-@@@(:) @@гg;&optiong>&g>,@А!b/7g>#g>%@@@5@@@(<> @@@@@(=A@@@4@@(>Dg>@@@g>@eꐠ ( Apply a function to an optional value. g=g=@@@@@@@hw@@'@eh@@@@@@d.apply_if_equalhChC@б@б@А!a@(Ig@(C3hhhhhhhh@{6@Ah%Ch&C@@А!a h+Ch,C@@@@@(D  @@б@А!ah6Ch7C@@б@А!a h>Ch?C@@А!a&!hDChEC@@@++@@(E& @@@.@@(F)@@@!@@(G,hOC @@@hRC@fL 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.h_@..h`B@@@@@@@hxx@@@f\hs@@@@@@L.text_of_stringhvHz~hwHz@б@гhL&stringhHzhHz@@ @@@(J3hhhhhhhh@ex8@A@@гf$texthHzhHz@@ @@@(K@@@@@(L@@@hHzz @f [text_of_string s] returns the text structure from the given string. @raise Text_syntax if a syntax error is encountered. hEhG?y@@@@@@@hy@@@fh@@@@@@13text_string_of_texthM=AhM=T@б@гf㠐$texthM=WhM=[@@ @@@(M3hhhhhhhh@J_8@A@@гh&stringhM=_hM=e@@ @@@(N@@@@@(O@@@hM== @fސ [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}.hJhL<@@@@@@@i z@@@fi@@@@@@1.info_of_stringiT7;i T7I@б@гhޠ&stringiT7LiT7R@@ @@@(P3iiiiiiii@J_8@A@@г]$infoi"T7Vi#T7Z@@ @@@(Q@@@@@(R@@@i-T77 @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 i:Oggi;S46@@@@@@@iS{@@@g7iN@@@@@@14info_of_comment_fileiQ]iR]@б@гh۠$listi\]i]]@г,(t_module&Moduleij]ik]@ in]io]@@@@@@)3iqiqiqiqiqiqiqiq@]rK@A @@@" @@@)@@б@гiP&stringi]i]@@ @@@)@@г^$infoi]i]@@ @@@)#@@@@@)&@@@&@@))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. iV\\i\@@@@@@@i|@@@gi@@@@@@H5remove_ending_newlinei`9=i`9R@б@гi&stringi`9Ui`9[@@ @@@)3iiiiiiii@a8@A@@гi&stringi`9_i`9e@@ @@@)@@@@@)@@@i`99 @g㐠 L [remove_ending_newline s] returns [s] without the optional ending newline. i_i_8@@@@@@@j}@@@gj @@@@@@1&Searchogjcjc@j(@@БA+.result_elementhjeje@@;@@*Res_module,(t_module@@@)@@j/fj0f@@jH@/Res_module_type,-t_module_type@@@)@@j?gj@g-@@jX@)Res_class='t_class@@@)@@jOh.6jPh.R@@jh@.Res_class_type>,t_class_type@@@)@@j_iS[j`iS@@jx@)Res_valueC 't_value@@@)@@jojjpj@@j@(Res_typeK&t_type@@@)@@jkjk@@j@-Res_extensionS7t_extension_constructor@@@)@@jljl@@j@-Res_exception N+t_exception@@@)@@jmjm6@@j@-Res_attribute!CK+t_attribute@@@)@@jn7?jn7c@@j@*Res_method"C[(t_method@@@)@@jodljod@@j@+Res_section#j@@@)h@@@)@@jpjp@@j@,Res_recfield$L-&t_type@@@)L4,record_field@@@)@@jqjq@@k@)Res_const%LD&t_type@@@)LK3variant_constructor@@@)@@krkr*@@k@@@A+Odoc_search.result_element@@@*@@@@k e @@@@k%~@@#kf@@г&Modulekfk f@k#f@@@3k"k"k"k"k"k"k"k"@ShA;@@@A@@@*@)@@@@%@@@#@A@@@@@#k6gk7g@@г&ModulekBgkCg@ kFg @@@# @@@@ @#kMh.8kNh.A@@г %ClasskYh.EkZh.J@k]h.K@@@:@@@@@#kdiS]keiSk@@г%ClasskpiSokqiSt@ktiSu@@@Q@@@@@#k{jk|j@ @г%Valuekjkj@kj@@@%h@@@@ @#kkkk@@г$Typekkkk@%kk#@$@@,%@@@@'@###klkl@@г%)Extensionklkl@,kl*@+@@3,@@@@.@#**kmkm@!@г,)Exceptionkm!km*@3km+1@2@@:3@@@@5@#11kn7Akn7N@(@г3%Valuekn7Rkn7W@:kn7X8@9@@Aİ:@@@@<@#88kodnkodx@/@г:%Valuekod|kod@Akod?@@@@H۰A@@@@C@#??lplp@3@гA&stringlplp@@I@@гF$textlpG@@MH@@@@J@#FFlql q@6@гH$Typel+ql,q@Ol/ql0q@@@W @@гR$Typel<ql=q@Yl@qW@X@@`Y@@@@[@#WWlGrlHr@G@гY$TypelSrlTr@`lWr lXr@@@h5@@гc$Typeldrler@jlhrh@i@@qEj@@@@l@@Aгh+Odoc_searchltelue@mlxelye@@@wV@@p@@3lylylylylylylyly@V@Aq}@A+-search_resultCilualluay@@;@@cAlx@@@+8@@@+:@@@@luaglua@j ) The type representing a research result.lt,2lt,`@@@@@@@@@l@@@Aг$listlua@г .result_elementlua|lua@@(3llllllll@7;@@@A?@@@+E@+7@@@@/,@@@A@@@9 /@@1jlՐ/.@..@@@.@.@@3llllllll@@A=<@.search_by_namedlxlx@б@гld$listlxlx@г/(t_module&Modulelxlx@ lx lx@@@@@@+I3llllllll@F|v@A @@@" @@@+K@@б@г#Str®exp#Strmxmx@ mxmx$@@@@@@,! @@г-search_resultm&x(m'x5@@ @@@,.@@@@@,1@@@1@@,4? @@@m4x@k. J Research of the elements whose name matches the given regular expression.mAwmBw@@@@@@@mZ@@@k>mU@@@@@@S&valuesemX{~mY{~@б@гl⠐$listmc{~md{~@г0(t_module&Modulemq{~mr{~@ mu{~mv{~@@@@@@,3mxmxmxmxmxmxmxmx@K@A @@@" @@@,@@гm $listm{~m{~@гF0't_value%Valuem{~m{~@ m{~m{~@@@@@@,' @@@ @@@,,@@@,@@,/: @@@m{~#@k ; A function to search all the values in a list of modules. mz7=mz7}@@@@@@@m@@3@kmΐ@@@@@@N*extensionsfm~m~@б@гm[$listm~/m~3@г0(t_module&Modulem~m~%@ m~&m~.@@@@@@,3mmmmmmmm@zK@A @@@" @@@,@@гm$listn~Yn~]@гWA7t_extension_constructor)Extensionn~7n~@@ n~An~X@@@@@@,' @@@ @@@,,@@@,@@,/: @@@n&~#@l ? A function to search all the extensions in a list of modules. n3}n4}@@@@@@@nL@@3@l0nG@@@@@@N*exceptionsgnJnK@б@гmԠ$listnUnV@г1(t_module&Modulencnd@ ngnh@@@@@@,3njnjnjnjnjnjnjnj@zK@A @@@" @@@,@@гm$listn|n}@гR+t_exception)Exceptionnn@ nn@@@@@@,' @@@ @@@,,@@@,@@,/: @@@n#@l ? A function to search all the exceptions in a list of modules. n_en_@@@@@@@n@@3@ln@@@@@@N%typeshn;En;J@б@гnM$listn;]n;a@г1(t_module&Modulen;Mn;S@ n;Tn;\@@@@@@,3nnnnnnnn@zK@A @@@" @@@,@@гnt$listn;qn;u@гPJ&t_type$Typeo;eo;i@ o;jo;p@@@@@@,' @@@ @@@,,@@@,@@,/: @@@o;A#@m : A function to search all the types in a list of modules. o%o&:@@@@@@@o>@@3@m"o9@@@@@@N*attributesio<o=@б@гnƠ$listoGoH@г1(t_module&ModuleoUoV@ oYoZ@@@@@@,3o\o\o\o\o\o\o\o\@zK@A @@@" @@@,@@гn$liston oo @гH+t_attribute%Valueo|o}@ oo@@@@@@,' @@@ @@@,,@@@,@@,/: @@@o#@m E A function to search all the class attributes in a list of modules. ow}ow@@@@@@@o@@3@mo@@@@@@N'methodsjo]go]n@б@гo?$listo]o]@г2s(t_module&Moduleo]qo]w@ o]xo]@@@@@@,3oooooooo@zK@A @@@" @@@,@@гof$listo]o]@гH(t_method%Valueo]o]@ o]o]@@@@@@,' @@@ @@@,,@@@,@@,/: @@@p ]c#@n B A function to search all the class methods in a list of modules. pp\@@@@@@@p0@@3@np+@@@@@@N'classeskp.p/@б@гo$listp9 p:@г2(t_module&ModulepGpH@ pKpL @@@@@@,3pNpNpNpNpNpNpNpN@zK@A @@@" @@@,@@гoߠ$listp` pa$@гD't_class%Classpnpo@ prps@@@@@@,' @@@ @@@,,@@@,@@,/: @@@p#@n} < A function to search all the classes in a list of modules. pp@@@@@@@p@@3@np@@@@@@N+class_typeslpr|pr@б@гp1$listprpr@г3e(t_module&Moduleprpr@ prpr@@@@@@,3pppppppp@zK@A @@@" @@@,@@гpX$listprpr@гD,t_class_type%Classprpr@ prpr@@@@@@,' @@@ @@@,,@@@,@@,/: @@@prx#@n @ A function to search all the class types in a list of modules. q &,q &q@@@@@@@q"@@3@oq@@@@@@N'modulesmq  q!@б@гp$listq+'q,+@г3(t_module&Moduleq9q:@ q=q>&@@@@@@,3q@q@q@q@q@q@q@q@@zK@A @@@" @@@,@@гpѠ$listqR?qSC@г4(t_module&Moduleq`/qa5@ qd6qe>@@@@@@,' @@@ @@@,,@@@,@@,/: @@@qu #@oo < A function to search all the modules in a list of modules. qq@@@@@@@q@@3@oq@@@@@@N,module_typesnqq@б@гq#$listqq@г4W(t_module&Moduleqq@ qq@@@@@@,3qqqqqqqq@zK@A @@@" @@@,@@гqJ$listqq@г4~-t_module_type&Moduleqq@ qq@@@@@@,' @@@ @@@,,@@@,@@,/: @@@q#@o萠 A A function to search all the module types in a list of modules. qEKqE@@@@@@@r@@3@or@@@@@@N@A@A@:@g@G@y@Y@@k@@}&@@8@@3r!r!r!r!r!r!r!r!@i:@A3r$r$r$r$r$r$r$r$@@Ar)dr*@@p$r;6 Research in elements r8bggr9bg@@@@@@@r;c@@$ScansjrGrH@r`@@Б/A@'scannerrU$.rV$5@rkqkpkБ@*scan_valueA@K't_value@@@-r(@@@-@@-@@-m@,-scan_type_preA@S&t_type@@@-rN@@@-@@-@@-m@,/scan_type_constA@S&t_type@@@-@S3variant_constructor@@@-rZ@@@-@@-@@-@@-m@,2scan_type_recfieldA@T&t_type@@@-@T,record_field@@@-rw@@@-@@-@@-@@-m@,)scan_typeA@T#&t_type@@@-r@@@-@@-@@-m@-:scan_extension_constructorA@\!7t_extension_constructor@@@-r@@@-@@-@@-m@-.scan_exceptionA@W+t_exception@@@-r@@@-@@-@@-m@- .scan_attributeA@K+t_attribute@@@-r@@@-@@-@@-m@-+scan_methodA@K(t_method@@@-r@@@-@@-@@-m@-4scan_included_moduleA@5/included_module@@@-r@@@-@@-@@-m@-7scan_type_extension_preA@\0t_type_extension@@@-s@@@-@@-@@-m@- scan_type_extension_constructorsA@\0t_type_extension@@@-s@@@-@@-@@-m@-%3scan_type_extensionA@\0t_type_extension@@@-s4@@@-@@-@@-m@-*2scan_class_commentA@q@@@-sG@@@-@@-@@-m@-/.scan_class_preA@GO't_class@@@.sm@@@.@@.@@-m@-43scan_class_elementsA@Gd't_class@@@. sq@@@. @@.@@.m@-9*scan_classA@Gy't_class@@@.s@@@.@@.@@.m@->7scan_class_type_commentA@r@@@.s@@@.@@.@@.m@-C3scan_class_type_preA@G,t_class_type@@@."s@@@.!@@. @@.m@-H8scan_class_type_elementsA@G,t_class_type@@@.*s@@@.)@@.(@@.'m@-M/scan_class_typeA@G,t_class_type@@@.2s@@@.1@@.0@@./m@-R3scan_module_commentA@rR@@@.:s@@@.9@@.8@@.7m@-W/scan_module_preA@6(t_module@@@.Bt@@@.A@@.@@@.?m@-\4scan_module_elementsA@7 (t_module@@@.Jt@@@.I@@.H@@.Gm@-a+scan_moduleA@7(t_module@@@.Rt*@@@.Q@@.P@@.Om@-f8scan_module_type_commentA@r@@@.Zt=@@@.Y@@.X@@.Wm@-k4scan_module_type_preA@7G-t_module_type@@@.btc@@@.a@@.`@@._m@-p9scan_module_type_elementsA@7\-t_module_type@@@.jtg@@@.i@@.h@@.gm@-u0scan_module_typeA@7q-t_module_type@@@.rt|@@@.q@@.p@@.om@-z0scan_module_listA@t\7(t_module@@@.}@@@.|t@@@.{@@.z@@.ym@-@@-@-m@-{@-|m@-v@-wm@-q@-rm@-l@-mm@-g@-hm@-b@-cm@-]@-^m@-X@-Ym@-S@-Tm@-N@-Om@-I@-Jm@-D@-Em@-?@-@m@-:@-;m@-5@-6m@-0@-1m@-+@-,m@-&@-'m@-!@-"m@-@-m@-@-m@-@-m@- @-m@-@- m@-@-m@,@,m@,@,m@,@,m@,@,m@,搐@@,m@,3tttttttt@  @  A@tnA@#@P@0@b@B@t@T@@f@@x!@@s@@@@@@ ;@@@AA^A]AwAvAASAR-A,DAC>A=UATAAAAAqApAAAAAAAAA A AAA@@.l@.~@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.l@,ߐ@@,@@@@u_$(u`@@@@ux@ #@@@a@Aam@-@@Am@-=@AB@Am@-.@İ@Am@-8@A۰@Am@-3@b@Abm@-Q@ABC@Am@-B@~@A~m@-L@A@Am@-G@B@Am@- @CD@Am@-@W@AWm@-@An@Anm@-@'@A'm@-e@ABf@Afm@-V@B@ABm@-`@ɰ@Am@-~@AB\@A\m@-[@@Am@-y@A#@A#m@-j@@Am@-t@A@Am@-o@BCDEFް@Am@-@@Am@,@>@A>m@-)@ABU@AUm@-$@m@Amm@-@AC<@Ayw?y@@T@@@-W@@bX@@cYwFy@@@WAAШ@б@гT)ExceptionwWwX@[w[w\@@@c@@@-u @@гa$unitwhwi @@i@@@-@@w@@xwp@@@lAAШ@б@гi%Valuew -w 2@pw 3w >@@@x@@@- @@гv$unitw Bw F@@~@@@-@@@@w @@@AAШ@б@г~%ValuewGdwGi@wGjwGr@@@@@@-ɰ @@г$unitwGvwGz@@@@@-հ@@ְ@@װwGO@@@AAШ@б@г&Modulew{w{@w{w{@@@@@@- @@г$unitw{w{@@@@@-@@@@w{@@@xx: Scan of a type extension ww@@@@@@@AAШ@б@г)Extensionxx"@x#x3@@@@@@-. @@гƠ$boolx!7x";@@@@@-:@@;@@<x)@@v#x: 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.x7x8@@@@@@@AAШ@б@гݠ)ExtensionxIxJ@xMxN@@@@@@-g @@гꠐ$unitxZx[@@@@@-s@@t@@uxb@@v\xs A This method scans the constructors of the given type extension. xp=Dxq=@@@@@@@AAШ@б@г)Extensionxx@xx@@@@@@- @@г$unitxx@@@@@-@@$@@%x@@vx 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.xxD@@@@@@@xx2 Scan of a class. xx@@@@@@@9AAШ@б@г6$textxLpxLt@@>@@@-@@г>$unitxLxxL|@@F@@@-@@R@@SxLT@@vx # Scan of a comment inside a class. x#xK@@@@@@@XAAШ@б@гU%ClassxWwxW|@\yW}yW@@@d@@@- @@гb$boolyWyW@@j@@@-(@@x)@@y*yW_@@wy( 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.y%~y&V@@@@@@@|AAШ@б@гy%Classy7y8@y;y<@@@@@@.U @@г$unityHyI @@@@@.a@@b@@cyP@@wJya 4 This method scans the elements of the given class. y^y_@@@@@@@AAШ@б@г%Classypyq@ytyu@@@@@@.  @@г$unityy@@@@@. @@@@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.y y[@@@@@@@yy7 Scan of a class type. yy@@@@@@@AAШ@б@гҠ$texty?hy?l@@@@@.Ѱ@@гڠ$unity?py?t@@@@@.ݰ@@ް@@߰y?G@@wyݐ ( Scan of a comment inside a class type. y y >@@@@@@@AAШ@б@г񠡠%Classy_y_@y_y_@@@@@@.  @@г$booly_y_@@@@@.@@@@z_g@@wz 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.zv~z^@@@@@@@AAШ@б@г%Classz%z&@z)z*#@@@$@@@.#C @@г"$unitz6'z7+@@*@@@.$O@@8P@@9Qz>@@x8zO 9 This method scans the elements of the given class type. zLzM@@@@@@@{%B@@@@@.D=@@>@@?{, @@y&{= 5 This method scans the elements of the given module. {:{;@@@@@@@AAШ@б@гՠ&Module{L {M@ܰ{P{Q@@@@@@.Kj @@г⠐$unit{]{^#@@@@@.Lv@@w@@x{e@@y_{v 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.{sDK{t@@@@@@@{{7 Scan of module types. {%+{%G@@@@@@@ AAШ@б@г $text{{@@@@@.S@@г$unit{{@@@@@.T@@&@@'{@@y{ ) Scan of a comment inside a module type. {IQ{I@@@@@@@,AAШ@б@г)&Module{{@0{{@@@8@@@.[ @@г6$bool{{@@>@@@.\@@L@@M{@@y{򐠠 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. {{]@@@@@@@PAAШ@б@гM&Module|1\|1b@T|1c|1p@@@\@@@.c @@гZ$unit|1t|1x@@b@@@.d+@@p,@@q-|19@@z|+ : This method scans the elements of the given module type. |(|)0@@@@@@@tAAШ@б@гq&Module|:;]|;;c@x|>;d|?;q@@@@@@.kX @@г~$unit|K;u|L;y@@@@@.ld@@e@@f|S;C@@zM|d 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.|az|b:@@@@@@@|v|u7 Main scanning method. |r{|s{@@@@@@@AAШ@б@г$list||@г&Module||@||@@@@@@.s @@@ @@@.u@@г$unit||@@@@@.v@@@@|@@z|9 Scan a list of modules. ||@@@@@@@@WXϰ|8>]@@#@ ^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@/@/<@/;@/:@/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@  @@@/i @@@/h@@/g@@/f A@  @@@/e @@@/d@@/c@@/b A@  @@@/A @@@/@@@/?@@/> A@  @@@/q @@@/p@@/o@@/n A@  @@@/m @@@/l@@/k@@/j A@  @@@/ @@@/@@/@@/ A@  @@@/ @@@/@@/@@/ A@  @@@/ @@@/@@/@@/ A@ @@@/I @@@/H@@/G@@/F A@  @@@/Q @@@/P@@/O@@/N A@  @@@/M @@@/L@@/K@@/J A@  @@@/E @@@/D@@/C@@/B A@ @@@/Y @@@/X@@/W@@/V A@  @@@/a @@@/`@@/_@@/^ A@  @@@/] @@@/\@@/[@@/Z A@  @@@/U @@@/T@@/S@@/R A@ @@@/y @@@/x@@/w@@/v A@  @@@/ @@@/@@/@@/ A@  @@@/} @@@/|@@/{@@/z A@ ~ }@@@/u |@@@/t@@/s@@/r 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 @@@/=@ @  $#@ A@  @@@0u @@@0t@@0s@@0r A@  @@@0q @@@0p@@0o@@0n A@  @@@0m@  @@@0l @@@0k@@0j@@0i@@0h A@  @@@0g@  @@@0f @@@0e@@0d@@0c@@0b A@  @@@0a @@@0`@@0_@@0^ A@  @@@0] @@@0\@@0[@@0Z A@  @@@0Y @@@0X@@0W@@0V A@  @@@0U @@@0T@@0S@@0R A@  @@@0Q @@@0P@@0O@@0N A@  @@@0M @@@0L@@0K@@0J A@  @@@0I @@@0H@@0G@@0F A@  @@@0E @@@0D@@0C@@0B A@  @@@0A @@@0@@@0?@@0> A@ @@@0= @@@0<@@0;@@0: A@  @@@09 @@@08@@07@@06 A@  @@@05 @@@04@@03@@02 A@  @@@01 @@@00@@0/@@0. A@ @@@0- @@@0,@@0+@@0* A@  @@@0) @@@0(@@0'@@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@@/@@/ 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{@0z@0y@0x@0w ,@@0v@@@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@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/ې@@/@@@@ :@@@ 7@ :@ 7?;@@@AA@@@@11@@@10@@1/@@1. A@  @@@1- @@@1,@@1+@@1*2A@/@@@1).@@@1(@@1'@@1&A@@@@1%@@@1$@@1#@@1"8A@54@@@1!3@@@1 @@1@@1 A@  @@@1 @@@1@@1@@1A@@@@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@@1A@@@@1@@@1@@0@@0 A@  @@@0 @@@0@@0@@0(A@%@@@0$@@@0@@0@@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@@@@ @@@ @A3////////@C@A4 5@@/F # Scanning of collected information CD@@@@@@@F@@#DepvlR:AS:D@k@@Б6kernel_deps_of_modulest` a @б@гꠐ$listk l @гF(t_module&Moduley z @ } ~ @@@@@@123@C@2A@3A@4A@@VU@UU@@@U@U@RN@A@@@4@@@14$1@@гR$unit  @@ @@@15&@@@@@16)4@@@  @ m Modify the module dependencies of the given list of modules, to get the minimum transitivity kernel.  MQ @@@@@@@@@@А@@@@@@H-deps_of_typesu&@б&kernelг$bool26@@ @@@173@c:@A@@б@гp$listFJ@гeF&t_type$Type:>@ ?E@@@@@@18$ @@@ @@@1:)@@г$listlp@В@гeo&t_type$Type(O)S@ ,T-Z@@@@@@1;M @@@г$list<e=i@гs!t$NameJ^Kb@ NcOd@@@@@@1<o @@@ @@@1>t@@@@/@ @@1?{9aj@@@S @@@1AgNQ@@@`@@1BlT@@K@@@1C @@1Dr)\@@ @u_@o  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].   @@@@@@@@@o@@@@@@@@7@"@@3@$@A3@@AGIqv@@> Computation of dependencies. 9@@@@@@@::@@; {1 Some global variables} xxx@@@@@@3@=t@i@T@@*)@))@@@)@)@&}@A&Globalm@@@Б&errorsw@г~#ref@гР#int@@ @@@1E3@B@A@@@@@@1G @@@ @@"@@@@ *warn_errorx@г#ref@г砐$bool()@@ @@@1H3********@oJ'@A@@@ @@@1J @@@7@@O@@@@ (out_fileyB-5C-=@г#refK-GL-J@г &stringU-@V-F@@ @@@1K3WWWWWWWW@.K'@A@@@ @@@1M @@@d-1@^ ; The file used by the generators outputting only one file. qr,@@@@@@@@@)@n@@@@@@&'verbosez lt l{@г#ref l l@гZ$bool l~ l@@ @@@1N3@Gd@@A@@@ @@@1P @@@ lp@6 Verbose mode or not. LPLk@@@@@@@@@)@ː@@@@@@&*target_dir{##@гc#ref##@г&string##@@ @@@1Q3@Gd@@A@@@ @@@1S @@@#@ꐠ 1 The directory where files have to be generated. ""@@@@@@@@@)@@@@@@@&%title|&)1&)6@г#ref&)G&)J@г&option'&)@(&)F@г&string1&)92&)?@@ @@@1T333333333@QnJ@A@@@ @@@1V @@@(@@@1X %@@@E&)-(@? ; The optional title to use in the generated documentation. R%S%(@@@@@@@k@@8@Of@@@@@@+*intro_file}i)j)@г#refr)s)@гޠ&option|)})@гQ&string))@@ @@@1Y3@V}J@A@@@ @@@1[ @@@(@@@1] %@@@)(@ < The optional file whose content can be used as intro text. (LP(L@@@@@@@@@8@@@@@@@+(with_toc~,,@гS#ref,,"@г$bool,,@@ @@@1^3@Ls@@A@@@ @@@1` @@@, @ڐ C The flag which indicates if we must generate a table of contents. ++@@@@@@@@@)@@@@@@@&*with_index/fn/fx@г#ref /f/f@г֠$bool/f{/f@@ @@@1a3@Gd@@A@@@ @@@1c @@@&/fj@ 8 The flag which indicates if we must generate an index. 3.$(4.$e@@@@@@@L@@)@0G@@@@@@&+with_headerJ2K2@г#refS2T2@г$bool]2^2@@ @@@1d3________@Gd@@A@@@ @@@1f @@@l2@f 7 The flag which indicates if we must generate a header.y1z1@@@@@@@@@)@v@@@@@@&,with_trailer5(05(<@г%#ref5(D5(G@гb$bool5(?5(C@@ @@@1g3@Gd@@A@@@ @@@1i @@@5(,@ 8 The flag which indicates if we must generate a trailer.44'@@@@@@@@@)@Ӑ@@@@@@&@@@r@R.@@@wD@$@@x@X4@@3@=Z6@A(6HK@@@@-@-analyse_files;;@б-merge_optionsг$list<2<6@г,merge_option*Odoc_types<<$@ <%<1@@@@@@1j3@\F@;@@@~@^:@@@tP@0 @@@@@JW@A% @@@:!@@@1l*7@@б,include_dirsгĠ$listE=:UF=:Y@г&stringO=:NP=:T@@ @@@1m:@@@@@@1o? @@б3hidden_include_dirsг䠐$liste>]f>]@г:&stringo>]zp>]@@ @@@1pZ@@@@@@1r_ @@б&labelsгD$bool??@@ @@@1sp@@б,sort_modulesгU$bool@@@@ @@@1t@@б'no_stopгf$boolAA@@ @@@1u@@б$initг7$listBB@гJi(t_module+Odoc_moduleBB@ BB@@@@@@1v @@@ @@@1x@@б@г^$listCBCF@г+Odoc_global+source_file+Odoc_globalC*C5@ C6CA@@@@@@2 ߰ @@@"@@@2@@г$listDJnDJr@гK(t_module&ModuleDJ^DJd@ DJeDJm@@@@@@2 @@@ @@@2 @@@,@@2 8 @@zPO[@@@2 @@2.B(@@PW@@@2@@26A0@@P_@@@2@@2#>@8@@Pg@@@2@@2+F?@@@Po@@@2@@23N>]eH@@Pw@@@2@@2;V=:@P@@`P'@@@2@@2 C^< X@@ @a;[@[ 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. n8MMo:@@@@@@@@@k@k@@@@@@c,dump_modulesHH@б@г[&stringHH@@ @@@2!3@|8@A@@б@г $listHH@гKR(t_module+Odoc_moduleHH@ HH@@@@@@2"$ @@@ @@@2$)@@гt$unitHH@@ @@@2%6@@@@@2&9 @@@?@@2'<B @@@H@ΐ M Dump of a list of modules into a file. @raise Failure if an error occurs.FttG@@@@@@@@@@@@@@@@[,load_modulesLZ^LZj@б@гΠ&stringLZmLZs@@ @@@2(3@t8@A@@г$listLZLZ@гK(t_module+Odoc_module LZw!LZ@ $LZ%LZ@@@@@@2)" @@@ @@@2+'@@@-@@2,*0 @@@5LZZ#@/ M Load of a list of modules from a file. @raise Failure if an error occurs.BJCK2Y@@@@@@@[@@3@?V@@@@@@I@A@B@tB@smA@B@qkA@A@A@XRA@~~A@{ {A@zz@y@wwjwy@@w@ss?sw@@s@nmns@@n@kkjkn@@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@@A@L@ H BMMBM@ H OCaml CC@ H DD3@ H Maxence Guesdon, projet Cristal, INRIA Rocquencourt E44E4@ H FF@ H Copyright 2001 Institut National de Recherche en Informatique et  GG@ H en Automatique. HHg@ H IhhIh@ H All rights reserved. This file is distributed under the terms of J J@ H the GNU Lesser General Public License version 2.1, with the %K&KN@ H special exception on linking described in the file LICENSE. +LOO,LO@ H 1M2M@ H************************************************************************7N8N5@ :* Interface to the information collected in source files. = -* The different kinds of element references. +,* Raw text. _=* The string is source code. F +* The string is pre-formatted source code. -2* String 'as is'. 6* Text in bold style. 2* Text in italic. ⠠3* Emphasized text. ɠ1* Centered text. 2* Left alignment. 3* Right alignment. ~** A list. `6* An enumerated list. B9* To force a line break. .;* Like html's block quote.  ** Style number, optional label, and text. 6* A string for latex. Ԡ (* A reference string and the link text.  * A reference to an element. Complete name and kind. An optional text can be given to display this text instead of the element name.0* Superscripts. p.* Subscripts. W 6* The table of the given modules with their abstract. 9 8* The links to the various indexes (values, types, ...) %9* to extend \{foo syntax  ?* (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. a _* 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. ~i8* 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 X 0* The description text of the \@deprecated tag. < &* The list of parameter descriptions.  !* 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 |B5* interface location |$4* A dummy location. {\ #* Representation of element names. y=* Access to the simple name. zݠ <* [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]. z? F* Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 or else n2. y砠 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).yI S* Representation and manipulation of method / function / class / module parameters.u&,* {1 Types} x ,* 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.wҠ #* A parameter is just a param_info.wM0* {1 Functions} w P* Access to the name as a string. For tuples, parentheses and commas are added. v㠠?* Access to the complete type. v _* Access to the list of names ; only one for a simple parameter, or a list for a tuple. v? {* Access to the description of a specific name. @raise Not_found if no description is associated to the given name. uؠ m* Access to the type of a specific name. @raise Not_found if no type is associated to the given name. uw 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].tc -* 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 s3 8* Information found in the optional associated comment. r <* The type of the extension q '* Access to the extensions in a group. po 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].oѠ -* The complete name of the target exception. p '* The target exception, if we found it.o 8* Information found in the optional associated comment. o -* The optional return type of the exception. nࠠ -* [None] when the exception is not a rebind. nĠ +* Representation and manipulation of types.d堠 &* Description of a record type field. lr5* Name of the field. l5* [true] if mutable. l栠4* [true] if atomic. lϠ5* Type of the field. l 1* Optional description in the associated comment.l -* Description of a variant type constructor. ki;* Name of the constructor. jߠ 2* Optional description in the associated comment. j?* The various kinds of a type. im ** Type is abstract, for example [type t]. iᠠ/* constructors ià)* fields i/* Type is open i<* optional user description h /* Type manifest directly taken from Typedtree. g<* Representation of a type. f=* Complete name of the type. gU 8* Information found in the optional associated comment. g9 $* type parameters: (type, variance) g -* Type kind. f:* Private or public type. fߠ Q* Representation and manipulation of values, class attributes and class methods. `5=* Representation of a value. d6>* 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. do '* 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 a "* [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.Om,* {1 Types} `J ,* 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. Ye * The way the class is defined. YN?* The parameters of the class. Y0 ** 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. V3* 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. T9 ** 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. Rv ** 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. PE ?* 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 Le &* 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. Iw (* A module constraint by a module type. IY 0* by now only the code of the module expression I@ /* 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 Gf %* The file the module is defined in. GO !* The way the module is defined. G8 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. D^ ?* A functor, with its parameter and the rest of its definition D@ 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. Ns $* 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} AV &* 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. =O /* 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].+_ 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})(/ ;* 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. '` * 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.&G * [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 %u 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. / 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. C 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. W 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. x * 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.B3* Scan of a class. 4 $* 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.c8* Scan of a class type. U )* 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. v %* Scan of a comment inside a module. G * 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. h * 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. 2 ;* 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. t?* Computation of dependencies.  n* Modify the module dependencies of the given list of modules, to get the minimum transitivity kernel.  w * 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.  E <* 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. ^ 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.y 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 J/home/ci/builds/workspace/precheck/flambda/false/label/ocaml-ubuntu-latest <10/.-,+*)('&%$#"! @@0t|˙%"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{s 0>@ӽX4Idxސ0?*sR(6]!$.0l-53Ji/0 TvwŠO0z8Pv6u|@dd@@@sCr@ ߖ $$=UVa@)=)t=P=ܰ]D\joo@@@n+m@&;%'7D7dsd}ww!@  JO Nܰkih@]@\Rq(p@9:#k0j|ޓ|2@@++@F*Eiinm~E@@ĐA/ED@67nzn{:{@==yb]@klxx@#H#&&.L.Q@kΕjm6m@F1EPO@  1(#(]@ML@HNH!Ѱ[@vΕv(@  ްYYJ@12jb[iAh@@dvd+@*ǐ+ABaawacb@@  )""ts^@(ݐ)0ڰ@igqqL@ZZee@6m6ϰNٕN@S>Qk˕j@ !,ggR@^]H}~K@QP@c\_uAu@SR*j@BCRLHްޖ@@@$˓D@JIRN*@wAvðX@{9ؐ:C~ 3@@ll@ROO/@&%bbP@NNUvU@+Ԑ,@JܕIrrГ@++ϰtt@]ŕ\@ZZ)uv4@-"-@GѓG>KJg@&%@@1Ő1@@+@W^WɰtXs@@ɓ^>@@dUdddp@@@9(9y_x@\]\``7xx/@SQ5edv@kjְy(l@s@88=~@424zޒ{@@==h@@@͒@RՒL&n8m@//ǰ' @@@FEMLS,Pgwv@da!@c+b@\\ku9@@ggv@T@  @( (F@@uv @s#sH@@q qi@VڐW<{>{H@ ! X01;"@iƒj{/{@'&*@nQn @@*+QlQ#@@NMT4R@?O?SړR*@_^@@nnT@5f5L@<=MS̒Tb=a@ThRsasP@@~ ~i@LEK&OO(@R Ӑ `J_@j{iqq`xwy@D}D߰@@` _@:<:@@'&d0]9huhmƒn @XYa@eeװ!~ΰD@AHAXX@@jEi8u?@{zȰy@)̐*4~49j9հppvv@bDUB@jӕi@@'ɓ&@5p5@345^ܕ]@-.ABYdÒc@IHt@ g (='>@@@@ 0 xx@E@E[:ZcfeȰ2k@@[[@qp@$}$``*@PdP@  8}}ްb@u.tc@@eē@[[@@@NM0@YܐZ=@m/l$s;r@"#%'ԓ&SH;cϕcz@@3B3@P@LK^@/|/p&o{@{@@DEz1y|{_z@ml@q=pҰuqt@i)h@@GFL)JӰLK]@@('K@@pp@'(II@J_J7xx@6677H?`@@/)/@<=OU8S]]A֓@kj||˕@@I̓IJ@@4ܐ5cb}Đ~@@$$q@@(( tyt@,;,uH6G@>Ӑ?3qŕqz@q~q@==NړM@FQFssu@Đ{@A4AUJS_k^Z@(ߓ'ٰ+S+hh1{|{@U6S@&&@@a `i`i@WX#@TS:@!"N23-VܐWG@#ΐ$8S/Sss[@QƕQ@T=JD@@)ː*/IēI;vtu\@  Ε@22]o n<@sth@ONݰvgu@@VV@URS@@bb1@ON@  ]^]:cĕcW@@BBoUpSа@hǕhf@`G_p{y{zYz/@==o@MLMMוL1@HGװ%V@D Duwwt@@@235ep] @11@!!01\n[@|ޓ|@**аi)h@33@MEL@lHknm@@ǕѰ-W@)(@"ߐ#IPN@MzL/@f dXj@262y@@P@@