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@@@@@:@A@$charB;@@A@@@@@>@A@&stringQ;@@ A@@@@@B@@@%bytesC;@@ A@@@@@F@@@%floatD;@@A@@@@@J@@@$boolE;@@%falsec@@T@$trued@@Z@@@A@@@@@[@A@$unitF;@@"()e@@e@@@A@@@@@f@A@ #exnG;@@@A@@@@@j@@@#effH;@@O@A@A@@@@@@s@@@,continuationI;@@Q@@P@B@A@nY@@@@@@@@@%arrayJ;@@R@A@A@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@A@@@@@@@@%int32N;@@A@@@@@@@@%int64O;@@A@@@@@@@@&lazy_tP;@@X@AJA@Y@@@@@@@@5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@A[A@Y@@@@@@@@*atomic_locU;@@Z@AdA@@@@@@@@@.Assert_failure`#@@@@@J@@@@@@@@[@@A=ocaml.warn_on_literal_pattern @ @0Division_by_zero]#@@@A  @+End_of_file\#$@@@A@'FailureY#,@'@@A!$$@0Invalid_argumentX#5@0@@A*$-#-@-Match_failureV#>@@=@9@;@@a@@A;5>4>@)Not_foundZ#O@@@AC=F<F@-Out_of_memoryW#W@@@AKENDN@.Stack_overflow^#_@@@ASMVLV@.Sys_blocked_io_#g@@@A[U^T^@)Sys_error[#o@j@@Ad^g]g@:Undefined_recursive_modulea#x@@w@s@u@@h@@Auoxnx@:Continuation_already_takenb#@@@A}wv@&Stdlib@AxA+(ref_kindASS@@;@@)RK_module@@TT@@C@.RK_module_type@@UU@@D@(RK_class@@VV@@E@-RK_class_type@@WW@@F@(RK_value@@XX@@G@'RK_type@@YY'@@H@,RK_extension@@Z(*Z(8@@I@,RK_exception@@[9;[9I@@J@,RK_attribute@@\JL\JZ@@K@)RK_method@@][]][h@@L@*RK_section$textA@@@@@^ik^i@@M@+RK_recfield @@__@@ N@(RK_const!@@``@@O@@@A*Odoc_types(ref_kind@@@i@@@@ S @)ocaml.doc , The different kinds of element references. RwwRw@@@@@@@@@2@@@#@@@@@#&U@@@@@#,V@@@@@#2W@@@@@#8X@@@@@#>Y @@@@@#DZ(,@@@@@#J[9=@@@@@#P\JN~@}@@@@#}}V][_{@z@@@~@#zz\^im]^iw@q@г|$textf^i{{@@3dccddddd@e;@@@A@@@!@@@@@ki@@Y,text_elementA;@@@A @@@"@@@@@b 3 P@@@@A@;@@@A@@@#@@@@@B  B  @ 8 A text is a list of [text_element]. The order matters. A  A  @@@@@@@@@B@@A9@@@@@#_@@@@@#`@@@@@@Aг*Odoc_typesSS@SS@@@T@@̐@@@@@@+UUbb@@;@@#Raw5@@@j@@cc@ѐ+ Raw text. cc@@@@@@@P@$Code6@@@k@@dd@퐠< The string is source code. dd"@@@@@@@Q@'CodePre7@@@l@@e#%e#8@ * The string is pre-formatted source code.  e#9!e#h@@@@@@@9R@(Verbatim8@@@m@@.fik/fi@%1 String 'as is'. @@@s@@llnll}@͐2 Right alignment. ll~ll@@@@@@@Y@$List?p @@@t@@@v@@mm@) A list. mm@@@@@@@Z@$Enum@.@@@w@@@y@@nn@5 An enumerated list. &n'n@@@@@@@?[@'NewlineA@@/o0o@&8 To force a line break. =o>o@@@@@@@V\@%BlockBb@@@z@@KpLp)@B: Like html's block quote. Yp*ZpI@@@@@@@r]@%TitleC<@@@{͠<@@@|@@@~@@@@@vqJLwqJq@m ) Style number, optional label, and text. rrrr@@@@@@@^@%LatexD^@@@@@ss@5 A string for latex. ss@@@@@@@_@$LinkEz@@@@@@@@tt@ ' A reference string and the link text. tt #@@@@@@@`@#RefF@@@5Z@@@@@@?@@@@@@@@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@@@@@@@Bc@+Module_listI@@@@@@@@<{ L N={ L j@3 5 The table of the given modules with their abstract. J| k rK| k @@@@@@@cd@*Index_listJ@@S}  T}  @J 7 The links to the various indexes (values, types, ...) a}  b}  @@@@@@@ze@&CustomK;@@@@@@@@t~  u~  @k8 to extend \{foo syntax ~  ~  2@@@@@@@f@&TargetL\@@@a@@@@@ 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@@гݠ&string fiy@@@@@@ᠰ@@@@@@#ڠڰgg@@гܠ$text'g@@@@@@࠰9@@@@@@#٠ٰ8h9h@@г۠$textBh@@ܰ@@@@ߠ9T@@@@@@#ؠذSiTi@@гڠ$text]i@@@@@@ޠTo@@@@@@#נװnjoj%@@г٠$textxj)@@@@@@ݠo@@@@@@#ְ֠kDHkDL@@гؠ$textkDP@@-@@@@ܠ@@@@@@#ՠհllpllu@@гנ$textlly@@H@@@@۠@@@@@@#Ԡ԰mm@@г֠$listm@гڠ$textmm@@l@@@m@@@@ߠ吠@@@@@@#ؠذnn@@гڠ$listn@гޠ$textnn@@@@@@@@@㠰 @@@@@@#ܠܰ o@@@@ݠ@@@@@@#ְ֠pp!@@гؠ$text$p%@@@@@@ܠ6@@@@@@#ՠհ5qJN6qJS@@гנ#int?qJW@qJZ@@ڰ@@гܠ&optionIqJdJqJj@г᠐&stringRqJ]SqJc@@@@@ @@г栐$text]qJm@@@@@@꠰To@@@@@@#nsos@@г堐&stringxs@@@@@@頰o@@@@@@#tt@@г䠐&stringtt@@.@@г預$textt@@7@@@@@@@@@@#u $ (u $ +@@г蠐&stringu $ /u $ 5@@S@@г&optionu $ Au $ G@г(ref_kindu $ 8u $ @@@f@@@g @@г&optionu $ O@г$textu $ Ju $ N@@y@@@z@@@@򐠠@@@@@@#y  y  @@г$texty  @@@@@@ @@@@@@# z # ' z # 0@@г$textz # 4@@@@@@ (@@@@@@#'{ L P({ L [@@г$list1{ L f@г&string9{ L _:{ L e@@԰@@@ հ@@@@2M@@@@@@#L}  @@@@C^@@@@@@#]~  ^~  @@г&stringg~  h~  @@@@г$textq~  @@ @@@@h@@@@@@# 3 7 3 =@@г&string 3 A 3 G@@'@@г&string 3 J@@0@@@@@@@@@@@Aг*Odoc_typesbb@bb@@@ L@@5@+ϠϰB  B  @@;@@@A@P@@@@@@@@@@:7@@)@@Aг $listB  @@г,text_elementB  B  @@p@@@qK@@M鐠KJ@JJ@@@J@J@@W@A+'see_refMBE * /E * 6@@;@@'See_urlN@@@ @@F N RF N c@@ i@(See_fileO@@@ @@ G d f G d z@@ $j@'See_docP@@@ @@ H { } H { @@ 2k@@@A'see_ref@@@ @@@@ $E * * @ 2 The different forms of references in \@see tags.  1D   2D  )@@@@@@@@@ Jh@@#CC< 9F N Y@;@гD&string BF N ]E@@K3 @ ? ? @ @ @ @ @@ Ba{^;@@@Af@@@@ @@@@.,@@@AT@@@@V@#RR VG d h WG d p@K@гT&string `G d tU@@[V@@@@X@#TT fH {  gH { @M@гV&string pH { W@@].X@@@@Z@@AгV*Odoc_types {E * 9 |E * C@] E * D E * K@@@e?@@`x _^@^^@@@^@^@@3        @J@Alv@+Text_syntaxQC L   L  @#@ x@@@& }@@@' y@@@(@@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 kY:S lY:Y@гC&string tY:L uY: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[@@ B @@@@@@ 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.  2d 3d@@@@@@@ Kx@(i_before^@@ @ @@@@ c@@@@@@@@ Me Ne?@ D - the version number and text in \@before tag  [e@ \er@@@@@@@ ty@,i_deprecated_@@ Ƞ @@@@@@ lfsw mfs@ c / The description text of the \@deprecated tag.  zfs {fs@@@@@@@ z@(i_params`@@ 9@@@@@@İ g g@ % The list of parameter descriptions.  g g @@@@@@@ {@3i_raised_exceptionsa@@ #@@@@@@ɰ h h>@ The list of raised exceptions.  h? hd@@@@@@@ |@.i_return_valueb@@ % @@@@@@ΰ iei ie@ + The description text of the return value.  ie ie@@@@@@@ }@(i_customc@@ a@ @@@Ѡ@ @@@@@@@@հ 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@@@@@@@ 8@@@A "$info@@@@@@@ *_ +llo@ ! U Information in a special comment @before 3.12 \@before information was not present.  8\^^ 9^@@@@@@@@@ Qs@@# @`@@@Ш@г&option I` J`@г$text R` S`@@3 Q P P Q Q Q Q Q@HB;@@@A@@@ 7@@@@@74@@&@A@@@ @@@@@ Y t@@@@@@# sa@@@Ш@г$list |a' }a+@г&string a  a&@@3@@@4 @@@@7@Š  @@@@@@# bZg@@@Ш@г&option bZq bZw@гƠ&string bZj bZp@@Z@@@[ @@@@^@͠  @@@@@@#Ơư c@@@Ш@гɠ$list c c@гΠ#see c c@@@@@ @@@@@ՠ  鐠@@@@@@#Πΰ d@@@Ш@гѠ&option d d@г֠&string d d@@@@@ @@@@@ݠ @@@@@@#ְ֠e&@@@Ш@г٠$liste9e=@В@гޠ&string%e*&e0@@Ӱ@@@г㠐$text0e31e7@@ް@@@߰@@@5e)@@@@@젰 -H@@@@@@#Gfs@@@Ш@г蠐&optionPfsQfs@г$textYfsZfs@@@@@ @@@@ @ To@@@@@@#ng@@@Ш@г$listwgxg@г%paramgg@@.@@@/ @@@@2@ {@@@@@@#h%@@@Ш@г$listh9h=@г0raised_exceptionh(h8@@U@@@ V @@ @@Y@ @@@@@@#iew@@@Ш@г&optionieie@г$textiezie~@@ |@@@} @@@@@  䐠  @  @@@ @ @#j@@@Ш@г$listjj@В@г &stringjj@@@@@г$textjj@@@@@%@@@* j@@.@@@ @@@@@@# k @@@Ш@г$list$k %k #@г%alert-k .k @@$۰@@@)ܰ @@,@@@# (C! @  @@@ @ @@Aг*Odoc_typesG_H_@#K_L_@@@+@@& D_$#@##@@@#@#@@3WVVWWWWW@@A21@A+(locationeIeofo@@;@@(loc_impl@@Ӡ(Location!t@@@ /@@@ 1{p|p@ r9 implementation location pp@@@@@@@A@)loc_inter@@#!t@@@ 4@@@ 6q"qA@ 4 interface location qBq[@@@@@@@B@@@A (location@@@ 9@@@@or\_@ = Location of elements in implementation and interface files. nqqnq@@@@@@@@@@@@#^^Pp@A@@Ш@гa&optionpp@гf(Locationpp@kpp@@@u3@WQ;@@@A@@@@ @@@@>;@@-@A@@@ @@@@ 2@| zy@yy@@@y@y@#uuiq+@Z@@Ш@гx&optionq9q?@г}(Locationq.q6@q7q8@@@:@@@; @@@@ 7>@4@@@@@@@Aг*Odoc_types8o9o@<o=o@@@Y@@5P@@@@@@@3HGGHHHHH@d@A@)dummy_locɠUuz~Vuz@г(location^uz_uz@@ @@@3`__`````@}@A@@@huzz @^3 A dummy location. utaavtay@@@@@@@C@@@n@@@@@@!$NameJxx@K@@БA+!tKzz@@;@@Ar@@@@@@@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@@ @@@@@г!t:s;s@@ @@@@@@@@!@@@'@@$* @@@Hsy@> ; [concat t1 t2] returns the concatenation of [t1] and [t2].U,2V,r@@@@@@@nF@@@Ni@@@@@@C%depth͠l"m'@б@гڠ!tw*x+@@ @@@3yxxyyyyy@\q8@A@@гY#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,)-*@@ @@@@@г!t9.:/@@ @@@@@@@@!@@@'@@$* @@@G @= P Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 and n1<>"" or else n2. TU@@@@@@@mI@@@Mh@@@@@@C&fatherРkl@б@г٠!tvw@@ @@@3xwwxxxxx@\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@@@67@@OO@'sn_textBA@]@@@@@@GH @@`P@@@A.Odoc_parameter+simple_name@@@Q@@@@T_cU @K + Representation of a simple parameter name b*.c*^@@@@@@@@@{L@@#IIDj@C@@Ш@гL&stringst@@T3rqqrrrrr@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@%TupleOz#@@@}@@@)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@@@@@@@@@9Q@@#AA:(@9@гB+simple_name1C@@I3/../////@@ Z;@@@Ab@@@@{@@@@,*@@@AP@@@@R@#NNCD@;@гP$listM*N.@гU*param_infoVW)@@]&@@@b' @@гZ%Typesc1d6@ag7_@`@@h7a@@@@c@@Aг_.Odoc_parameterst@fwx@@@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. @@@@@@@1U@@@,@@@@@@I#typR/W_0Wb@б@г)parameter:We;Wn@@ @@@3<;;<<<<<@b]8@A@@г)type_expr%TypesMWrNWw@ QWxRW@@@@@@ @@@@@! @@@]W[ @S> Access to the complete type. j/3k/V@@@@@@@V@@@c~@@@@@@:%namesS@б@г)parameter@@ @@@3@Sh8@A@@г$list@гo&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@@ @@@@@гa&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@@@@@@@EX@@-@%@@@@@@@R,type_by_nameUCJRDJ^@б@г)parameterNJaOJj@@ @@@3POOPPPPP@k8@A@@б@г)&string_Jn`Jt@@ @@@@@г8)type_expr%TypespJxqJ}@ tJ~uJ@@@@@@' @@@@@* @@@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@@3EDDEEEEE@(@AIU@A+/extension_aliasoRST@@;@@'xa_namer@@!t@@@hbc@Y , The complete name of the target extension. pq4@@@@@@@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@Ш@г&option 5g 5m@г7t_extension_constructor5O5f@@Q@@@R @@@@nU@)@@@@@@@Aг.Odoc_extension-.@12@@@p@@*E@@@@@@+ĠİDE@@;@@'xt_namet@@!t@@@sST@@lc@'xt_args~@@)Odoc_type0constructor_args@@@Ұc#dG@@|d@&xt_ret@@РA)type_expr@@@@@@װvHRwHr@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@8$info@@@@@@    @Ր; optional user description     @@@@@@@i@@@A7t_extension_constructor@@@@@@@@@@@# @@@Ш@г$Name@  @@@I@@@@tL@@#*@@@Ш@г)Odoc_type, 5@°#6$F@@@b@@@@e@@#àð-HX@@@Ш@гƠ&option6Hj7Hp@гˠ%TypesAHZBH_@ҰEH`FHi@@@@@@ @@@@@נA\@@@@@@#Ра[@@@Ш@гӠ0t_type_extensionde@@@@@@@ڠ^y@@@@@@#ӠӰx  @@@Ш@г֠&option  .  4@г۠/extension_alias    -@@Ȱ@@@ɰ @@@@@⠰@@@@@@#۠۰ i { i @A@Ш@гߠ*Odoc_types i  i @ i  i @@@@@@@@@#    @A@Ш@г렐&option    @г𠡠*Odoc_types    @    @@@@@@ @@@@@鐠@@@@@@@Aг.Odoc_extension@@@@0@@@+ ! !@@;@@'te_infoA@gv@@@@@@ !@!J !@!i@ 7 Information found in the optional associated comment. !@!j!@!@@@@@@@2j@,te_type_name@@ !t@@@'!!(!!@; The type of the extension 5!!6!!@@@@@@@Nk@2te_type_parameters@@)type_expr@@@@@@H!!I!"@@al@*te_private@@u@@@T"")U""D@@mm@/te_constructorsA@ޠ@@@@@@e"E"Of"E"@@~n@&te_locA@ @@@q""r""@@o@'te_codeA@ޠM@@@@@@""""@@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@@#àð/""0""@A@Ш@гǠ(location9"":""@@w@@@@z@@#ʠʰB""C""@A@Ш@гΠ&optionL""M""@гӠ&stringU""V""@@@@@ @@@@@@@Aг֠.Odoc_extensiond !e !"@ݰh !#i !3@@@@@@@3ihhiiiii@@A@6extension_constructorsv##w##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$@@@@@@@:u@%ea_exA@+t_exceptionT@@@R@@@T4$$5$$@+ & The target exception, if we found it.B$$C$%@@@@@@@[v@@@A.Odoc_exception/exception_alias@@@w@@@@O$0$4P% %)@F j Used when the exception is a rebind of another exception, when we have [exception Ex = Target_ex].]##^#$/@@@@@@@@@vs@@#YYRe$v$@C@@Ш@г\$Namep$v$q$v$@ct$v$u$v$@@@k3tssttttt@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@y@@@{@@@}%%%%@ 7 Information found in the optional associated comment. +%%,%%@@@@@@@Dx@'ex_args@@0constructor_args@@@9%%:%&@@Ry@&ex_ret@@ )type_expr@@@@@@L&&&M&&G@C , The optional return type of the exception. Z&&H[&&y@@@@@@@sz@(ex_alias@@Ǡh@@@@@@k&z&l&z&@b , [None] when the exception is not a rebind. y&z&z&z&@@@@@@@{@&ex_locA@"@@@&&&&@@|@'ex_codeA@a@@@@@@'' ''+@@}@@@AT+t_exception@@@@@@@@@@@#%h%y@@@Ш@г$Name%h%|%h%@%h%%h%@@@@@@@@yC@@#%%%%@A@Ш@г&option%%%%@г$info%%%%@@\@@@] @@@@~`@琠@@@@@@#%%@@@Ш@г)Odoc_type%&%& @%& %&@@@@@@@@@#&&,@@@Ш@г &option&&? &&E@гǠ%Types&&/&&4@ΰ&&5&&>@@@@@@ @@@@@Ӡ.@@@@@@#̠̰-&z&@@@Ш@гϠ&option6&z&7&z&@гԠ/exception_alias?&z&@&z&@@ʰ@@@˰ @@@@@۠:U@@@@@@#Ԡ԰T&&U&&@A@Ш@гؠ(location^&&_&&@@@@@@@@#۠۰g''h''@A@Ш@гߠ&optionq''#r'')@г䠐&stringz''{''"@@@@@ @@@@ @@@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@@@@@];(4(><(4(P@24 Name of the field. I(4(QJ(4(j@@@@@@@b@*rf_mutable@@@@@`U(k(uV(k(@L4 [true] if mutable. c(k(d(k(@@@@@@@|@)rf_atomic@@/@@@co((p((@f3 [true] if atomic. }((~((@@@@@@@@'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@" =@@@@@@# <((@@@Ш@г%Types G(( H((@° K(( L((@@@j@@@@gm@ǠF a@@@@@@# ` ))+ a ))2@A@Ш@гĠ&option j )): k ))@@гɠ$info s ))5 t ))9@@@@@ @@@@l@Рn @@@@@@@Aгɠ)Odoc_type '( '(@а '( '('@@@@@Ӡ @@@@@@@3        @@A@A+0constructor_argsX  ))  ))@@;@@+Cstr_record 8@@@@@@@@ )) )*@@ @*Cstr_tuple K )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!2**8!3**A@@@i-@@@n. b@@@@d@@Aг`)Odoc_type!@ ))!A ))@g!D ))!E ))@@@o?@@j=!Xih@hh@@@h@h@@3!P!O!O!P!P!P!P!P@J@Av@A+3variant_constructorY!^*H*Q!_*H*d@@;@@'vc_name@@!7@@@!k**!l**@b: Name of the constructor. !y**!z**@@@@@@@!@'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"2+ +A"3+ +G@г$info";+ +<"<+ +@@@h@@@i @@@@l@ 6"Q@@@@@@@Aг)Odoc_type"U*H*g"V*H*p@"Y*H*q"Z*H*@@@@@@@3"Z"Y"Y"Z"Z"Z"Z"Z@@A@A+)type_kindZ"h++"i++@@;@@-Type_abstract@@"r++"s++@ 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@@@ @@@@! #;@@@@@@##:,|,#;,|,@x@г$list#D,|,@г,record_field#L,|,#M,|,@@1@@@2@@@@!E#`@@@@@@##_ ,,@@@@!V#q@@@@@@@Aг)Odoc_type#u++#v++@#y++#z++@@@_@@!r#@@@@@@@3########@j@A@A+,object_field[#",,#",-@@;@@'of_name@@#l@@@)##- -&##- -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$2%-[-~$3%-[-@@@|H@@@I @@@@2L@y".$Iwv@vv@@@v@v@@Aгr)Odoc_type$M",-$N",-@y$Q",-$R",-@@@g@@|@@3$R$Q$Q$R$R$R$R$R@g@A}|@A+-type_manifest\$`(--$a(--@@;@@%Otherː=)type_expr@@@R@@$q)--$r)-.@"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. %!/..%"/..@@@@@@@%:@'ty_infoA@$@@@x@@@z%20./%30./"@#) 7 Information found in the optional associated comment. %@0./#%A0./_@@@@@@@%Y@-ty_parameters@@$ʠ@")type_expr@@@}@+(Variance!t@@@ @@ @@@%a1/`/j%b1/`/@#X # type parameters: (type, variance) %o2//%p2//@@@@@@@%@'ty_kind@@@@@%{3//%|3/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&50./&60./@@ 3@@@4 @@@@{7@ $0&K@@@@@@#&J1/`/w@@@Ш@г$list&S1/`/&T1/`/@В@г %Types&b1/`/{&c1/`/@&f1/`/&g1/`/@@@e@@@г%Types&v1/`/&w1/`/@&z1/`/&{1/`/@@!&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%':ML@LL@@@L@L@@3'2'1'1'2'2'2'2'2@0@A[Z@@smA@ A@A@A@A@A@A@GAA@@3'D'C'C'D'D'D'D'D@CIC@A3'G'F'F'G'G'G'G'G@C@A'L'{'}'M:00@@%C'^ * Representation and manipulation of types.'['='='\'='l@@@@@@@'^'m'm@@%Value^'j=1@1G'k=1@1L@'@@БA+'t_value_'y@1{1'z@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@'u)parameter@@@@@@ڰ'F22'F23#@%9 The parameters, if any. ( F23$( F23B@@@@@@@(%@(val_codeA@'y'@@@@@@߰(G3C3M(G3C3o@& D The code of the value, if we had the only the implementation file. (+G3C3p(,G3C3@@@@@@@(D@'val_locA@@@@(7H33(8H33@@(P@@@A*Odoc_value't_value@@@*@@@@(D@1{1(EI33@&;< Representation of a value. (R?1U1Y(S?1U1z@@@@@@@@@(k@@#٠ٰ(ZB11@@@Ш@гܠ$Name(eB11(fB11@(iB11(jB11@@@3(i(h(h(i(i(i(i(i@ 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)HG3C3g)IG3C3m@г4&string)QG3C3`)RG3C3f@@<@@@A @@D@@@;'L)g98@88@@@8@8@#44)fH33)gH33@/A@Ш@г8(location)pH33)qH33@@@@@C@@ @?@@Aг;*Odoc_value)~@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@@@@@~(*6|{@{{@@@{@{@#wwr*5O44@c@@Ш@гz$bool*>O44*?O44@@)@@@@,@(8*S~@~~@@@~@~@#zzu*RP55@f@@Ш@г}$bool*[P55*\P55 @@F@@@@I@(U*p@@@@@@@Aг}*Odoc_value*tL443*uL44=@*xL44>*yL44I@@@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@@*y@@@ް*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+4W662+5W666@@)@@@@,@).+I~@~~@@@~@~@#zzu+HX6a6v@f@@Ш@г}$bool+QX6a6y+RX6a6}@@F@@@@I@)K+f@@@@@@@Aг}*Odoc_value+jT55+kT55@+nT55+oT55@@@d@@)g+@@@@@@@3+z+y+y+z+z+z+z+z@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,B`77@@*8,S P Representation and manipulation of values, class attributes and class methods. ,P<00,Q<01?@@@@@@@,S=1@1@@@%ClassWb,_c8 8,`c8 8@,x@@Б,x,w+ {1 Types} ,te8!8%,ue8!85@@@@@@3,s,r,r,s,s,s,s,s@ @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-5h8l8-6h8l8@h-9h8l8-:h8l8@@@rC@@k+2-Mji@ii@@@i@i@@Ұv@A+#cct d-Rn9V9_-Sn9V9b@@;@@"Cl)'t_class%d@@@{@@-co9v9~-do9v9@@-|@&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@@@@@@@@@.8@0class_type_alias&d;@@@A @@@@x@@@@..CC./E0E9@@@@.G@/class_type_kind'd;@@@A @@@@y@@@@.=E;E?.>EE@@@@.V@;@@@A@@@@z@@@@.JF?FC.KHcHl@,A ! Representation of a class type. .XFF.YFF>@@@@@@@@@.q@@A@@@@@#.`p99.ap99@@г,t_class_type.jp99.kp99@@@@г$list.tp99@г%Types.~p99.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-@@.[-@@@@@@.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-&/Aon@nn@@@n@n@#jj/@u:u:/Au:u:@RA@Ш@гn&option/Ju:u:/Ku:u:@гs#cct/Su:u:/Tu:u:@@{@@@ @@@@@z-N/ixw@ww@@@w@w@#ssi/hv::@Z@@Ш@гv&option/qv::/rv::@г{$text/zv::/{v::@@Ű@@@ư @@@@@-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@@/f)type_expr@@@@@@/}< </}< <9@-搠 2 The type of expressions the class is applied to. /}< <:/}< @#|0+{;`;s@m@@Ш@г$Name06{;`;v07{;`;z@0:{;`;{0;{;`;|@@@@@@@@.50P@@@@@@#0O|;;0P|;;@sA@Ш@г&option0Y|;;0Z|;;@г't_class0b|;;0c|;;@@@@@ @@@@@.]0x@@@@@@#0w}< 1@@@@@@@1S@@@At,class_constr@@@@@@@P@@@M@#dd]1I= =@N@@Ш@гg$Name1T= =1U= ="@n1X= =#1Y= =$@@@v@@y@@@s/S1nqp@pp@@@p@p@#ll1m=V=h1n=V=q@TA@Ш@гp&option1w=V=x1x=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_structure51a@@@@@@1k\@@@@@@@@1>j>r1>j>@/鐠 D An explicit class structure, used in implementation and interface. 2>>2>?@@@@@@@2@+Class_apply62@@@@@2??2??#@0 < Application/alias of a class, used in implementation only. 2?$?,2?$?m@@@@@@@25@,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] 28??29@@@@@@@@@2Q@0Class_constraint8L@@@@@@@@2K@@G@0A ' A class definition with a constraint. 2X@@2Y@A@@@@@@@2q@@@A*class_kind@@@@@@@_@@@\@#u2g>j>@f@г$list2p>j>2q>j>@г/inherited_class2y>j>2z>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>=>R3>=>\@3>=>]3>=>g@@@O@@@+3 ADAL3 ADAS@@;@@'cl_name9@@"!t@@@3AuA3AuA@1= Complete name of the class. 3(AuA3)AuA@@@@@@@3A@'cl_info:A@2'@@@@@@ư39AA3:AA@10 7 Information found in the optional associated comment. 3GAA3HAB@@@@@@@3`@'cl_type;@@ !*class_type@@@ɰ3UBB&3VBBB@1L4 Type of the class. 3cBBC3dBB\@@@@@@@3|@2cl_type_parameters<@@2 A)type_expr@@@@@@ΰ3vB]Bg3wB]B@1m2 Type parameters. 3B]B3B]B@@@@@@@3@*cl_virtual=@@3P@@@Ѱ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@3B )parameter@@@@@@3C@CJ3C@C|@1> The parameters of the class. 3C@C}3C@C@@@@@@@3@&cl_loc@A@$@@@3CC3CC@@3@@@A't_class@@@@@@@@@@#3AuA@@@Ш@г䠡$Name3AuA4AuA@4AuA4AuA@@@O@@@@R@𠰠14@@@@@@#4AA4AA@A@Ш@г&option4"AA4#AA@г$info4+AA4,AA@@v@@@w @@@@z@2&4A@@@@@@#4@BB-@@@Ш@г%Types4KBB04LBB5@4OBB64PBB@@@@@@@@@2J4e@@@@@@#4dB]By@@@Ш@г$list4mB]B4nB]B@г%Types4xB]B|4yB]B@ 4|B]B4}B]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@@@5:DD5;DD2@31 ) Complete name of the target class type. 5HDD35IDDa@@@@@@@5a@)cta_classBA@4@@@@@@ 5YDbDl5ZDbD@3P 4 The target t_class or t_class_type, if we found it.5gDbD5hDbD@@@@@@@5@3cta_type_parametersC@@4"E)type_expr@@@ @@@5zDD5{DD@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@@}@@@ @@@@ @|35䐠zy@yy@@@y@y@#uui5DD@Z@@Ш@гx$list5DD5DD@г}%Types5DD5DD@5DD5DD@@@G@@@H @@@@K@36@@@@@@@Aг*Odoc_class6CC6CC@6CC6CD@@@f@@@+6"E;EC6#E;ER@@;@@/Class_signatureD5h@@@@@@5 @@@@@@@@6@ErEz6AErE@@6Y@*Class_typeE*@@@@@6NEE@4D / A class type eventually applied to type args. 6[EE6\EF@@@@@@@6t@@@A /class_type_kind@@@@@@@)@@@&@#@@*6jErE@)@гA$list6sErE6tErE@гF/inherited_class6|ErE6}ErE@@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@6M+\@@@@@@!6FF6FF@4萠 7 Information found in the optional associated comment. 6FF7FG!@@@@@@@7@(clt_typeH@@#*class_type@@@$7 G"G,7G"GI@@7&@3clt_type_parametersI@@6#)type_expr@@@'@@@)7 GJGT7!GJG@52 Type parameters. 7.GJG7/GJG@@@@@@@7G@+clt_virtualJ@@6@@@,7:GG7;GG@51 % [true] if the class type is virtual 7HGG7IGG@@@@@@@7a@(clt_kindKA@ !@@@/7TGG7UGH@5K $ The way the class type is defined. 7bGH7cGH;@@@@@@@7{@'clt_locLA@( @@@27nH<HF7oH<Hb@@7@@@A ,t_class_type@@@7@@@@ / ,@@ @#7}FzF@@@Ш@г$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@@@@@@#۠۰8GG@@@Ш@гޠ$bool8GG8GG@@ d@@@@- g@堰68.@@@@@@#ޠް8-GG8.GG@A@Ш@г⠐/class_type_kind87GH88GH@@ @@@@0 @頰618L@@@@@@#8KH<HN8LH<HU@A@Ш@г栐(location8UH<HX8VH<H`@@ @@@@3 @@@Aг頡*Odoc_class8cF?FV8dF?F`@8gF?Fa8hF?Fm@@@ @@ "6`8{  @  @@@ @ @@38s8r8r8s8s8s8s8s@ @A  -@88/ {1 Functions} 8HnHr8HnH@@@@@@388888888@  $ bo qf 4      E ?@A .class_elementsM8HH8HH@б%transг8f$bool8HH8HH@@ @@@V$@@б@г T't_class8HH8HH@@ @@@W3@@г8@$list8HH8HH@г 7-class_element8HH8HH@@ @@@XJ@@@@@@ZO @@@"@@[R%@@?8D8@@@\ @@]Z8HH @@ @8HH#@6ݐ $ Access to the elements of a class. 8HH8HH@@@@@@@9 @@3@69@@@@@@z0class_attributesN9 I0I89 I0IH@б%transг8֠$bool9I0IR9I0IV@@ @@@^399999999@:@A@@б@г Ơ't_class9)I0IZ9*I0Ia@@ @@@_@@г8$list96I0Iw97I0I{@г+t_attribute%Value9DI0Ie9EI0Ij@ 9HI0Ik9II0Iv@@@@@@`1 @@@ @@@b6@@@+@@c9. @@J{B@@@d @@e@9^I0IK(@@ @9aI0I4+@7W ) Access to the list of class attributes. 9nHI9oHI/@@@@@@@9@@;@7g9@@@@@@`<=<=<><><><><>@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=7=6=6=7=7=7=7=7@H@A+3=:=9=9=:=:=:=:=:@@A=?d88=@MM@@;6=Q < Representation and manipulation of classes and class types.=Nb77=Ob78 @@@@@@@=Qc8 8 @@&Modulee=]MN=^MN @=vU@@Б=v=u+ {1 Types} =rNN=sNN)@@@@@@3=q=p=p=q=q=q=q=q@@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@@>=@1Element_exceptioni"A+t_exception@@@ @@>4OO>5OP @@>M@,Element_typej&t_type@@@ @@>DP P>EP P-@@>]@6Element_module_commentkRP.P4>SP.PT@@>k@@@A+Odoc_module.module_element@@@#@@@@>_NaNe @lN+N/>mN+N`@@@@@@@@@>@@#>tNN@@г(t_module>}NN@@3>{>z>z>{>{>{>{>{@;@@@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 @@@% @@@@@?)\\?-]]@@@@?7@0module_type_kind`f;@@@A @@@% @@@@@?-0^ ^?.8`7`[@=$ ! Different kinds of module type. ?;/]]?</]^ @@@@@@@@@?T@n;@@@Av@@@% @@@@@?H<``?IHd6d?@=? " Representation of a module type. ?V;``?W;``@@@@@@@@@?o@@A@@@@@#?^NN?_NN@@г-t_module_type?hNN@@@@@@@#?nNN?oNO@@г/included_module?xNO @@@@@@@#?~OO#?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@@@@@Ǡ>@5@@@@@@+@4PP@5PP@@;@@#Mod@@@#@@@CPP@DPP@@@\ @'Modtype@@@#@@@QPP@@@i @@@A#mmt@@@#@@@@@@@###@_PP@`PP@@г%(t_module@iPP&@@,'@@@@)@#%%@oPP@pPP@@г'-t_module_type@yPP@@.@@@@+@@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@@D>$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&optionA5Q~QA6Q~Q@гu#mmtA>Q~QA?Q~Q@@}°@@@ð @@@@#@|?9ATzy@yy@@@y@y@#uuASQQATQQ@[A@Ш@гy&optionA]QRA^QR@г~*Odoc_typesAhQRAiQR @AlQR AmQR@@@@@@ @@@@#@?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?BPO@OO@@@O@O@#KKBRRBRR@3A@Ш@гO&optionB RRB RS@гT#mmtBRRBRR@@\@@@a @@d@@#@[@B+YX@XX@@@X@X@@AгT+Odoc_moduleB/RYRpB0RYR{@[B3RYR|B4RYR@@@c@@p@+nnB;SSS[B<SSSk@@;@@'mp_name@@B@@@#BHSSBISS@@?* the name BVSSBWSS@@@@@@@Bo@'mp_type@@Aà/4+module_type@@@#@@@#BiSSBjSS@@`* the type BwSSBxSS@@@@@@@B@,mp_type_code@@BO@@@#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@@Ш@г&stringCSTCST@@@@@@#@AC#@@@@@@#C"T0T?@v@@Ш@г0module_type_kindC+T0TBC,T0TR@@@@@@#@A%C@@@@@@@@Aг+Odoc_moduleCDSSSnCESSSy@CHSSSzCISSS@@@Ͱ@@v@+ttCPTTCQTT@@;@@-Module_structBݠ@@@#@@@#@@Cd TTCe TU @A[> A complete module structure. Cr TU Cs 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 WDW W:@A n A module whose type is a with ... constraint. Should appear in interface files only. D W;WPDWW@@@@@@@D&@1Module_constraint?@@@#Ơ@@@#@@D WWD!WW@B ' A module constraint by a module type. D.XXD/XXA@@@@@@@DG@-Module_typeofD@@@#@@D<XBXHD=XBXa@B3 / by now only the code of the module expression DJXBXbDKXBX@@@@@@@Dc@-Module_unpackD$@@@#ɠI@@@#@@D]XXw@BS . code of the expression and module type alias DjXXDkXX@@@@@@@D@@@A+module_kind@@@#@@@@@@~@#!!Dy TTDz 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@#,,EVVEVV@@г.+module_kindE VV/@@50@@@@2CE0/@//@@@/@/@#++EW WEW W@@г-0module_type_kindE(W W!E)W W1@@5@@г2&stringE2W W43@@94@@@@6C)ED43@33@@@3@3@#//ECWWEDWW@@г1+module_kindEMWWENWW@@9Ѱ@@г60module_type_kindEWWW7@@=ڰ8@@@@:CNEi87@77@@@7@7@#33EhXBXJEiXBXW@@г5&stringErXBX[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@Ej:y@@@#@@@#԰FYYFYZ@D 7 Information found in the optional associated comment. FYZFYZN@@@@@@@F5@.m_is_interface@@E@@@#װF(ZOZYF)ZOZp@D . [true] for modules read from interface files F6ZOZqF7ZOZ@@@@@@@FO @&m_file@@F@@@#ڰFB ZZFC ZZ@D9 $ The file the module is defined in. FP ZZFQ ZZ@@@@@@@Fi!@&m_kindA@@@@#ݰF\!ZZF]!Z[@DS The way the module is defined. Fj!Z[Fk!Z[9@@@@@@@F"@%m_locA@7@@@#Fv"[:[DFw"[:[^@@F#@*m_top_depsA@F5!t@@@#@@@#F#[_[iF#[_[@D 4 The toplevels module names this module depends on. F#[_[F#[_[@@@@@@@F$@&m_codeA@FFs@@@#@@@#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$NameG Y[YnG Y[Yr@<G Y[YsGY[Yt@@@D@@G@@#@AEG#?>@>>@@@>@>@#::G"YYG#YY@%A@Ш@г>%TypesG.YYG/YY@EG2YYG3YY@@@M@@P@@#@JE-GHHG@GG@@@G@G@#CCGGYYGHYZ@+A@Ш@гG&optionGQYZ GRYZ@гL$infoGZYZG[YZ@@Tް@@@Y߰ @@\@@#@SEUGpQP@PP@@@P@P@#LLGGoZOZg@8@@Ш@гO$boolGxZOZjGyZOZn@@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 @@}@@# |@rEH po@oo@@@o@o@#kkH $[[H $[[@SA@Ш@гo&optionH$[[H$[[@гt&stringH$[[H$[[@@| @@@  @@@@# @{FH2yx@xx@@@x@x@#ttH1%\\'H2%\\2@\A@Ш@гx&optionH;%\\<H<%\\B@г}&stringHD%\\5HE%\\;@@ Ȱ@@@ ɰ @@@@# @F?HZ@@@@@@#}}xHY&\z\@i@@Ш@г$boolHb&\z\Hc&\z\@@ @@@@# @F\Hw@@@@@@@Aг+Odoc_moduleH{Y'Y:H|Y'YE@HY'YFHY'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@RFIPO@OO@@@O@O@#KKI,]k]}I,]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/)\\@[I2)\\I3)\]@@@c @@ @+  I:0^ ^I;0^ ^%@@;@@2Module_type_structĐHǠ @@@$@@@$@@IN1^G^MIO1^G^x@GE> A complete module signature. I\1^G^yI]1^G^@@@@@@@Iu*@3Module_type_functorŐ @@@$ L@@@$@@Io2^^Ip2^^@Gf > A functor, with its parameter and the rest of its definition I}3^^I~3^_/@@@@@@@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ǐ @@@$ Ix@@@$ @@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 @@@@@@#J 2^^J 2^^@@г0module_parameterJ2^^J2^^@@ @@г0module_type_kindJ2^^@@ @@@@HJ/@@@@@@#J.4_0_8J/4_0_I@@г1module_type_aliasJ84_0_M@@ @@@@H/JJ@@@@@@#JI6__JJ6__@@г0module_type_kindJS6__JT6__@@ װ@@г&stringJ]6__@@ @@@@HTJo@@@@@@#Jn8`7`?Jo8`7`Q@@г&stringJx8`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@JN7+module_type@@@$@@@$J@aaJ@aa@H될 0 [None] means that the module type is abstract. K@aaK@ab!@@@@@@@K1@/mt_is_interface@@J@@@$KAb"b,KAb"bD@I / [true] for modules read from interface files. KAb"bEKAb"by@@@@@@@K52@'mt_file@@J@@@$K(BbzbK)Bbzb@I ) The file the module type is defined in. K6BbzbK7Bbzb@@@@@@@KO3@'mt_kindA@J #@@@$ @@@$"KGCbbKHCbb@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. KUDbc KVFcd@@@@@@@Kn4@&mt_locA@;@@@$%KaGddKbGdd5@@Kz5@@@A -t_module_type@@@$*@@@@ $ !@@ @#àðKp>aa@@@Ш@гƠ$NameK{>aaK|>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@@@Ш@г蠐&stringLBbzbLBbzb@@ @@@@$ @J L&@@@@@@#L%CbbL&Cbb@A@Ш@г점&optionL/CbbL0Cbb@г0module_type_kindL8CbbL9Cbb@@ @@@  @@@@$# @J3LN@@@@@@#LMGdd"LNGdd(@A@Ш@г(locationLWGdd+LXGdd3@@ ۰@@@@$& @@@Aг+Odoc_moduleLe<``Lf<``@Li<``Lj<``@@@ @@ &JbL} $ #@ # #@@@ #@ #@@ 0@LL; {1 Functions for modules} LJdAdELJdAde@@@@@@3LLLLLLLL@  tY   C  X    _@A/module_elementsРLMddLMdd@б%transгLh$boolLMddLMdd@@ @@@&%@@б@г(t_moduleLMddLMdd@@ @@@&4@@гLB$listLMddLMdd@г.module_elementLMddLMdd@@ @@@&K@@@@@@&P @@@"@@&S%@@?7@@@& @@&ZLMdd@@ @LMdd"@Jސ % Access to the elements of a module. LLdgdkLLdgd@@@@@@@M6@@2@JM @@@@@@z.module_modulesѠM PeeM Pee'@б%transгLנ$boolMPee1MPee5@@ @@@&3MMMMMMMM@:@A@@б@гf(t_moduleM*Pee9M+PeeA@@ @@@&@@гL$listM7PeeNM8PeeR@г}(t_moduleMAPeeEMBPeeM@@ @@@&(@@@@@@&- @@@"@@&0%@@As9@@@& @@&7MVPee*@@ @MYPee"@KO ' Access to the submodules of a module. MfOddMgOde@@@@@@@M7@@2@K_Mz@@@@@@W3module_module_typesҠM}SeeM~See@б%transгMH$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_moduleN Vf f;N Vf fC@@ @@@&@@гM$listNVf fWNVf f[@г?/included_moduleN#Vf fGN$Vf fV@@ @@@&(@@@@@@&- @@@"@@&0%@@AU9@@@& @@&7N8Vf f-@@ @N;Vf f"@L1 - Access to the included modules of a module. NHUeeNIUef @@@@@@@Na9@@2@LAN\@@@@@@W6module_type_extensionsԠN_YffN`Yff@б%transгN*$boolNlYffNmYff@@ @@@&3NnNmNmNnNnNnNnNn@r:@A@@б@г(t_moduleN}YffN~Yff@@ @@@&@@г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. O<[ffO=[fg@@@@@@@OU;@@;@M5OP@@@@@@`,module_types֠OS_ggOT_gg@б%transгO$boolO`_ggOa_gg@@ @@@&3ObOaOaObObObObOb@{:@A@@б@г(t_moduleOq_ggOr_gg@@ @@@&@@гN$listO~_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=@@ @@@&@@гOt$listObhhOObhhS@г('t_value%ValuePbhhAPbhhF@ P bhhGP bhhN@@@@@@&1 @@@ @@@&6@@@+@@&9. @@J=B@@@& @@&@P bhh&(@@ @P#bhh+@N # Access to the values of a module. P0aggP1agh @@@@@@@PI=@@;@N)PD@@@@@@`0module_functionsؠPGehhPHehh@б%transгP$boolPTehhPUehh@@ @@@&3PVPUPUPVPVPVPVPV@{:@A@@б@г(t_modulePeehhPfehh@@ @@@&@@гO$listPrehhPsehh@г)'t_value%ValuePehhPehh@ 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?@@ @@@&@@гPh$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 @@@@@@@Q=?@@;@OQ8@@@@@@`.module_classesڠQ;kiiQ<kii@б%transгQ$boolQHkiiQIkii@@ @@@'3QJQIQIQJQJQJQJQJ@{:@A@@б@г(t_moduleQYkiiQZkii@@ @@@'@@гP⠐$listQfkiiQgkii@г%'t_class%ClassQtkiiQukii@ QxkiiQykii@@@@@@'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(@@ @R nij+@P ( Access to the class types of a module. RmiiRmii@@@@@@@R1A@@;@PR,@@@@@@`2module_all_classesܠR/qjjR0qjj@б%transгQ$boolR<qjjR=qjj@@ @@@'3R>R=R=R>R>R>R>R>@{:@A@@б@г(t_moduleRMqjjRNqjj@@ @@@'@@гQ֠$listRZqjjR[qjj@г&'t_class%ClassRhqjjRiqjj@ RlqjjRmqjj@@@@@@'1 @@@ @@@'6@@@+@@'9. @@JB@@@' @@'@Rqjj(@@ @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$boolRwkkSwkk@@ @@@'3SSSSSSSS@La:@A@@б@гL(t_moduleSwkkSwkk@@ @@@'@@гR$listSwkkSwkk@В@г\0module_parameterS+wkkS,wkk@@ @@@',@@@гR&optionS:wkkS;wkk@гQY$textSDwkkSEwkk@@ @@@'E@@@@@@' J @@@@&@ @@'!Q+@@@@ @@@'#VS[wkk>@@@L@@'$ZOA@@kc@@@'% @@'&aSfwkkI@@ @SiwkkL@Q_ ? The list of couples (module parameter, optional description). SvvkNkRSwvkNk@@@@@@@SD@@\@QoS@@@@@@/module_commentsߠSzll$Szll3@б%transгSX$boolSzll=SzllA@@ @@@''3SSSSSSSS@:@A@@б@г砐(t_moduleSzllDSzllL@@ @@@'(@@гS4$listSzllUSzllY@гQנ$textSzllPSzllT@@ @@@')(@@@@@@'+- @@@"@@',0%@@A9@@@'- @@'.7Szll6@@ @Szll "@QА> The list of module comments. SykkSykl@@@@@@@TE@@2@QS@@@@@@WT T {1 Functions for module types} T|l[l_T|l[l@@@@@@3TTTTTTTT@i1@A4module_type_elementsTllTll@б%transгSܠ$boolTllTll@@ @@@'/@@б@гY-t_module_typeT-llT.ll@@ @@@'0+@@гS$listT:lmT;lm @г.module_elementTDllTElm@@ @@@'1B@@@@@@'3G @@@"@@'4J%@@?v7@@@'5 @@'6QTYll@@ @T\ll"@RR * Access to the elements of a module type. Ti~llTj~ll@@@@@@@TF@@2@RbT}@@@@@@q3module_type_modulesTmCmKTmCm^@б%transгTK$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@@ @@@'?3UTTUUUUU@r:@A@@б@г;-t_module_typeUmmUmn@@ @@@'@@@гT$listUmnUmn@гR-t_module_typeU&mn U'mn@@ @@@'A(@@@@@@'C- @@@"@@'D0%@@AX9@@@'E @@'F7U;mm@@ @U>mm"@S4 . Access to the module types of a module type. UKmmULmm@@@@@@@UdH@@2@SDU_@@@@@@W@@@@@@`5module_type_functionsWAppWBpp@б%transгW $boolWNppWOpp@@ @@@'g3WPWOWOWPWPWPWPWP@{:@A@@б@г-t_module_typeW_ppW`pp@@ @@@'h@@гV蠐$listWlppWmpp@г0't_value%ValueWzppW{pp@ W~ppWpp@@@@@@'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@@гWb$listWqqaWqqe@г0't_value%ValueWqqSWqqX@ WqqYWqq`@@@@@@'q1 @@@ @@@'s6@@@+@@'t9. @@J+B@@@'u @@'v@Xqq4(@@ @Xqq+@V 3 Access to non-functional values of a module type. XppXpq@@@@@@@X7N@@;@VX2@@@@@@`3module_type_classesX5qqX6qq@б%transгX$boolXBqqXCqq@@ @@@'w3XDXCXCXDXDXDXDXD@{:@A@@б@г-t_module_typeXSqqXTqq@@ @@@'x@@гWܠ$listX`qqXaqq@г, 't_class%ClassXnqqXoqq@ XrqqXsqq@@@@@@'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гXz$boolXr"rKXr"rO@@ @@@'3XXXXXXXX@{:@A@@б@г-t_module_typeXr"rRXr"r_@@ @@@'@@гXV$listXr"rvXr"rz@г,,t_class_type%ClassXr"rcXr"rh@ Xr"riXr"ru@@@@@@'1 @@@ @@@'6@@@+@@'9. @@J B@@@' @@'@Yr"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$boolY6rsY7rs @@ @@@'3Y8Y7Y7Y8Y8Y8Y8Y8@{:@A@@б@гs-t_module_typeYGrs YHrs@@ @@@'@@гXР$listYTrs+YUrs/@г-'t_class%ClassYbrsYcrs"@ Yfrs#Ygrs*@@@@@@'1 @@@ @@@'6@@@+@@'9. @@J B@@@' @@'@Y|rr(@@ @Yrr+@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@@гY{$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_typeZ stZ st@@ @@@'@@гY$listZstDZstH@В@гV0module_parameterZ%st$Z&st4@@ @@@',@@@гY&optionZ4st<Z5stB@гXS$textZ>st7Z?st;@@ @@@'E@@@@@@'J @@@@&@ @@'Q+@@@@ @@@'VZUst#>@@@L@@'ZOA@@k!}c@@@' @@'aZ`stI@@ @ZcssL@XY ? The list of couples (module parameter, optional description). ZpssZqss@@@@@@@ZS@@\@XiZ@@@@@@4module_type_commentsZtrtzZtrt@б%transгZR$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[B[A[A[B[B[B[B[B@@A[GNN[Htt@@Y>[Y > Representation and manipulation of modules and module types. [VMM[WMM@@@@@@@[YMM@@[n[m ! {2 Getting strings from values} [jtt[ktt@@@@@@3[i[h[h[i[i[i[i[i@@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\1\0\0\1\1\1\1\1@fA@A @@б@гI (Variance!t%Types\Hvv\Ivw@ \Lvw\Mvw @@\Qvw\Rvw@ @@@@@'#@@г\)&string\_vw\`vw@@ @@@'0@@@@@'3 @@@9@@'6A @@@\mvv@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.\zvv\{vv@@@@@@@\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@@@@@@@]7Y@@@[]2@@@@@@13string_of_type_list]5xx]6xx@б#parг]$bool]Bxx]Cxx@@ @@@'3]D]C]C]D]D]D]D]D@Lj:@A@@б@г]&string]Sxx]Txx@@ @@@'@@б@г\ޠ$list]bxx]cxx@гJ8)type_expr%Types]pxx]qxx@ ]txx]uxx@@@@@@'3 @@@ @@@'8@@г]Q&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^6yzE^7yzK@@ @@@'@@@@@'@@@^Ayy @\7 j This function returns a string to represent the list of type parameters for the given type extension. ^Nyy^Oyy@@@@@@@^g\@@@\G^b@@@@@@1?string_of_class_type_param_list^ezz^fzz@б@г]점$list^pz{^qz{@гKF)type_expr%Types^~z{^z{@ ^z{^z{@@@@@@'3^^^^^^^^@]{K@A @@@" @@@'@@г^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. _3{ { _4|_|a@@@@@@@_L^@@+@],_G@@@@@@j4string_of_class_type_J}w}{_K}w}@б(completeг_$bool_W}w}_X}w}@@ @@@'3_Y_X_X_Y_Y_Y_Y_Y@:@A@@б@гL4*class_type%Types_l}w}_m}w}@ _p}w}_q}w}@@@@@@' @@г_H&string_~}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. `0~~`1~~3@@@@@@@`Ia@@@^)`D@@@@@@1.string_of_type`G~~`H~~@б@гA&t_type$Type`V~~`W~~@ `Z~~`[~~@@@@@@'3`]`\`\`]`]`]`]`]@ShA@A @@г`4&string`j~~`k~~@@ @@@'@@@@@'@@@`u~~ @^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@@ @@@'@@@@@'@@@a00 @_ 8 @return a string to describe the given type extension. a~~a~/@@@@@@@a5d@@@_a0@@@@@@13string_of_exceptiona3a4@б@гEK+t_exception)ExceptionaBaC@ aFaG@@@@@@'3aIaHaHaIaIaIaIaI@SqA@A @@гa &stringaVaW@@ @@@'@@@@@'@@@aa @_W 3 @return a string to describe the given exception. anuuaou@@@@@@@ae@@@_ga@@@@@@1/string_of_valuea"a1@б@г:('t_value%Valuea4a9@ a:aA@@@@@@'3aaaaaaaa@SqA@A @@гar&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%Valueb8 b9@ b<b=@@@@@@'3b?b>b>b?b?b?b?b?@SqA@A @@гb&stringbLbM"@@ @@@'@@@@@'@@@bW @`M 0 @return a string to describe the given method. bdbe@@@@@@@b}h@@@`]bx@@@@@@1bb= {2 Miscellaneous functions} b$$b$F@@@@@@3bbbbbbbb@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$textcc@@ @@@'"@@@@@ @@') @@@/ @@',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].c!kkc"E@@@@@@@c:j@@"@ac5@@@@@@K5text_no_title_no_listc8 c9 @б@гaX$textcC cD @@ @@@'3cEcDcDcEcEcEcEcE@dy8@A@@гag$textcR cS @@ @@@'@@@@@'@@@c]  @aS 4 Return the given [text] without any title or list. cj ck @@@@@@@ck@@@acc~@@@@@@1+text_concatcc@б@г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@@@ad@@@@@@d2get_titles_in_textd6:d6L@б@гb&$textd6Od6S@@ @@@(3dddddddd@}8@A@@гc$listd 6td!6x@В@гd#intd.6Xd/6[@@ @@@(@@@гc&optiond=6ed>6k@гd&stringdG6^dH6d@@ @@@( 6@@@@@@( ; @@@гbp$textd[6nd\6r@@ @@@( J@@@@5@@ @@( S<@@@Q @@@(Xdo6WO@@@_@@(\bR@@@du66U@bk b Return the list of titles in a [text]. A title is a title level, an optional label and a text.dd5@@@@@@@dm@@e@b{d@@@@@@{2create_index_listsdd@б@гd $listdd@А!a@(g@(3dddddddd@>@Add@@@ @@@( @@б@б@А!add@@гd&stringdd@@ @@@( @@@(@@(#@@гdV$listdd@гd`$listdd@А!a@;dd@@@F@@@(B @@@@@@(G @@@)@@(Jd @@@I@@(NL#@@@e&@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 zzev@@@@@@@e&n@@6@ce!@@@@@@m-remove_option e$e%@б@гQ)type_expr%Typese3e4@ e7e8@@@@@@(3e:e9e9e:e:e:e:e:@A@A @@гR)type_expr%TypeseKeL@ eOeP@@@@@@( @@@@@( & @@@e[ @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.ehei@@@@@@@eo@@@cae|@@@@@@:+is_optional e! e!@б@г(Asttypes)arg_label(Asttypese!e!"@ e!#e!,@@@@@@(!3eeeeeeee@^|C@A @@гeb$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%@@ @@@(%@@@@@(&@@@f% @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$Namef4*nf5*n@ f8*nf9*n@@@@@@('3f;f:f:f;f;f;f;f;@SqA@A @@гU!t$NamefL*nfM*n@ fP*nfQ*n@@@@@@(( @@@@@()& @@@f\*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})fi'fj)3m@@@@@@@fr@@@dbf}@@@@@@:'verbose f-f-@б@гfU&stringf-f-@@ @@@(*3ffffffff@Sq8@A@@гfG$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 @@@g45@e* F A flag to indicate whether ocamldoc warnings must be printed or not. gA4gB4@@@@@@@gZu@@)@e:gU@@@@@@&&errorsgX;gY;@гe#refga;gb;@гg>#intgk;gl;@@ @@@(33gmglglgmgmgmgmgm@Gd@@A@@@ @@@(5 @@@gz;@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. h=h=@@@@@@@hw@@'@eh@@@@@@d.apply_if_equalhChC@б@б@А!a@(Ig@(C3h#h"h"h#h#h#h#h#@{6@Ah)Ch*C@@А!a h/Ch0C@@@@@(D  @@б@А!ah:Ch;C@@б@А!a hBChCC@@А!a&!hHChIC@@@++@@(E& @@@.@@(F)@@@!@@(G,hSC @@@hVC@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.hc@..hdB@@@@@@@h|x@@@f\hw@@@@@@L.text_of_stringhzHz~h{Hz@б@гhO&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<@@@@@@@iz@@@fi @@@@@@1.info_of_stringi T7;i T7I@б@гh᠐&stringiT7LiT7R@@ @@@(P3iiiiiiii@J_8@A@@г]$infoi&T7Vi'T7Z@@ @@@(Q@@@@@(R@@@i1T77 @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@@@@@@@iW{@@@g7iR@@@@@@14info_of_comment_fileiU]iV]@б@гhܠ$listi`]ia]@г,(t_module&Modulein]io]@ ir]is]@@@@@@)3iuititiuiuiuiuiu@]rK@A @@@" @@@)@@б@гiS&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_elementhj"ej#e@@;@@*Res_module,(t_module@@@)@@j3fj4f@@jL@/Res_module_type,-t_module_type@@@)@@jCgjDg-@@j\@)Res_class='t_class@@@)@@jSh.6jTh.R@@jl@.Res_class_type>,t_class_type@@@)@@jciS[jdiS@@j|@)Res_valueC 't_value@@@)@@jsjjtj@@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@@@*@@@@ke @@@@k)~@@#kf@@г&Modulek#fk$f@k'f@@@3k&k%k%k&k&k&k&k&@ShA;@@@A@@@*@)@@@@%@@@#@A@@@@@#k:gk;g@@г&ModulekFgkGg@ kJg @@@# @@@@ @#kQh.8kRh.A@@г %Classk]h.Ek^h.J@kah.K@@@:@@@@@#khiS]kiiSk@@г%ClassktiSokuiSt@kxiSu@@@Q@@@@@#kjkj@ @г%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@Alod?@@@@H۰A@@@@C@#??l pl p@3@гA&stringlplp@@I@@гF$textlpG@@MH@@@@J@#FFl#ql$q@6@гH$Typel/ql0q@Ol3ql4q@@@W @@гR$Typel@qlAq@YlDqW@X@@`Y@@@@[@#WWlKrlLr@G@гY$TypelWrlXr@`l[r l\r@@@h5@@гc$Typelhrlir@jllrh@i@@qEj@@@@l@@Aгh+Odoc_searchlxelye@ml|el}e@@@wV@@p@@3l}l|l|l}l}l}l}l}@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@б@гle$listlxlx@г/(t_module&Modulelxlx@ lx lx@@@@@@+I3llllllll@F|v@A @@@" @@@+K@@б@г#Str®exp#Strmxmx@ mxmx$@@@@@@,! @@г-search_resultm*x(m+x5@@ @@@,.@@@@@,1@@@1@@,4? @@@m8x@k. J Research of the elements whose name matches the given regular expression.mEwmFw@@@@@@@m^@@@k>mY@@@@@@S&valuesem\{~m]{~@б@гl㠐$listmg{~mh{~@г0(t_module&Modulemu{~mv{~@ my{~mz{~@@@@@@,3m|m{m{m|m|m|m|m|@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. n7}n8}@@@@@@@nP@@3@l0nK@@@@@@N*exceptionsgnNnO@б@гmՠ$listnYnZ@г1(t_module&Modulengnh@ nknl@@@@@@,3nnnmnmnnnnnnnnnn@zK@A @@@" @@@,@@гm$listnn@г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@б@гnN$listn;]n;a@г1(t_module&Modulen;Mn;S@ n;Tn;\@@@@@@,3nnnnnnnn@zK@A @@@" @@@,@@гnu$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*:@@@@@@@oB@@3@m"o=@@@@@@N*attributesio@oA@б@гnǠ$listoKoL@г1(t_module&ModuleoYoZ@ o]o^@@@@@@,3o`o_o_o`o`o`o`o`@zK@A @@@" @@@,@@гn$listor os @гH+t_attribute%Valueoo@ 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 @@@" @@@,@@гog$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\@@@@@@@p4@@3@np/@@@@@@N'classeskp2p3@б@гo$listp= p>@г2(t_module&ModulepKpL@ pOpP @@@@@@,3pRpQpQpRpRpRpRpR@zK@A @@@" @@@,@@гoࠐ$listpd pe$@гD't_class%Classprps@ pvpw@@@@@@,' @@@ @@@,,@@@,@@,/: @@@p#@n} < A function to search all the classes in a list of modules. pp@@@@@@@p@@3@np@@@@@@N+class_typeslpr|pr@б@гp2$listprpr@г3e(t_module&Moduleprpr@ prpr@@@@@@,3pppppppp@zK@A @@@" @@@,@@гpY$listprpr@гD,t_class_type%Classprpr@ prpr@@@@@@,' @@@ @@@,,@@@,@@,/: @@@qrx#@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/'q0+@г3(t_module&Moduleq=q>@ qAqB&@@@@@@,3qDqCqCqDqDqDqDqD@zK@A @@@" @@@,@@гpҠ$listqV?qWC@г4(t_module&Moduleqd/qe5@ qh6qi>@@@@@@,' @@@ @@@,,@@@,@@,/: @@@qy #@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 @@@" @@@,@@гqK$listqq@г4~-t_module_type&Moduleqq@ qq@@@@@@,' @@@ @@@,,@@@,@@,/: @@@q#@o萠 A A function to search all the module types in a list of modules. qEKrE@@@@@@@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 r<bggr=bg@@@@@@@r?c@@$ScansjrKrL@rd@@Б/A@'scannerrY$.rZ$5@rkqkpkБ@*scan_valueA@K't_value@@@-r+@@@-@@-@@-m@,-scan_type_preA@S&t_type@@@-rQ@@@-@@-@@-m@,/scan_type_constA@S&t_type@@@-@S3variant_constructor@@@-r]@@@-@@-@@-@@-m@,2scan_type_recfieldA@T&t_type@@@-@T,record_field@@@-rz@@@-@@-@@-@@-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@@@-s7@@@-@@-@@-m@-*2scan_class_commentA@q@@@-sJ@@@-@@-@@-m@-/.scan_class_preA@GO't_class@@@.sp@@@.@@.@@-m@-43scan_class_elementsA@Gd't_class@@@. st@@@. @@.@@.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@@@.btf@@@.a@@.`@@._m@-p9scan_module_type_elementsA@7\-t_module_type@@@.jtj@@@.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@,ߐ@@,@@@@uc$(ud@@@@u|@ #@@@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<@A@@@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 xx@@@@@@@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.x;x<@@@@@@@AAШ@б@гݠ)ExtensionxMxN@xQxR@@@@@@-g @@гꠐ$unitx^x_@@@@@-s@@t@@uxf@@v\xw A This method scans the constructors of the given type extension. xt=Dxu=@@@@@@@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%ClassyWwyW|@\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%Classy;y<@y?y@@@@@@@.U @@г$unityLyM @@@@@.a@@b@@cyT@@wJye 4 This method scans the elements of the given class. ybyc@@@@@@@AAШ@б@г%Classytyu@yxyy@@@@@@.  @@г$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_@@@@@@.  @@г$boolz_z_@@@@@.@@@@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 @@г"$unitz:'z;+@@*@@@.$O@@8P@@9QzB@@x8zS 9 This method scans the elements of the given class type. zPzQ@@@@@@@{)B@@@@@.D=@@>@@?{0 @@y&{A 5 This method scans the elements of the given module. {>{?@@@@@@@AAШ@б@гՠ&Module{P {Q@ܰ{T{U@@@@@@.Kj @@г⠐$unit{a{b#@@@@@.Lv@@w@@x{i@@y_{z 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.{wDK{x@@@@@@@{{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|B;d|C;q@@@@@@.kX @@г~$unit|O;u|P;y@@@@@.ld@@e@@f|W;C@@zM|h 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.|ez|f:@@@@@@@|z|y7 Main scanning method. |v{|w{@@@@@@@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}@@@@9@@@6A@@3}}}}}}}}@ F#@; F@B@? H#@> I@D@A K#@ CA@ @ ?@@@/ >@@@/@@/@@/ ;A@ 8 7@@@/ 6@@@/@@/@@/ 3A@ 0 /@@@/@ . -@@@/ ,@@@/@@/@@/@@/ )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 zA@ w@@@/ v@@@/@@/@@/ sA@ p o@@@/ n@@@/@@/@@/ kA@ h g@@@/ f@@@/@@/@@/ cA@ ` _@@@/ ^@@@/@@/@@/ [A@ X W V@@@/@@@/ U@@@/@@/@@/~;@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/ R?@@/?@@ 9@A3@ @A@AB @A@ @A@A @A@ 5@A@ABC s@A@ O@A@A e@A@B ^@AP@CD t@A^@ $@A.@A :@A<@ @Aq@AB 0@A@ @A@ @A7@AB #@A@ @AH@A @Ao@ ð@AY@A ٰ@Ag@BCDEF @A@ ް@A@ @A @AB @A.@ +@A=@AC @A@ ʰ@A@A @A@BDG: @@@/=@ @  %#@ 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@ 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@ Z Y@@@0 X@@@0@@0@@0 UA@ R@@@0  Q@@@0 @@0 @@0  NA@ K J@@@0  I@@@0@@0@@0 FA@ C B@@@0 A@@@0@@0@@0 >A@ ; :@@@0 9@@@0@@/@@/ 6A@ 3 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@ [@A@AB @A@ t@A@A @A@ @A@ABC N@A@ *@A@A @@A@B9@AP@CDO@A^@ @A.@A@A<@ Ͱ@Aq@AB @A@ @A@ l@A7@AB @A@ @AH@A ð@Ao@ @AY@A @Ag@BCDEF{@A@@A@ ٰ@A @AB @A.@@A=@AC԰@A@@A@A@A@BDG;@@@AAAAAAAsA`A~MAs:Ah'A]ARAG A< A2 A' A A A A mA ZA IA 6A #A A A A A A@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/@/ې@@/@@@@ ;@@@ 8@ ;@ 8@;@@@AA@@@@11@@@10@@1/@@1. A@  @@@1- @@@1,@@1+@@1*3A@0@@@1)/@@@1(@@1'@@1&A@@@@1%@@@1$@@1#@@1"9A@65@@@1!4@@@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 AA@>=@@@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@87@@@0@65@@@04@@@0@@0@@0@@0lA@ih@@@0g@@@0@@0@@0A@@@@0@@@0@@0@@0A@@@@0@@@0@@0@@0A@@@@0@@@0@@0@@0eA@ba@@@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@@@@ @@@ @A343344444@D@A9 :@@0K # Scanning of collected information HI@@@@@@@K@@#DepvlW:AX:D@p@@Б6kernel_deps_of_moduleste f @б@г점$listp q @гF(t_module&Module~  @   @@@@@@123@D@3A@4A@5A@@VU@UU@@@U@U@RO@A@@@4@@@14$1@@гV$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@@б@гr$listFJ@гeG&t_type$Type:>@ ? E@@@@@@18$ @@@ @@@1:)@@г$listlp@В@гep&t_type$Type-O.S@ 1T2Z@@@@@@1;M @@@г$listAeBi@гs!t$NameO^Pb@ ScTd@@@@@@1<o @@@ @@@1>t@@@@/@ @@1?{9fj@@@S @@@1AlNQ@@@`@@1BlT@@K@@@1C @@1Dw)\@@ @z_@p  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 @@@<@@T@@@@ (out_fileyG-5H-=@г#refP-GQ-J@г$&stringZ-@[-F@@ @@@1K3\[[\\\\\@.K'@A@@@ @@@1M @@@i-1@_ ; The file used by the generators outputting only one file. vw,@@@@@@@@@)@o@@@@@@&'verbosez lt l{@г#ref l l@г^$bool l~ l@@ @@@1N3@Gd@@A@@@ @@@1P @@@ lp@6 Verbose mode or not. LPLk@@@@@@@@@)@А@@@@@@&*target_dir{##@гd#ref##@г&string##@@ @@@1Q3@Gd@@A@@@ @@@1S @@@#@될 1 The directory where files have to be generated. ""@@@@@@@@@)@@@@@@@&%title|&)1&)6@г#ref"&)G#&)J@г&option,&)@-&)F@г&string6&)97&)?@@ @@@1T387788888@QnJ@A@@@ @@@1V @@@(@@@1X %@@@J&)-(@@ ; The optional title to use in the generated documentation. W%X%(@@@@@@@p@@8@Pk@@@@@@+*intro_file}n)o)@г#refw)x)@гࠐ&option))@гU&string))@@ @@@1Y3@V}J@A@@@ @@@1[ @@@(@@@1] %@@@)(@ < The optional file whose content can be used as intro text. (LP(L@@@@@@@@@8@@@@@@@+(with_toc~,,@гT#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. 8.$(9.$e@@@@@@@Q@@)@1L@@@@@@&+with_headerO2P2@г#refX2Y2@г $boolb2c2@@ @@@1d3dccddddd@Gd@@A@@@ @@@1f @@@q2@g 7 The flag which indicates if we must generate a header.~11@@@@@@@@@)@w@@@@@@&,with_trailer5(05(<@г&#ref5(D5(G@гf$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гƠ$listJ=:UK=:Y@г&stringT=:NU=:T@@ @@@1m:@@@@@@1o? @@б3hidden_include_dirsг栐$listj>]k>]@г>&stringt>]zu>]@@ @@@1pZ@@@@@@1r_ @@б&labelsгH$bool??@@ @@@1sp@@б,sort_modulesгY$bool@@@@ @@@1t@@б'no_stopгj$boolAA@@ @@@1u@@б$initг9$listBB@гJj(t_module+Odoc_moduleBB@ BB@@@@@@1v @@@ @@@1x@@б@г`$listCBCF@г+Odoc_global+source_file+Odoc_globalC*C5@ C6CA@@@@@@2 ߰ @@@"@@@2@@г$list DJn DJr@гK(t_module&ModuleDJ^DJd@ DJeDJm@@@@@@2 @@@ @@@2 @@@,@@2 8 @@zPP[@@@2 @@23B(@@PX@@@2@@2;A0@@P`@@@2@@2#C@8@@Ph@@@2@@2+K?@@@Pp@@@2@@23S>]eH@@Px@@@2@@2;[=:@P@@`P'@@@2@@2 Cc< X@@ @f;[@\ 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. s8MMt:@@@@@@@@@k@l@@@@@@c,dump_modulesHH@б@г_&stringHH@@ @@@2!3@|8@A@@б@г"$listHH@гKS(t_module+Odoc_moduleHH@ HH@@@@@@2"$ @@@ @@@2$)@@гx$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@б@гҠ&stringLZm LZs@@ @@@2(3        @t8@A@@г$listLZLZ@гK(t_module+Odoc_module%LZw&LZ@ )LZ*LZ@@@@@@2)" @@@ @@@2+'@@@-@@2,*0 @@@:LZZ#@0 M Load of a list of modules from a file. @raise Failure if an error occurs.GJHK2Y@@@@@@@`@@3@@[@@@@@@I@A@B@uB@tnA@B@rlA@A@A@YSA@~~A@{ {A@zz@y@wwkwy@@w@ss@sw@@s@nmns@@n@kkkkn@@k@c4ac k@@c@^B]^.c@@^(@MGLM3^"@@M-@/B./.M'@@..@.s.@--@--@-_,@,,@,,U@,5+@++t@+T+ @**@**}@*]*-@* )@))@)w)G@)'(@((@((W@($'@''@'~'W@'7&@&&C@&#%@%%a@%A%@$$@$$f@$F$@##@##@#t#P@#0"@""x@"X"1@"!@!!@!!2@! @ @ @@@J@@@C/@@@@@@@`@@@3@@A@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml CC@ H DD3@ H Maxence Guesdon, projet Cristal, INRIA Rocquencourt E44E4@ H  F F@ 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. 0LOO1LO@ H 6M7M@ H************************************************************************* Location of elements in implementation and interface files. |:* implementation location |C5* 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).yJ 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.wN0* {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. ux 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].td -* 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 s4 8* Information found in the optional associated comment. r <* The type of the extension q '* Access to the extensions in a group. pp 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. ls5* 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. kj;* Name of the constructor. jࠠ 2* Optional description in the associated comment. j?* The various kinds of a type. in ** 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. gV 8* Information found in the optional associated comment. g: $* type parameters: (type, variance) g-* Type kind. f:* Private or public type. fࠠ Q* Representation and manipulation of values, class attributes and class methods. `6=* Representation of a value. d7>* 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. dp '* Representation of a class attribute. b >* an attribute has almost all the same information as a value bꠠ &* [true] if the attribute is mutable. bӠ &* [true] if the attribute is virtual. b $* Representation of a class method. a :* a method has almost all the same information as a value b "* [true] if the method is private.a頠 #* [true] if the method is virtual. aҠ K* Return [true] if the value is a function, i.e. it has a functional type. ` C* Access to the description associated to the given parameter name.` =* Representation and manipulation of classes and class types.On,* {1 Types} `K ,* 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. Yf * The way the class is defined. YO?* The parameters of the class. Y1 ** Complete name of the target class type. WŠ 5* The target t_class or t_class_type, if we found it.W ,* The type parameters. FIXME : use strings? W 0* A class type eventually applied to type args. V "* Representation of a class type. ^=* Complete name of the type. V< 8* Information found in the optional associated comment. V 3* Type parameters. U &* [true] if the class type is virtual Uݠ %* The way the class type is defined. UƠ0* {1 Functions} T %* Access to the elements of a class. T: ** Access to the list of class attributes. Sà J* Access to the description associated to the given class parameter name. S\ $* Access to the methods of a class. R堠 %* Access to the comments of a class. Rw ** 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. PF ?* 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 Lf &* 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. Ix (* A module constraint by a module type. IZ 0* by now only the code of the module expression IA /* 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 Gg %* The file the module is defined in. GP !* The way the module is defined. G9 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 DA 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. Nt $* 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} AW &* 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. =P /* Access to non-functional values of a module. <٠ %* Access to the classes of a module.  /* Access to the module types of a module type. 8Р 3* Access to the included modules of a module type. 8b -* Access to the exceptions of a module type. 7렠 (* Access to the types of a module type. 7t )* Access to the values of a module type. 6 0* Access to functional values of a module type. 6 4* Access to non-functional values of a module type. 6 ** Access to the classes of a module type. 5 .* Access to the class types of a module type. 5! W* The list of classes defined in this module type and all its submodules and functors. 4 (* [true] if the module type is functor. 4d @* The list of couples (module parameter, optional description). 3̠?* The list of module comments. 3^ "* {2 Getting strings from values} 2ؠ * 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).2A * [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.1Π A* This function returns a string representing a Types.type_expr. 1 f* @return a string to display the parameters of the given class, in the same form as the compiler. 10 b* This function returns a string to represent the given list of types, with a given separator. 0 a* This function returns a string to represent the list of type parameters for the given type. 0X k* This function returns a string to represent the list of type parameters for the given type extension. 0 * This function returns a string to represent the given list of type parameters of a class or class type, with a given separator. / =* 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. /* * 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]. . <* Get a string from a text. .| '* Get a string from an info structure. .6 /* @return a string to describe the given type. -砠 9* @return a string to describe the given type extension. -P 4* @return a string to describe the given exception. - 0* @return a string to describe the given value. , 4* @return a string to describe the given attribute. ,c 1* @return a string to describe the given method. ,>* {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})(0 ;* 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. 'a * 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.&H * [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 %v 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. 0 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. D 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. X 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. y * 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.C3* Scan of a class. 5 $* 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.d8* Scan of a class type. V )* 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. w %* Scan of a comment inside a module. H * 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. i * 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. 3 ;* 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. u?* 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)-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 =/builds/workspace/precheck/flambda/false/label/ocaml-linux-32 <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ŠO0z8PVVb@)>)u=Q=ݰ]E\koo@@@n,m@&<%(7E7dtd~ww"@  JO Nݰkii@]A\Sq)p@9:$k1j|ߓ|3@@++@F+Eiinm~F@@ŐA0ED@67n{n{;{@==zb]@klxx@#I#&'.M.R@kϕjm7m@F2EPO@  1($(^@ML@HOH"Ұ\@vϕv)@  ްYYK@12kb[iBhA@dwd,@*Ȑ+ABbaxacb@@  )""ts_@(ސ)1۰@igqqM@ZZee@6n6аNڕN@S?Qk̕j@ Ð!-ggS@^]I}~L@QP@c]_uBu@SR+k@BCRMH߰ߖ@@@%̓E@JI RN+@wBvİY@|9ِ:D~ 4@@ll@ROP0@&%bbQ@NNUwU@+Ր,@JݕIrrѓ@++аtt@]ƕ\@ZZ*uv5@-#-@GғG?KJh@&%@@1Ɛ2@@,@W_WʰtYs@@ʓ_?@@dVdddq@A@9)9y`x@\^\``8xx0@SQ6edw@ljװz)m@t@88>@434zߒ{@@==i@@@Β@R֒L'n9m@//Ȱ( @@@FEMLS-Phwv@da"@c,b@\\lv:@@ggw@U@  @( (G@@uv @s$sI@@q!qj@VېW={?{I@ ! X01<#@iǒj{0{@'&+@nRn@@*+QmQ$@@NMT5R@?P?SۓR+@_^A@nnU@5g5M@<=NS͒Tb>a@TiRsbsQ@@~!~j@LFK'OO)@R Ӑ `K_@j|iqqax wz@D~D@@`!_@:=:@@'&d1]:hvhmǒn @XYb@eeذ"~ϰE@AIAXX@@jFi9v@@{zɰz@)͐*44°9k9ְppvv@cEVC@jԕi@@'ʓ&@5q5@346^ݕ]@-.ABZdĒc@IHu@ g (>'?@@@@ 0 xx@EAE[;Zdfeɰ3l@@[[@qp@$~$``+@PeP@  8}}߰c@u/td@@fœ@[[@@@NM1@YݐZ>@m0l%s<r@"#&'Փ&SH<cЕc{@@3C3@Q@LK_@/}/p'o{A{@@DEz2y}{`z@ml@q>pӰurt@i*h@@GFL*J԰LK^@@('L@@pp@'(II@J`J8xx@6777I@a@@/*/@<=PU9S]]Bד@kj||̕@@I͓IK@@4ݐ5 cb}Ő~@@$$r@@)(!tzt@,<,vH7G@>Ԑ?4qƕq{@qq@==NۓM@FRFtsv@Đ{@A5AUKS_l^[@('ڰ+T+hh2{}{@U7S@&&@@a `iai@WX$@TS;@!"O23.VݐWH@#ϐ$9S0Sss\@QǕQ@T>JE@@)̐*0IœI<vuu]@  ϕ@22^o n=@sti@ONްvhu@@VV@USS@@bb2@ON@  ]_];cŕcX@@BBpUqSѰ@hȕhg@`H_q{’y{zZ{0@==p@MLNMؕL2@HGذ&W@D Dvwwu@@@236eq] @11@!!01\o[@|ߓ|@**Ѱi*h@33@MFL @lIknm@@ȕҰ.X@)(@"#JPN@M{L0@f dYk@272z@@P@@