Caml1999I037Ѭ$)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@@@@@@pp@@A@)loc_inter@@!t@@@@@@q" qA@@B@@@A(location@@@@@@@or\_@@@@#@@A@)dummy_loc?@@@@ uzz!uz@@0C@@Ӡ$Name@!t;@@@A@@@u@@@@5z6z@@@@ED@A@&simple@@@@v@@w@@@x@@y@I}J}*@@YE@@&concat@@@@z@@{@@@@|@@}@@@~@@@@@csyds@@sF@@%depth@.@@@@@@@@@@@wx2@@G@@,get_relative@B@@@@@@I@@@@@L@@@@@@@@@@H@@0get_relative_opt@\@@@@@@c@@@@@f@@@@@@@@ /@@I@@&father@v@@@@@y@@@@@@@@J@@@@x@K@@@Ӡ)Parameter@+simple_name;@@'sn_name@@F@@@Q@@M@'sn_typeA@@%Types)type_expr@@@P@@O@'sn_textBA@@@@N@@@O @@ P@@@A.Odoc_parameter+simple_name@@@R@@@@_c @@@@L@A@*param_info;@@+Simple_nameNL@@@V@@ @@+R@%TupleO @@@T@@@UM)type_expr@@@S@@56@@@ES@@@A;*param_info@@@W@@@@@ @@@@OQ@A@)parameter;@@@A!@@@X@@@@MnrNn@@@@]T@A@-complete_name@@@@Y@@Z@@@[@@\@bc-@@rU@@#typ@@@@]@@^)type_expr@@@_@@`@xW[yW@@V@@%names@+@@@a@@bp@@@c@@@d@@e@@@W@@,desc_by_name@D@@@f@@g@@@@h@@iNQ@@@j@@@k@@l@@m@@@X@@,type_by_name@d@@@n@@o@5@@@p@@q)type_expr@@@r@@s@@t@JNJ@@Y@@@@@Z@@@Ӡ)Extension@,private_flag;@@'PrivateX@@!@@\@&PublicY@@"*@@]@@@A.Odoc_extension,private_flag@@@-@@@@ @@A@ [@A@/extension_alias;@@'xa_namer@@!t@@@0@@!a@%xa_xtsA@7t_extension_constructor@@@.@@@/$5?%5o@@4b@@@A3/extension_alias@@@1@@@@/0@@@@?^@A@;@@'xt_namet@@0!t@@@;@A@@Pc@'xt_args~@@)Odoc_type0constructor_args@@@:P#QG@@`d@&xt_ret@@z)type_expr@@@8@@@9cHRdHr@@se@1xt_type_extension@@0t_type_extension@@@7qr@@f@(xt_alias@@}@@@5@@@6    6@@g@&xt_locA@(location@@@4 i s i @@h@'xt_textA@=#$info@@@2@@@3    @@i@@@A7t_extension_constructor@@@<@@@@  @@@@_@B@F;@@'te_infoA@_@@@F@@@G!@!J!@!i@@j@,te_type_name@@!t@@@E!!!!@@k@2te_type_parameters@@)type_expr@@@C@@@D!!!"@@l@*te_private@@@@@B"")""D@@m@/te_constructorsA@ߠ@@@@@@@A"E"O"E"@@n@&te_locA@@@@? "" ""@@o@'te_codeA@@@@=@@@>""""@@+p@@@A*0t_type_extension@@@H@@@@&  '""@@@@6`@B@6extension_constructors@@@@I@@J@@@K@@@L@@M@>##?##d@@Nq@@@@BC#f#k@Rr@@@Ӡ)Exception@/exception_alias;@@'ea_name@@K!t@@@[$v$\$v$@@ku@%ea_exA@+t_exception@@@@@@n$$o$$@@~v@@@A.Odoc_exception/exception_alias@@@ @@@@{$0$4|% %)@@@@s@A@;@@'ex_name@@|!t@@@+%h%r%h%@@w@'ex_infoA@9@@@)@@@*%%%%@@x@'ex_args@@\0constructor_args@@@(%%%&@@y@&ex_ret@@W)type_expr@@@&@@@'&&&&&G@@z@(ex_alias@@j~@@@$@@@%&z&&z&@@{@&ex_locA@@@@#&&&&@@|@'ex_codeA@U@@@!@@@"'' ''+@@}@@@A|+t_exception@@@,@@@@%+%/','5@@@@t@B@@@##'6';@ ~@@@Ӡ$Type@,private_flag;@@'Private@@''''@@@&Public@@''''@@'@@@A,private_flag@@@@@@@"'' @@A@1@A@,record_field;@@'rf_name@@@@@3(4(>4(4(P@@C@*rf_mutable@@$boolE@@@A(k(uB(k(@@Q@)rf_atomic@@@@@M((N((@@]@'rf_type@@s)type_expr@@@[((\((@@k@'rf_textA@@@@@@@k ))#l ))B@@{@@@A(,record_field@@@@@@@v''w )y)@@@@@A@0constructor_args;@@+Cstr_recordnf@@@@@@@@)))*@@@*Cstr_tuple)type_expr@@@@@@@@**"**F@@@@@Aa0constructor_args@@@@@@@ )) @@@@@A@3variant_constructor;@@'vc_name@@,@@@****@@@'vc_args@@O@@@****@@@&vc_ret@@y)type_expr@@@@@@***+@@@'vc_textA@-@@@@@@+ +*+ +I@@@@@A3variant_constructor@@@@@@@*H*L++@@@@ @A@)type_kind;@@-Type_abstract@@ ++ ++@@ @,Type_variantÐf@@@@@@@@ ,$,* ,$,T@@ ,@+Type_recordĐ@@@@@@@@ .,|, /,|,@@ >@)Type_openŐ@@ 7 ,, 8 ,,@@ G@-Type_externalƐ@@@@@ E!,, F!,- @@ U@@@A)type_kind@@@@@@@ P++ @@@@ _@A@,object_field;@@'of_name@@@@@ a%-- b%--@@ q@'of_type@@)type_expr@@@ o&-- p&--@@ @'of_textA@ $info@@@@@@ '-- '--@@ @@@A?,object_field@@@ @@@@ $-V-Z (..@@@@ @A@-type_manifest;@@%Other̐)type_expr@@@ @@ +.P.V +.P.p@@ @+Object_type͐_@@@ @@@ @@ ,.. ,..@@ @@@As-type_manifest@@@ @@@@ *..! @@@@ @A@&t_type;@@'ty_name@@!t@@@ 1/#/- 1/#/?@@ @'ty_infoA@!@@@@@@ 2/b/l 2/b/@@ @-ty_parameters@@Ӡ@)type_expr@@@@(Variance!t@@@@@@@@ 3// 3/0@@ @'ty_kind@@@@@ 50L0V 50L0j@@ @*ty_private@@@@@ 60}0 60}0@@ ,@+ty_manifest@@ɠ@@@@@@ -700 .700@@ =@&ty_locA@@@@ 8800 9801@@ H@'ty_codeA@ @@@@@@ I911  J911@@@ Y@@@A&t_type@@@@@@@ T/.. U:1A1J@@@@ d@A@@@ X'm'm Y<1L1Q@ h@@@Ӡ%Value@'t_value;@@(val_name@@a!t@@@հ qD22  rD223@@ @(val_infoA@ @@@@@@԰ E2W2a E2W2@@ @(val_type@@)type_expr@@@Ұ F22 F22@@ @-val_recursive@@\@@@Ѱ G33  G33 @@ @.val_parametersA@ )parameter@@@@@@а H3J3T H3J3@@ @(val_codeA@ [ *@@@@@@ΰ I33 I33@@ @'val_locA@@@@̰ J4#4- J4#4I@@ @@@A*Odoc_value't_value@@@@@@@ B11 K4J4S@@@@ @A@+t_attribute;@@)att_value@@@@@ٰ P44 P44@@ @+att_mutable@@@@@ذ Q5"5, Q5"5@@@ @+att_virtual@@@@@װ R5m5w R5m5@@ @@@A7+t_attribute@@@@@@@ N44 S55@@@@ @A@(t_method ;@@)met_value@@5@@@ݰ X6$6. X6$6C@@ -@+met_private@@@@@ܰ )Y66 *Y66@@ 9@+met_virtual@@@@@۰ 5Z66 6Z66@@ E@@@Ak(t_method@@@@@@@ @V55 A[77@@@@ P@A@+is_function @h@@@@@@@@@@@ T^7q7u U^7q7@@ d@@#cct@@@4@@@@ p99 @@@@ @A@/inherited_class;@@'ic_name,@@!t@@@9 v:: v::@@ @(ic_class-A@ X@@@7@@@8 w:: w:;@@ ,@'ic_text.@@ ɠ @@@5@@@6 ,x;7;A -x;7;X@@ <@@@A|/inherited_class@@@:@@@@ 7t:S:W 8y;;@@@@ G@B@+class_apply;@@)capp_name/@@:!t@@@A J};; K};;@@ Z@*capp_class0A@ @@@?@@@@ Z~< m1>; >1>f@@ @@@A,class_constr@@@H@@@@ =7=; >>@@@@ @B@*class_kind;@@/Class_structure6  @@@O@@@P ̠g@@@M@@@N@@ >> >?@@ @+Class_apply7@@@L@@ ?j?p ?j?@@ @,Class_constr8y@@@K@@ ?? ??@@ @0Class_constraint9F@@@J/class_type_kind@@@I@@ AA AAP@@ .@@@An*class_kind@@@Q@@@@ )>> @@@@ 8@B@_;@@'cl_name:@@)!t@@@\ 9AA :AA@@ I@'cl_info;A@ @@@Z@@@[ IBB( JBBG@@ Y@'cl_type<@@o*class_type@@@Y WBB XBB@@ g@2cl_type_parameters=@@ G)type_expr@@@W@@@X jBB kBB@@ z@*cl_virtual>@@7@@@V vCC wCC1@@ @'cl_kind?A@k@@@U C[Ce C[C@@ @-cl_parameters@A@ q)parameter@@@S@@@T CC CC@@ @&cl_locAA@ @@@R D D D D/@@ @@@A't_class@@@]@@@@ AA D0D9@@@@ @B@0class_type_alias;@@(cta_nameB@@!t@@@b D~D D~D@@ @)cta_classCA@ j@@@`@@@a DD DD@@ @3cta_type_parametersD@@ )type_expr@@@^@@@_ E1E; E1Eg@@ @@@A00class_type_alias@@@c@@@@ D;D? EE@@@@ @B@;@@/Class_signatureE @@@g@@@h @@@e@@@f@@ EE EF@@@*Class_typeFg@@@d@@F F&F FF@@(@@@Ah/class_type_kind@@@i@@@@#EE @@@@2@B@I;@@(clt_nameG@@#!t@@@r3FF4FG@@C@(clt_infoHA@ @@@p@@@qCG#G-DG#GM@@S@(clt_typeI@@ i*class_type@@@oQGGRGG@@a@3clt_type_parametersJ@@ A {)type_expr@@@m@@@ndGGeGG@@t@+clt_virtualK@@1@@@lpHH qHH @@@(clt_kindLA@`@@@k{HLHV|HLHz@@@'clt_locMA@ g@@@jHHHH@@@@@A,t_class_type@@@s@@@@FFHH@@@@@B@.class_elements%trans Ei@@@t@@@u@@v@@@@w@@x @@@y@@@z@@{@@|@II#IId@@@@0class_attributes%trans'@@@}@@@~@@@@@@@@ L+t_attribute@@@@@@@@@@@IIII@@@@RS?RS@@N@)ma_moduleA@B@@@@@@ذNSFSPOSFSp@@^@@@A,module_alias@@@@@@@YRRZSS@@@@i@B@0module_parameter$;@@'mp_name@@@@@߰kSTlST@@{@'mp_type@@ +module_type@@@@@@ް~T#T+T#TO@@@,mp_type_code@@@@@ܰT`ThT`T@@@'mp_kind@@0module_type_kind(@@@۰TTTT@@@@@A0module_parameter@@@@@@@SSTT@@@@@B@+module_kind%;@@-Module_struct@@@@@@@@ UFUL UFUr@@@,Module_alias@@@@@ UU UU@@@.Module_functorx@@@3@@@@@ UU UV1@@@,Module_apply@@@@@@@@VVVV@@@1Module_apply_unit@@@@@WW WW/@@ @+Module_withs@@@y@@@@@ WsWyWsW@@@1Module_constraint>@@@@@@@@X-X3X-Xh@@.@-Module_typeof@@@@@,XX-XX@@<@-Module_unpack@@@1module_type_alias'@@@@@AYYBYY3@@Q@@@A+module_kind@@@@@@@L UU @@@@[@B@*;@@&m_name@@ L!t@@@\YY]YY@@l@&m_typeA@ +module_type@@@jZZkZZ2@@z@&m_infoA@ @@@@@@z ZRZ\{ ZRZz@@ @.m_is_interface@@ G@@@!ZZ!ZZ@@!@&m_file@@@@@"[["[[)@@"@&m_kindA@@@@#[T[^#[T[|@@#@%m_locA@@@@$[[$[[@@$@*m_top_depsA@ !t@@@@@@%[[%[[@@%@&m_codeA@g6@@@@@@&\/\9&\/\Y@@&@+m_code_intfA@xG@@@@@@'\~\'\~\@@'@+m_text_only@@ @@@(\\(\]@@(@@@A3(t_module@@@@@@@YY)]5]>@@@@@B@;@@(mta_name@@ !t@@@-]]-]]@@)@*mta_moduleA@@@@@@@.]].]^ @@$*@@@A_1module_type_alias@@@@@@@+]@]D /^@^I@@@@/@B@;@@2Module_type_structŐz@@@ @@@ @@53^^63^^@@E+@3Module_type_functorƐk@@@ @@@ @@F4__ G4__H@@V,@1Module_type_aliasǐ@@@@@S6__T6__@@c-@0Module_type_withȐ@@@@@@@@e8``#f8``R@@u.@2Module_type_typeofɐ@@@@@s:``t:``@@/@@@A0module_type_kind@@@ @@@@~2^v^z @@@@@B@L;@@'mt_name@@ ~!t@@@@aqa{@aqa@@0@'mt_infoA@; @@@@@@AaaAaa@@1@'mt_typeA@K+module_type@@@@@@Bbb(BbbT@@2@/mt_is_interface@@ ~@@@CbbCbb@@3@'mt_file@@5@@@DbbDbb@@4@'mt_kindA@vC@@@@@@Ec/c9Ec/cd@@5@&mt_locA@@@@IdydIdyd@@6@@@A/-t_module_type@@@@@@@>a3a7Jdd@@@@@B@/module_elements*%trans^ @@@@@@@@@@@@@@Z@@@@@@@@ @@!@OdeOdeG@@%7@@.module_modules+%trans @@@"@@@#@@$@ @@@%@@&@@@'@@@(@@)@@*@;Reze~<Reze@@K8@@3module_module_types,%trans @@@+@@@,@@-@2@@@.@@/A)@@@0@@@1@@2@@3@aUeebUef;@@q9@@7module_included_modules-%transР 8@@@4@@@5@@6@X@@@7@@8g?@@@9@@@:@@;@@<@XftfxXftf@@:@@6module_type_extensions.%trans ^@@@=@@@>@@?@~@@@@@@A'0t_type_extension@@@B@@@C@@D@@E@[fg[fgV@@;@@1module_exceptions/%trans @@@F@@@G@@H@@@@I@@J?+t_exception@@@K@@@L@@M@@N@^gg^gg@@<@@,module_types0%transF @@@O@@@P@@Q@@@@R@@SݠW&t_type@@@T@@@U@@V@@W@ahh ahhH@@=@@-module_values1%transn @@@X@@@Y@@Z@@@@[@@\ 't_value@@@]@@@^@@_@@`@'dhwh{(dhwh@@7>@@0module_functions2%trans @@@a@@@b@@c@@@@d@@e- 't_value@@@f@@@g@@h@@i@OghhPghi9@@_?@@4module_simple_values3%trans &@@@j@@@k@@l@F@@@m@@nU 't_value@@@o@@@p@@q@@r@wjisiwxjisi@@@@@.module_classes4%trans N@@@s@@@t@@u@n@@@v@@w}E't_class@@@x@@@y@@z@@{@miimij3@@A@@2module_class_types5%trans v@@@|@@@}@@~@@@@@@m,t_class_type@@@@@@@@@@@pjgjkpjgj@@B@@2module_all_classes6%trans6 @@@@@@@@@@@@@@͠'t_class@@@@@@@@@@@skkskk[@@C@@1module_is_functor7@@@@@@ @@@@@@vkkvkk@@D@@1module_parameters8%transr @@@@@@@@@@@@@@ @U@@@@Ӡ@@@@@@@@@@@@@@@@7yll8yll[@@GE@@/module_comments9%trans@@@@@@@@@.@@@@@=@@@@@@@@@@@]|ll^|ll@@mF@@4module_type_elements:%trans̠4@@@@@@@@@D@@@@@c@@@@@@@@@@@m#m'm#mt@@G@@3module_type_modules;%transZ@@@@@@@@@j@@@@@@@@@@@@@@@@mmmm@@H@@8module_type_module_types<%trans@@@@@@@@@@@@@@@@@@@@@@@@@n0n4n0n@@I@@@@@@@@@@@@@@@@ՠ@@@@@@@@@@@nnno@@J@@6module_type_exceptions>%transd@@@@@@@@@@@@@@+t_exception@@@@@@@@@@@oToXoTo@@-K@@1module_type_types?%trans@@@@@@@@@@@@@@#&t_type@@@@@@@@@@@EooFop,@@UL@@2module_type_values@%trans@@@@@@@@@,@@@@@K 't_value@@@@@@@@@@@mp`pdnp`p@@}M@@5module_type_functionsA%transܠD@@@@@@@@@T@@@@@s 't_value@@@@@@@@@@@pppq:@@N@@9module_type_simple_valuesB%trans l@@@@@@@@@|@@@@@ )'t_value@@@@@@@@@@@qyq}qyq@@O@@3module_type_classesC%trans ,@@@@@@@@@@@@@@à't_class@@@@@@@@@@@rrrrR@@P@@7module_type_class_typesD%trans T@@@@@@@@@@@@@@,t_class_type@@@@@@@@@@ @ rrrr@@Q@@7module_type_all_classesE%trans |@@@ @@@ @@ @@@@ @@'t_class@@@@@@@@@@@5sEsI6sEs@@ER@@6module_type_is_functorF@@@@@@ @@@@@@IssJst@@YS@@6module_type_parametersG%trans  @@@@@@@@@0@@@@@O@@@@@@@@@@@@@@@@ @@!@@"@}tLtP~tLt@@T@@4module_type_commentsH%trans T@@@#@@@$@@%@d@@@&@@'C@@@(@@@)@@*@@+@tttu"@@U@@@@NhNhu#u(@V@@@0reset_type_names@$unitF@@@@@@@@@@@vUvUvUvx@@W@@2string_of_variance@)&t_type@@@@@@(Variance!t@@@@@L@@@@@@@@w@w@w@w@@X@@3string_of_type_expr@ )type_expr@@@@@c@@@@@@wwww@@Y@@6string_of_class_params@'t_class@@@@@y@@@@@@ xjxjxjx@@Z@@3string_of_type_list#par |@@@ @@@ @@ @@@@ @@ @R)type_expr@@@@@@@@@@@@@@@@@@?yy@yyW@@O[@@9string_of_type_param_list@&t_type@@@@@@@@@@@UyyVyy@@e\@@ #string_of_type_extension_param_list@0t_type_extension@@@@@@@@@@@kzfzflzfz@@{]@@?string_of_class_type_param_list@`)type_expr@@@@@@@@@@@ @@!@{C{C{C{@@^@@5string_of_module_type$code  @@@"@@@#@@$(complete l@@@%@@@&@@'@+module_type@@@(@@)&@@@*@@+@@,@@-@|||}&@@_@@4string_of_class_type(complete )@@@.@@@/@@0@*class_type@@@1@@2K@@@3@@4@@5@}}}~(@@`@@.string_of_text@@@@6@@7_@@@8@@9@~L~L~L~o@@a@@.string_of_info@B@@@:@@;s@@@<@@=@~~~~@@b@@.string_of_type@ r&t_type@@@>@@?@@@@@@A@~~~ @@-c@@0string_of_record@ ,record_field@@@B@@@C@@D@@@E@@F@8""9"Y@@Hd@@8string_of_type_extension@ 0t_type_extension@@@G@@H@@@I@@J@NO@@^e@@3string_of_exception@ +t_exception@@@K@@L@@@M@@N@deP@@tf@@/string_of_value@'t_value@@@O@@P@@@Q@@R@z{@@g@@3string_of_attribute@+t_attribute@@@S@@T@@@U@@V@$@@h@@0string_of_method@(t_method@@@W@@X@@@Y@@Z@\\\@@i@@6first_sentence_of_text@W@@@[@@\Z@@@]@@^@@@j@@?first_sentence_and_rest_of_text@j@@@_@@`@q@@@b@v@@@a@@c@@d@  "@@k@@5text_no_title_no_list@@@@e@@f@@@g@@h@ ^^ ^@@l@@+text_concat@|$text@@@i@@j@$text@@@k@@@l@@m$text@@@n@@o@@p@5@@ m@@2get_titles_in_text@@@@q@@r@@@@v@Ӡ@@@t@@@u@@@@s@@w@@@x@@y@=>@@Mn@@2create_index_lists@2!a@@@@z@@{@@ @@|@@@}@@~@@GK@@@@@@@@@@@ij`@@yo@@-remove_option@)type_expr@@@@@)type_expr@@@@@@  ;@@p@@+is_optional@(Asttypes)arg_label@@@@@\@@@@@@#qq#q@@q@@*label_name@)arg_label@@@@@@@@@@@''+@@r@@2use_hidden_modules@!t@@@@@!t@@@@@@,,@@s@@'verbose@F@@@@@&@@@@@@/BB/B^@@t@@'warning@[@@@@@;@@@@@@44@@u@@.print_warnings&Stdlib#ref@@@@@@@ 7HH 7He@@v@@&errors#ref@@@@@@@==1@@,w@@)apply_opt@@!a@@@!b@@@@@@ޠ@@@@@@@@@@@@@C@aaD@a@@Sx@@.apply_if_equal@@!a@@@@@@@@@@@ @@ @@@@@@@`E))aE)Z@@py@@.text_of_string@@@@@@@@@@@@tJuJ@@z@@3text_string_of_text@%@@@@@@@@@@@OO@@{@@.info_of_string@@@@@@@@@@@@VV@@|@@4info_of_comment_file@ (t_module@@@@@@@@@(@@@@@@@@@@@@@_  _ N@@}@@5remove_ending_newline@<@@@@@@@@@@@@bb@@~@@Ӡ&Search@.result_elementI;@@*Res_module=(t_module@@@{@@h=Gh=d@@@/Res_module_typeL-t_module_type@@@z@@iemie@@@)Res_class 't_class@@@y@@ jj@@@.Res_class_type ,t_class_type@@@x@@kk@@,@)Res_value't_value@@@w@@+l,l@@;@(Res_type &t_type@@@v@@:m;m1@@J@-Res_extension  7t_extension_constructor@@@u@@In2:Jn2n@@Y@-Res_exception! +t_exception@@@t@@XoowYoo@@h@-Res_attribute"+t_attribute@@@s@@gphp@@w@*Res_method#(t_method@@@r@@vqwq@@@+Res_section$@@@q)@@@p@@rr@@@,Res_recfield% &t_type@@@o ,record_field@@@n@@s$sU@@@)Res_const& &t_type@@@m 3variant_constructor@@@l@@tV^tV@@@@@A+Odoc_search.result_element@@@|@@@@g  @@@@@A@-search_resultJ;@@@A@@@}@@@~@@@@ww@@@@@A@.search_by_nameK@Ǡ6(t_module@@@@@@@@@#Str®exp@@@@@4@@@@@@@@zPVzP@@ @@&valuesL@](t_module@@@@@@@@'t_value@@@@@@@@@}}$@@*@@*extensionsM@~(t_module@@@@@@@@ 7t_extension_constructor@@@@@@@@@;qw<q@@K@@*exceptionsN@0(t_module@@@@@@@@: +t_exception@@@@@@@@@\]\@@l@@%typesO@Q(t_module@@@@@@@@[ &t_type@@@@@@@@@}~@@@@*attributesP@r(t_module@@@@@@@@| +t_attribute@@@@@@@@@171v@@@@'methodsQ@(t_module@@@@@@@@+(t_method@@@@@@@@@@@@@'classesR@#(t_module@@@@@@@@'t_class@@@@@@@@@OUO@@@@+class_typesS@ՠD(t_module@@@@@@@@ߠ,t_class_type@@@@@@@@@"@@@@'modulesT@e(t_module@@@@@@@@o(t_module@@@@@@@@@"lr#l@@2@@,module_typesU@(t_module@@@@@@@@!-t_module_type@@@@@@@@@CDE@@S@@@@GeHGN@W@@@Ӡ$Scan@Š'scannerV#@*scan_valueA@'t_value@@@G@@H@@@I@@J@@K-scan_type_preA@&t_type@@@:@@;?@@@<@@=@@>/scan_type_constA@&t_type@@@#@@$@3variant_constructor@@@%@@&@@@'@@(@@)@@*2scan_type_recfieldA@&t_type@@@?@@@@ ,record_field@@@A@@B@@@C@@D@@E@@F)scan_typeA@&t_type@@@@@@@@ @@!@@":scan_extension_constructorA@M7t_extension_constructor@@@@@ @@@@@@@.scan_exceptionA@O+t_exception@@@@@2@@@@@@@.scan_attributeA@e+t_attribute@@@@@D@@@@@@@+scan_methodA@w(t_method@@@@@V@@@@@@@4scan_included_moduleA@j/included_module@@@@@h@@@@@@@7scan_type_extension_preA@0t_type_extension@@@5@@6@@@7@@8@@9 scan_type_extension_constructorsA@0t_type_extension@@@0@@1@@@2@@3@@43scan_type_extensionA@0t_type_extension@@@+@@,@@@-@@.@@/2scan_class_commentA@ @@@@@@@@@@@@.scan_class_preA@'t_class@@@@@9@@@@@@@3scan_class_elementsA@-'t_class@@@@@@@@@@@@*scan_classA@?'t_class@@@@@@@@@@@@7scan_class_type_commentA@ I@@@@@@@@@@@@3scan_class_type_preA@a,t_class_type@@@@@@@@@@@@8scan_class_type_elementsA@s,t_class_type@@@@@@@@@@@@/scan_class_typeA@,t_class_type@@@@@*@@@@@@@3scan_module_commentA@ @@@@@:@@@@@@@/scan_module_preA@N(t_module@@@@@@@@@@@@ 4scan_module_elementsA@`(t_module@@@@@^@@@@@@@+scan_moduleA@r(t_module@@@@@p@@@@@@@8scan_module_type_commentA@ @@@@@@@@@@@@4scan_module_type_preA@-t_module_type@@@@@ @@@@@@@9scan_module_type_elementsA@-t_module_type@@@@@@@@@@@@0scan_module_typeA@-t_module_type@@@ @@ @@@ @@ @@0scan_module_listA@ _(t_module@@@@@@@@@@@@@@@@@@o@p@q@r@s@t@u@v@w@x@y@z@{@|@}@~@@@@@@@@@@@@@@8X@@@@@A@@A@AB=@A=@@A@A1@A1@ɰ@A@ABC@A@@A@A@A@BȰ@A@CD۰@A@@A@A@A@@A@ABǰ@A@@A@@@A@@AB@A@V@AV@A@A@l@Al@A@A@BCDEF@A@>@A>@z@Az@AB@A@@A@ACV@AV@,@A,@Al@Al@BDG?B@@@n@!!nw@@!@A@ƠW#@R@@@A@R@AR@AB@A@h@Ah@A{@A{@@A@ABCH@AH@*@A*@A=@A=@B@A@CD%@A%@@A@A@A@ܰ@A@AB@A@@A@@A@AB@A@@A@Aհ@A@@A@Aɰ@A@BCDEFN@AN@@A@İ@A@ABװ@A@@A@AC@A@v@Av@A@A@BDG;@@@AAAAAlAk\A[LAKA=RAQAALAK`A_tAs*A)A@A?@@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@[@\@]@^@_@`@a@b@c@d@e@f@g@h@i@j@@k@@@@@@@A@@@"yy"x}@"@@@Ӡ#Dep@6kernel_deps_of_modulesY@!(t_module@@@\@@@]@@^ @@@_@@`@" -1" -j@@"@@-deps_of_typesZ&kernel.@@@a@@@b@@c@! <&t_type@@@d@@@e@@f!̠@J&t_type@@@i@!۠!t@@@g@@@h@@j@@@k@@l@@m@"z~"z@@#@@@@# #@#@@@Ӡ&Global@&errors[#ref!@@@D@@@E@##1@@#+@@*warn_error\(#ref@@@F@@@G@#.26#/2O@@#>@@(out_file];#ref"@@@H@@@I@#A#B@@#Q@@'verbose^N#ref@@@J@@@K@#T"#U"@@#d@@*target_dir_a#ref"@@@L@@@M@#g%,0#h%,K@@#w@@%title`t#ref""@@@N@@@O@@@P@#(#(@@#@@*intro_filea#ref"2#@@@Q@@@R@@@S@#+#+!@@#@@(with_tocb#refj@@@T@@@U@#.pt#.p@@#@@*with_indexc#ref}@@@V@@@W@#1#1@@#@@+with_headerd#ref@@@X@@@Y@#4/3#4/M@@#@@,with_trailere#ref@@@Z@@@[@#7#7@@#@@@@##8@#@@@-analyse_files-merge_optionsV"#,merge_option@@@@@@@@@@@,include_dirsk"#@@@@@@@@@@@3hidden_include_dirs~# #@@@@@@@@@@@&labels@@@@@@@@,sort_modules@@@@@@@@'no_stop@@@@@@@@$init#F(t_module@@@@@@@@@@@@#V+Odoc_global+source_file@@@@@@@@#c(t_module@@@@@@@@@@@@@@@@@@@@@@@$=\\$F@@$@@,dump_modules@$@@@@@@#(t_module@@@@@@@@ @@@@@@@@$J00$J0n@@$@@,load_modules@$&@@@@@#(t_module@@@@@@@@@$N$N@@$@@@q͠)Odoc_info0DAఙ/KMv㠠(Warnings0Ef{&)Unit_info0'T Χ@aR%Types0"|Vȷ`X .Type_immediacy00$ jbv\"k&#Str0y]q4KN-Stdlib__Uchar0=H^V9>ɠ+Stdlib__Sys0b'8=OIn.Stdlib__String0 w_OA4D"Q~~+Stdlib__Set0ܔ@Z8XWaa2+Stdlib__Seq0?72#[O.Stdlib__Result0p~ !ԥ//+Stdlib__Map0*4ɇ2.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Digest0#z25I*.Stdlib__Buffer0,I[?z&Stdlib0t0VoS%{<F:%Shape0 M``ll)Primitive0dU=\I/}$Path0k.tbGmᠠ)Parsetree0v o[pY Y+Outcometree0BuG^)= 9c *Odoc_value0FJ]\fѬ*Odoc_types0ϸf%,e8)Odoc_type0~b:x_B+Odoc_search0|rCuanO{T.Odoc_parameter0n6sApT)Odoc_name0 d L_,+Odoc_module0>r(e8=*+Odoc_global0=V0^@GD-.Odoc_extension0Lt.`?9:77.Odoc_exception0>@ӽX4Id*Odoc_class0D:L$Misc0Kvor#2D)Longident0wP q;ɡ(Location0nBɊOn?7~ؠ,Identifiable0]/*N %Ident0>ЃzV)j⠠*Format_doc0uy@GmWUࠠ0CamlinternalLazy0zY# #4#-8CamlinternalFormatBasics0|.e1R$|o5Build_path_prefix_map0zd,J4z(Asttypes0eT$BbRM dc@@@Caml1999T037oQC)Odoc_info*ocaml.text&_none_@@A 9 Interface to the information collected in source files. 6ocamldoc/odoc_info.mliP77P7u@@@@@@3@@@@#intA;@@A@@@@@9@A@$charB;@@A@@@@@>@A@&stringQ;@@A@@@@@C@@@%bytesC;@@A@@@@@H@@@%floatD;@@A@@@@@M@@@$boolE;@@%falsec@@W@$trued@@]@@@A@@@@@^@A@$unitF;@@"()e@@h@@@A@@@@@i@A@ #exnG;@@@A@@@@@m@@@#effH;@@O@A@A@@@@@@v@@@,continuationI;@@Q@@P@B A@nY@@@@@@@@@%arrayJ;@@R@AA@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@A@@@@@@@@%int32N;@@A@@@@@@@@%int64O;@@A@@@@@@@@&lazy_tP;@@X@AA@Y@@@@@@@@ 5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@AA@Y@@@@@@@@ *atomic_locU;@@Z@AA@@@@@@@@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A=ocaml.warn_on_literal_pattern@@0Division_by_zero]#@@@A  @+End_of_file\#$@@@A#&&@'FailureY#,@'@@A,//@0Invalid_argumentX#5@0@@A5$8#8@-Match_failureV#>@@=@9@;@@a@@AF5I4I@)Not_foundZ#O@@@AN=Q<Q@-Out_of_memoryW#W@@@AVEYDY@.Stack_overflow^#_@@@A^MaLa@.Sys_blocked_io_#g@@@AfUiTi@)Sys_error[#o@j@@Ao^r]r@:Undefined_recursive_modulea#x@@w@s@u@@h@@Aon@:Continuation_already_takenb#@@@Awv@&Stdlib@AA+(ref_kindASS@@;@@)RK_module@@TT@@C@.RK_module_type@@UU@@D@(RK_class@@VV@@E@-RK_class_type@@WW@@F@(RK_value@@XX@@G@'RK_type@@YY'@@H@,RK_extension@@Z(*Z(8@@I@,RK_exception@@[9;[9I@@J@,RK_attribute@@\JL\JZ@@K@)RK_method@@][]][h@@L@*RK_section$textA@@@~@@^ik^i@@M@+RK_recfield @@__@@N@(RK_const!@@` `@@!O@@@A*Odoc_types(ref_kind@@@I@@@@S @)ocaml.doc' , The different kinds of element references. $Rww%Rw@@@@@@@@@=@@@#@@@@@#1U@@@@@#7V@@@@@#=W@@@@@#CX@@@@@#IY @@@@@#OZ(,@@@@@#U[9=@@@@@#[\JN~@}@@@@#}}a][_{@z@@@~@#zzg^imh^iw@q@г|$textq^i{{@@3oooooooo@q;@@@A@@@ @{@@@@ki@@Y,text_elementA;@@@A @@@ @|@@@@b 3 P@@@@A@;@@@A@@@ @}@@@@B  B  @ 8 A text is a list of [text_element]. The order matters. A  A  @@@@@@@@@B@@A9@@@@@#_@@@@@#`@@@@@@Aг*Odoc_typesSS@SS@@@T@@א@@@@@@+UUbb@@;@@#Raw5@@@J@@cc@ѐ+ Raw text. cc@@@@@@@ P@$Code6@@@K@@dd@퐠< The string is source code. dd"@@@@@@@(Q@'CodePre7@@@L@@e#%e#8@ * The string is pre-formatted source code. +e#9,e#h@@@@@@@DR@(Verbatim8@@@M@@9fik:fi@%1 String 'as is'. GfiHfi@@@@@@@`S@$Bold9a@@@N@@UgVg@A5 Text in bold style. cgdg@@@@@@@|T@&Italic:}@@@O@@qhrh@]1 Text in italic. hh@@@@@@@U@)Emphasize;@@@P@@ii@y2 Emphasized text. ii@@@@@@@V@&Center<@@@Q@@jj-@0 Centered text. j.jC@@@@@@@W@$Left=@@@R@@kDFkDT@1 Left alignment. kDUkDk@@@@@@@X@%Right>@@@S@@llnll}@͐2 Right alignment. ll~ll@@@@@@@Y@$List?x @@@T@@@V@@mm@) A list. mm@@@@@@@)Z@$Enum@.@@@W@@@Y@@#n$n@5 An enumerated list. 1n2n@@@@@@@J[@'NewlineA@@:o;o@&8 To force a line break. HoIo@@@@@@@a\@%BlockBb@@@Z@@VpWp)@B: Like html's block quote. dp*epI@@@@@@@}]@%TitleCH@@@[ՠG@@@\@@@^@@@_@@qJLqJq@m ) Style number, optional label, and text. rrrr@@@@@@@^@%LatexDi@@@`@@ss@5 A string for latex. ss@@@@@@@_@$LinkE@@@a@@@b@@tt@ ' A reference string and the link text. tt #@@@@@@@`@#RefF@@@c=Z@@@d@@@fG@@@g@@@i@@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@@@j@@ y   y  @/ Superscripts. y  y  "@@@@@@@1b@)SubscriptH2@@@k@@&z # %'z # 8@- Subscripts. 4z # 95z # K@@@@@@@Mc@+Module_listI@@@l@@@n@@G{ L NH{ L j@3 5 The table of the given modules with their abstract. U| k rV| k @@@@@@@nd@*Index_listJ@@^}  _}  @J 7 The links to the various indexes (values, types, ...) l}  m}  @@@@@@@e@&CustomKF@@@o@@@p@@~  ~  @k8 to extend \{foo syntax ~  ~  2@@@@@@@f@&TargetLg@@@ql@@@r@@ 3 5@ > (target, code) : to specify code specific to a target format  3 Q 3 @@@@@@@g@@@A,text_element@@@s@@@@-@@@*@#ޠްcc@@гࠐ&stringc@@U@@@@䠰ؐ@@@@@@#ݠݰdd@@гߠ&stringd@@p@@@@㠰󐠠@@@@@@#ܠܰe#'e#.@@гޠ&stringe#2@@@@@@⠰@@@@@@#۠۰ fimfiu@@гݠ&stringfiy@@@@@@ᠰ)@@@@@@#ڠڰ(g)g@@гܠ$text2g@@@@@@࠰D@@@@@@#٠ٰChDh@@г۠$textMh@@ܰ@@@@ߠ9_@@@@@@#ؠذ^i_i@@гڠ$texthi@@@@@@ޠTz@@@@@@#נװyjzj%@@г٠$textj)@@@@@@ݠo@@@@@@#ְ֠kDHkDL@@гؠ$textkDP@@-@@@@ܠ@@@@@@#ՠհllpllu@@гנ$textlly@@H@@@@۠ː@@@@@@#Ԡ԰mm@@г֠$listm@гڠ$textmm@@l@@@m@@@@ߠ𐠠@@@@@@#ؠذnn@@гڠ$listn@гޠ$textnn@@@@@@@@@㠰@@@@@@#ܠܰo@@@@ݠ&@@@@@@#ְ֠%p&p!@@гؠ$text/p%@@@@@@ܠA@@@@@@#ՠհ@qJNAqJS@@гנ#intJqJWKqJZ@@ڰ@@гܠ&optionTqJdUqJj@г᠐&string]qJ]^qJc@@@@@ @@г栐$texthqJm@@@@@@꠰Tz@@@@@@#yszs@@г堐&strings@@@@@@頰o@@@@@@#tt@@г䠐&stringtt@@.@@г預$textt@@7@@@@@@@@@@#u $ (u $ +@@г蠐&stringu $ /u $ 5@@S@@г&optionu $ Au $ G@г(ref_kindu $ 8u $ @@@f@@@g @@г&optionu $ O@г$textu $ Ju $ N@@y@@@z@@@@@@@@@@#y  y  @@г$texty  @@@@@@@@@@@@#z # 'z # 0@@г$text!z # 4@@@@@@ 3@@@@@@#2{ L P3{ L [@@г$list<{ L f@г&stringD{ L _E{ L e@@԰@@@ հ@@@@2X@@@@@@#W}  @@@@Ci@@@@@@#h~  i~  @@г&stringr~  s~  @@@@г$text|~  @@ @@@@h@@@@@@# 3 7 3 =@@г&string 3 A 3 G@@'@@г&string 3 J@@0@@@@@@@@@@@Aг*Odoc_typesbb@bb@@@ L@@5@+ϠϰB  B  @@;@@@AHP@@@t@@@v@@@@:7@@)@@Aг $listB  @@г,text_elementB  B  @@p@@@qK@@MKJ@JJ@@@J@J@@W@A+'see_refMBE * /E * 6@@;@@'See_urlN@@@ @@ F N R F N c@@ !i@(See_fileO@@@ @@ G d f G d z@@ /j@'See_docP@@@ @@ $H { } %H { @@ =k@@@A'see_ref@@@ @@@@ /E * * @ 2 The different forms of references in \@see tags.  <D   =D  )@@@@@@@@@ Uh@@#CC< DF N Y@;@гD&string MF N ]E@@K3 K K K K K K K K@ Na{^;@@@Af@@@ @ @@@@.,@@@AT@@@@V@#RR aG d h bG d p@K@гT&string kG d tU@@[V@@@@X@#TT qH {  rH { @M@гV&string {H { W@@].X@@@@Z@@AгV*Odoc_types E * 9 E * C@] E * D E * K@@@e?@@`x _^@^^@@@^@^@@3        @J@Alv@+Text_syntaxQC L   L  @#@ @@@  @@@  @@@ @@A L   L  !@ ^ Raised when parsing string to build a {!Odoc_info.text} structure. [(line, char, string)]  J   K  @@@@@@@ l@@г##int L   L  @@+3        @@A@@г*#int L   L  @@2 @@г/&string L  0@@61@@@@3 10@00@@@0@0@>@!>=@A+#seeRD O J O O J R@@;@@&option vY:S wY:Y@гC&string Y:L Y:R@@K'@@@P( @@S@@ `+@J@@AгF*Odoc_types W W@M W W@@@U;@@P@@3        @;@AQP@A+$infoXH _ _@@;@@&i_descY@@  @@@ }@@@  ` `@ 7 The description text.  ` `@@@@@@@ t@)i_authorsZ@@ H @@@ @@@  a a,@ ' The list of authors in \@author tags.  a- aY@@@@@@@ u@)i_version[@@ J @@@ @@@  bZ^ bZx@ ݐ " The string in the \@version tag.  bZy bZ@@@@@@@ v@&i_sees\@@ @@@ @@@  c c@ 9 The list of \@see tags.  c c@@@@@@@ 7w@'i_since]@@  @@@ @@@  /d 0d@  The string in the \@since tag.  =d >d@@@@@@@ Vx@(i_before^@@ Ġ@ @@@ @ c@@@ @@ @@@  Xe Ye?@ D - the version number and text in \@before tag  fe@ ger@@@@@@@ y@,i_deprecated_@@ Р @@@ @@@  wfsw xfs@ c / The description text of the \@deprecated tag.  fs fs@@@@@@@ z@(i_params`@@ 9@@@ @@@  g g@ % The list of parameter descriptions.  g g @@@@@@@ {@3i_raised_exceptionsa@@ +@@@ @@@  h h>@ The list of raised exceptions.  h? hd@@@@@@@ |@.i_return_valueb@@ - @@@ @@@  iei ie@ + The description text of the return value.  ie ie@@@@@@@ }@(i_customc@@ i@ @@@ @ @@@ @@ @@@  j j@ 鐠 & A text associated to a custom @-tag.  j j @@@@@@@ $~@(i_alertsd@@ @@@ @@@  k  k %@  @ Alerts associated to the same item. Not from special comments.  *k & +k k@@@@@@@ C@@@A "$info@@@ @@@@ 5_ 6llo@ ! U Information in a special comment @before 3.12 \@before information was not present.  C\^^ D^@@@@@@@@@ \s@@# K`@@@Ш@г&option T` U`@г$text ]` ^`@@3 \ \ \ \ \ \ \ \@HB;@@@A@@@ @ |@@@@74@@&@A@@@ @@@@ @ Y @@@@@@# ~a@@@Ш@г$list a' a+@г&string a  a&@@3@@@4 @@@@ 7@Š  @@@@@@# bZg@@@Ш@г&option bZq bZw@гƠ&string bZj bZp@@Z@@@[ @@@@ ^@͠  ͐@@@@@@#Ơư c@@@Ш@гɠ$list c c@гΠ#see c c@@@@@ @@@@ @ՠ  @@@@@@#Πΰ d@@@Ш@гѠ&option d d@г֠&stringdd@@@@@ @@@@ @ݠ @@@@@@#ְ֠e&@@@Ш@г٠$list#e9$e=@В@гޠ&string0e*1e0@@Ӱ@@@г㠐$text;e3<e7@@ް@@@߰@@@@e)@@@@ @젰 -S@@@@@@#Rfs@@@Ш@г蠐&option[fs\fs@г$textdfsefs@@@@@ @@@@  @ Tz@@@@@@#yg@@@Ш@г$listgg@г%paramgg@@.@@@/ @@@@ 2@ {@@@@@@#h%@@@Ш@г$listh9h=@г0raised_exceptionh(h8@@U@@@ V @@ @@ Y@ Ȑ@@@@@@#iew@@@Ш@г&optionieie@г$textiezie~@@ |@@@} @@@@ @    @  @@@ @ @#j@@@Ш@г$listjj@В@г &stringjj@@@@@г$textjj@@@@@%@@@*j@@.@@ @ '@@@@@@# &k @@@Ш@г$list/k 0k #@г%alert8k 9k @@$۰@@@)ܰ @@,@@ @# (N! @  @@@ @ @@Aг*Odoc_typesR_S_@#V_W_@@@+@@& Dj$#@##@@@#@#@@3bbbbbbbb@@A21@A+(locationeIpoqo@@;@@(loc_impl@@۠(Location!t@@@!@@@#pp@ r9 implementation location pp@@@@@@@A@)loc_inter@@#!t@@@&@@@(q"qA@ 4 interface location qBq[@@@@@@@B@@@A (location@@@+@@@@or\_@ = Location of elements in implementation and interface files. nqqnq@@@@@@@@@@@@#^^Pp@A@@Ш@гa&optionpp@гf(Locationpp@kpp@@@u3@WQ;@@@A@@@@ @@@@>;@@-@A@@@ @@@@$@| zy@yy@@@y@y@#uuiq+@Z@@Ш@гx&optionq9q?@г}(Location$q.%q6@(q7)q8@@@:@@@; @@@@)>@?@@@@@@@Aг*Odoc_typesCoDo@GoHo@@@Y@@5[@@@@@@@3SSSSSSSS@d@A@)dummy_locɠ`uz~auz@г(locationiuzjuz@@ @@@3kkkkkkkk@}@A@@@suzz @^3 A dummy location. taatay@@@@@@@C@@@n@@@@@@!$NameJxx@K@@БA+!tKzz@@;@@A}@@@@@@@zz@@@@D@@@Aг &stringz @@3@PcN;@@@A#@@@@@@@@@@@@A@@@@3@ @A@&simpleˠ}}!@б@г6!t}$}%@@ @@@3@'A;@A@@гE!t})}*@@ @@@@@@@@@@ @@@} @吠< Access to the simple name. ||@@@@@@@ E@@@@@@@@@3&concat̠s}s@б@г!t)s*s@@ @@@3++++++++@La8@A@@б@г!t:s;s@@ @@@@@г!tGsHs@@ @@@@@@@@@@# @@@+@@ @@(.@@@Ysy@D ; [concat t1 t2] returns the concatenation of [t1] and [t2].f,2g,r@@@@@@@F@@"@Tz@@@@@@G%depth͠}"~'@б@гࠐ!t*+@@ @@@3@`u8@A@@гk#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@@@Ő@@@@@@3,get_relativeΠ@б@г+!t@@ @@@3@La8@A@@б@г"" or else n2. op@@@@@@@I@@"@]@@@@@@G&fatherР@б@г預!t@@ @@@3@`u8@A@@г!t@@ @@@@@@@@@@ @@@ @ B Return the name of the 'father' (like [dirname] for a file name).282@@@@@@@J@@@ΐ@@@@@@3@'!A@@x@X/@@u@U,@@3@BW.@A3@@Ay@@ " Representation of element names. ww@@@@@@@x@@)ParameterVL @Z@@Б+ {1 Types} (@@@@@@3@U@smA@J!@@{@[@@x@@ DC@CC@@@C@C@@@AA++simple_nameM6_h7_s@@;@@'sn_name@@@@@ްCD@@\M@'sn_typeA@@%Types)type_expr@@@ȰST@@lO@'sn_textBA@o@@@@@@Ͱde @@}P@@@A.Odoc_parameter+simple_name@@@D@@@@q_cr @] + Representation of a simple parameter name *.*^@@@@@@@@@L@@#IID@C@@Ш@гL&string@@T3@b;@@@Aj@@@S@@@@@-*@@@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@@wut@tt@@@t@t@@@A+*param_infoMN@@;@@+Simple_nameN@@@o@@   @@$R@%TupleO#@@@p@@@r)type_expr@@@s@@%&@@@>S@@@A*param_info@@@t@@@@0 @ Representation of parameter names. We need it to represent parameter names in tuples. The value [Tuple ([], t)] stands for an anonymous parameter.=>s@@@@@@@@@VQ@@#AA:E@9@гB+simple_nameNC@@I3LLLLLLLL@@ Z;@@@Ab@@@@n@@@@,*@@@AP@@@@R@#NN`a@;@гP$listj*k.@гU*param_infost)@@]&@@@b' @@гZ%Types16@a7_@`@@h7a@@@@c@@Aг_.Odoc_parameter@f@@@nH@@ihg@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. 78@@@@@@@PU@@@%K@@@@@@K#typRNW_OWb@б@г)parameterYWeZWn@@ @@@3[[[[[[[[@d_8@A@@г)type_expr%TypeslWrmWw@ pWxqW@@@@@@ @@@ @@@@# @@@~W[@i> Access to the complete type. /3/V@@@@@@@V@@@y@@@@@@<%namesS@б@г)parameter@@ @@@3@Uj8@A@@г5$list@г&string@@ @@@@@@@@@ @@@&@@ @@#)@@@@Ð ^ Access to the list of names ; only one for a simple parameter, or a list for a tuple. @@@@@@@W@@,@@@@@@@B,desc_by_nameT@б@гY)parameter@@ @@@3        @[p8@A@@б@г⠐&string@@ @@@@@г&option%&@г9$text/0@@ @@@(@@@@@@- @@@$@@ @@2'@@@:@@ @@7=@@@F!@1 z Access to the description of a specific name. @raise Not_found if no description is associated to the given name. STK@@@@@@@lX@@1@Ag@@@@@@V,type_by_nameUjJRkJ^@б@гǠ)parameteruJavJj@@ @@@3wwwwwwww@o8@A@@б@гP&stringJnJt@@ @@@@@гB)type_expr%TypesJxJ}@ J~J@@@@@@' @@@@@@@,! @@@4@@ @@17@@@JN@ l Access to the type of a specific name. @raise Not_found if no type is associated to the given name. I@@@@@@@Y@@#@ϐ@@@@@@P@A@A@& A@@X@8@@t.@@3@av0@A3@@A@@񐠠 R Representation and manipulation of method / function / class / module parameters.@@@@@@@@@)ExtensionP@r@@БA+,private_flagWQ  @@;@@'PrivateX@@!@@/\@&PublicY@@" *@@8]@@@A.Odoc_extension,private_flag@@@@@@@, @@A@D[@@#@@@@@#8$@@@@@@Aг.Odoc_extensionCD@GH@@@'3GGGGGGGG@;X@A@[UA@A@V/@@@e@@@I}|@||@@@|@|@yma;@@@Ai@@@@@@@@@G@@@E@A0+@@H@@3pppppppp@(@AIU@A+/extension_aliasoR~@@;@@'xa_namer@@!t@@@o@y , The complete name of the target extension. 4@@@@@@@a@%xa_xtsA@7t_extension_constructorpR@@@r@@@t5?5o@ & The target extension, if we found it.5p5@@@@@@@b@@@A/extension_alias@@@y@@@@@ 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@@@Q@J@@@@74@@&T;@@@A\@@@R@K@@@@  @@@@ _@0t_type_extensionqR;@@@A @@@S@L@@@@  ""@@@@/`@@A2-@@@@p-@,@@@@@@#+5G,5L@oA@Ш@г&option55g65m@г7t_extension_constructor>5O?5f@@Q@@@R @@@@uU@.T@@@@@@@Aг.Odoc_extensionXY@\]@@@p@@Jp@@@@@@+Ġİop@@;@@'xt_namet@@!t@@@z~@@c@'xt_args~@@)Odoc_type0constructor_args@@@۰#G@@d@&xt_ret@@O)type_expr@@@@@@HRHr@ + the optional return type of the extension HsH@@@@@@@e@1xt_type_extension@@@@@@ 0 the type extension containing this constructor  @@@@@@@f@(xt_alias@@3]@@@@@@    6@Ɛ , [None] when the extension is not a rebind.   7  h@@@@@@@g@&xt_locA@(location@@@ i s i @@h@'xt_textA@`$info@@@@@@      @; optional user description     @@@@@@@0i@@@A7t_extension_constructor@@@@@@@@@@@#& @@@Ш@г$Name12@56@@@I@@@@{L@@#?*@@@Ш@г)Odoc_typeJ,K5@°N6OF@@@b@@@@e@@#àðXHX@@@Ш@гƠ&optionaHjbHp@гˠ%TypeslHZmH_@ҰpH`qHi@@@@@@ @@@@@נa@@@@@@#Ра@@@Ш@гӠ0t_type_extension@@@@@@@ڠ~@@@@@@#ӠӰ  @@@Ш@г֠&option  .  4@г۠/extension_alias    -@@Ȱ@@@ɰ @@@@@⠰ː@@@@@@#۠۰ i { i @A@Ш@гߠ*Odoc_types i  i @ i  i @@@@@@@@@#    @A@Ш@г렐&option    @г𠡠*Odoc_types    @    @@@@@@ @@@@@@@@@@@@Aг.Odoc_extension@@@@0@@@+$ !% !@@;@@'te_infoA@@@@@@@6!@!J7!@!i@" 7 Information found in the optional associated comment. D!@!jE!@!@@@@@@@]j@,te_type_name@@ !t@@@R!!S!!@>; The type of the extension `!!a!!@@@@@@@yk@2te_type_parameters@@!)type_expr@@@@@@s!!t!"@@l@*te_private@@u@@@"")""D@@m@/te_constructorsA@@@@@@@"E"O"E"@@n@&te_locA@ .@@@ """"@@o@'te_codeA@x@@@@@@""""@@p@@@A0t_type_extension@@@@@@@@@@@#!@!R!@!Y@xA@Ш@г&option!@!a!@!g@г$info!@!\!@!`@@@@@ @@@@@吠@@@@@@#!!@@@Ш@г$Name!!!!@!!!!@@@@@@@ @ @@@@@@#!"@@@Ш@г$list!"!"@г%Types!" !"@ !"!!"@@@4@@@5 @@@@8@@#+""3@@@Ш@г,private_flag4""65""B@@G@@@@J@@#="E"W>"E"f@A@Ш@г$listG"E"H"E"@г7t_extension_constructorP"E"hQ"E"@@c@@@d @@@@ g@@#àðZ""[""@A@Ш@гǠ(locationd""e""@@w@@@@ z@@#ʠʰm""n""@A@Ш@гΠ&optionw""x""@гӠ&string""""@@@@@ @@@@@@@Aг֠.Odoc_extension ! !"@ݰ !# !3@@@@@@@3@@A@6extension_constructors####1@б@г0t_type_extension##4##D@@ @@@3@ D;5@A  @@г6$list##`##d@г7t_extension_constructor##H##_@@ @@@@@@@@@  @@@(@@ @@%+@@@##@Đ & Access to the extensions in a group. """#@@@@@@@q@@,@@@@@@@D@A@yA@RB@B@b(@@3@Od*@A 3@@A#f#k@@ 0 Representation and manipulation of extensions. @@@@@@@@@)ExceptionS"#####@;~@@БA+/exception_aliasT1$0$92$0$H@@;@@'ea_name@@ !t@@@@$v$A$v$@, , The complete name of the target exception. N$v$O$v$@@@@@@@gu@%ea_exA@+t_exceptionT@@@@@@a$$b$$@M & The target exception, if we found it.o$$p$%@@@@@@@v@@@A.Odoc_exception/exception_alias@@@@@@@|$0$4}% %)@h j Used when the exception is a rebind of another exception, when we have [exception Ex = Target_ex].###$/@@@@@@@@@s@@#YYR$v$@C@@Ш@г\$Name$v$$v$@c$v$$v$@@@k3@\@A@4.A@?B@B@@@@@@@@@;@@@A@@@@@@@@LI@@;k;@@@As@@@@@@@@%+%/','5@@@@t@@A83@@@@3@琠@@@@@@#$$$$@wA@Ш@г&option$$$$@г+t_exception$$$$@@W@@@X @@@@[@@@@@@@@Aг.Odoc_exception$0$K$0$Y@$0$Z$0$i@@@v@@+@@@@@@+̠̰*%+%3+%+%>@@;@@'ex_name@@ !t@@@9%h%r:%h%@@Rw@'ex_infoA@@@@@@@J%%K%%@6 7 Information found in the optional associated comment. X%%Y%%@@@@@@@qx@'ex_args@@0constructor_args@@@f%%g%&@@y@&ex_ret@@Р ')type_expr@@@@@@y&&&z&&G@e , The optional return type of the exception. &&H&&y@@@@@@@z@(ex_alias@@h@@@@@@ư&z&&z&@ , [None] when the exception is not a rebind. &z&&z&@@@@@@@{@&ex_locA@D@@@ɰ&&&&@@|@'ex_codeA@@@@@@@ΰ'' ''+@@}@@@AT+t_exception@@@@@@@@@@@#%h%y@@@Ш@г$Name%h%|%h%@%h%%h%@@@@@@@@C@@#%%%%@A@Ш@г&option%%%%@г$info%%%%@@\@@@] @@@@`@@@@@@@#%%@@@Ш@г)Odoc_type%&%& @"%& #%&@@@@@@@@@#,&&,@@@Ш@г &option5&&?6&&E@гǠ%Types@&&/A&&4@ΰD&&5E&&>@@@@@@ @@@@@Ӡ5[@@@@@@#̠̰Z&z&@@@Ш@гϠ&optionc&z&d&z&@гԠ/exception_aliasl&z&m&z&@@ʰ@@@˰ @@@@@۠\@@@@@@#Ԡ԰&&&&@A@Ш@гؠ(location&&&&@@@@@@@@#۠۰''''@A@Ш@гߠ&option''#'')@г䠐&string''''"@@@@@ @@@@ @@@Aг砡.Odoc_exception%+%A%+%O@%+%P%+%[@@@@@@@3@@AD@@A@hB@@3@ k@A3@"@A##'6';@@ܐ 0 Representation and manipulation of exceptions. #m#m#m#@@@@@@@##@@$TypeU'm't'm'x@@@БA+,private_flagV''''@@;@@'Private@@''''@@@&Public@@ '' ''@@#@@@A,private_flag@@@@@@@'' @@A@-@@#@@@@@#!''@@@@@@Aг)Odoc_type,''-''@0''1''@@@%300000000@@ A@B@@&on@nn@@@n@n@k"S;@@@A[@@@@@@@@;@@@9@A$@@<@@3MMMMMMMM@@A=G@A+,record_fieldW['(\'(@@;@@'rf_name@@4@@@h(4(>i(4(P@T4 Name of the field. v(4(Qw(4(j@@@@@@@@*rf_mutable@@?@@@(k(u(k(@n4 [true] if mutable. (k((k(@@@@@@@@)rf_atomic@@Y@@@((((@3 [true] if atomic. ((((@@@@@@@@'rf_type@@ g)type_expr@@@((((@4 Type of the field. ((()@@@@@@@@'rf_textA@07@@@@@@ ))# ))B@Ð 0 Optional description in the associated comment. ))C ))x@@@@@@@@@@Ad,record_field@@@@@@@'' )y)@ܐ % Description of a record type field. ''''@@@@@@@@@ @@# (4(E@@@Ш@г&string (4(H (4(N@@3        @!;@@@A@@@@@@@@.+@@@A@@@@@  0@@@@@@# /(k(@@@Ш@г$bool 8(k( 9(k(@@)@@@@,@' M@@@@@@# L((@@@Ш@г$bool U(( V((@@F@@@@I@D j@@@@@@# i((@@@Ш@г%Types t(( u((@° x(( y((@@@j@@@@m@Ǡh @@@@@@#  ))+  ))2@A@Ш@гĠ&option  )):  ))@@гɠ$info  ))5  ))9@@@@@ @@@@@Р @@@@@@@Aгɠ)Odoc_type '( '(@а '( '('@@@@@Ӡ Ґ@@@@@@@3        @@A@A+0constructor_argsX  ))  ))@@;@@+Cstr_record b@@@@@@@@ )) )*@@!@*Cstr_tuple u )type_expr@@@@@@@@!**"!**F@@!@@@A0constructor_args@@@@@@@!  )) @ , Description of a variant type constructor. ! ))! ))@@@@@@@@@!2@@#AA!!))!")*@5@гC$list!+)*?@гG,record_field!3)* !4)*@@O3!2!2!2!2!2!2!2!2@%d;@@@Al@@@@@@@@64@@&@A@@@` V@@@@X@#TT!G**$!H**.@F@гV$list!Q**BP@гZ%Types![**2!\**7@a!_**8!`**A@@@i-@@@n. b@@@@d@@Aг`)Odoc_type!m ))!n ))@g!q ))!r ))@@@o?@@j_!ih@hh@@@h@h@@3!}!}!}!}!}!}!}!}@J@Av@A+3variant_constructorY!*H*Q!*H*d@@;@@'vc_name@@!d@@@!**!**@: Name of the constructor. !**!**@@@@@@@!@'vc_args@@@@@!**!**@@!@&vc_ret@@!s)type_expr@@@@@@!**!*+@@!@'vc_textA@!/6@@@@@@!!+ +*!+ +I@ 1 Optional description in the associated comment. !+ +J!+ +@@@@@@@!@@@A c3variant_constructor@@@$@@@@!*H*L!++@@@@"@@#dd_!**@P@@Ш@гg&string"**"**@@o3!!!!!!!!@1+~;@@@A@@@4@@@@@ @@@@A@@~@@@z"!xw@ww@@@w@w@#ssn" **@m@@Ш@гv0constructor_args")**"***@@~)@@@@,@}@#yym"2*+@l@@Ш@г|&option";*+"<*+@г%Types"F*+"G*+ @"J*+ "K*+@@@K@@@L @@@@O@@#"U+ +2"V+ +9@qA@Ш@г&option"_+ +A"`+ +G@г$info"h+ +<"i+ +@@@h@@@i @@@@"l@ X"~@@@@@@@Aг)Odoc_type"*H*g"*H*p@"*H*q"*H*@@@@@@@3""""""""@@A@A+)type_kindZ"++"++@@;@@-Type_abstract@@"++"++@ ) Type is abstract, for example [type t]. "++"+,#@@@@@@@"@,Type_variantÐ"66@@@Q@@@S@@",$,*",$,T@ . constructors ",U,h",U,{@@@@@@@"@+Type_recordĐ"W@@@T@@@V@@",|,",|,@ ͐( fields ",,",,@@@@@@@#@)Type_openŐ@@" ,," ,,@ 䐠. Type is open # ,,# ,,@@@@@@@#@-Type_externalƐ"@@@W@@#!,,#!,- @! 0 Type is external, e.g. [type t = external "t"] #""- -##"- -T@@@@@@@#;@@@A )type_kind@@@X@@@@#-++@!> The various kinds of a type. #:++#;++@@@@@@@@@#S@@#@@@@!-#S@@@@@@##R,$,,#S,$,8@@г$list#\,$,P@г3variant_constructor#d,$,<#e,$,O@@3#c#c#c#c#c#c#c#c@e;@@@A@@@g@P@@@@FD@@6@A@@@ @@@@!^#@@@@@@##,|,#,|,@@г$list#,|,@г,record_field#,|,#,|,@@1@@@2@@@@!#@@@@@@## ,,@@@@!#@@@@@@##!,,#!,-@@г&string#!,-@@^@@@@!#Ր@@@@@@@Aг)Odoc_type#++#++@#++#++@@@z@@!#񐠠@@@@@@@3########@@A@A+,object_field[#$-V-_#$-V-k@@;@@'of_name@@#@@@$%--$%--@@$@'of_type@@)type_expr@@@$&--$&--@@$+@'of_textA@#|"$info@@@@@@$%'--$&'--@"; optional user description $3'--$4'-.@@@@@@@$L@@@A ,object_field@@@@@@@$>$-V-Z$?(..@@@@$W@@#GGB$F%--@A@@Ш@гJ&string$O%--$P%--@@R3$N$N$N$N$N$N$N$N@a;@@@Ai@@@@@@@@ @@@@A@@a@@@]@#YYR$d&--@Q@@Ш@г\%Types$o&--$p&--@c$s&--$t&--@@@k%@@n@@(@h@#dd$}'--$~'--@JA@Ш@гh&option$'--$'--@гm*Odoc_types$'--$'--@t$'--$'--@@@|H@@@I @@@@L@y"$wv@vv@@@v@v@@Aгr)Odoc_type$$-V-n$$-V-w@y$$-V-x$$-V-@@@g@@|@@3$$$$$$$$@g@A}|@A+-type_manifest\$*..&$*..3@@;@@%Other̐)type_expr@@@@@$+.P.V$+.P.p@" . Type manifest directly taken from Typedtree. $+.P.q$+.P.@@@@@@@$@+Object_type͐$l@@@@@@@@$,..$,..@@%@@@A u-type_manifest@@@@@@@%*..! @@@@%@@#<<%+.P.X% +.P.]@%@г>%Types%+.P.a%+.P.f@E%+.P.gC@D@@L3%%%%%%%%@*$];@@@Ae@@@@@@@@&@@@$@AQ@@@@S#%7QP@PP@@@P@P@#LL%6,..%7,..@@@гN$list%@,..J@гR,object_field%H,..%I,..@@Z0@@@_1U@@@@W@@AгS)Odoc_type%U*..6%V*..?@Z%Y*..@%Z*..M@@@bB@@]@@3%Z%Z%Z%Z%Z%Z%Z%Z@B@A^h@A+&t_type]%h/..%i/./@@;@@'ty_name@@!t@@@ΰ%w1/#/-%x1/#/?@#c< Complete name of the type. %1/#/@%1/#/a@@@@@@@%@'ty_infoA@$@@@@@@Ӱ%2/b/l%2/b/@# 7 Information found in the optional associated comment. %2/b/%2/b/@@@@@@@%@-ty_parameters@@%+@i)type_expr@@@֠@r(Variance!t@@@@@@@@%3//%3/0@# # type parameters: (type, variance) %400#%400K@@@@@@@%@'ty_kind@@L@@@%50L0V%50L0j@#ː, Type kind. %50L0k%50L0|@@@@@@@&@*ty_private@@@@@%60}0%60}0@#吠9 Private or public type. &60}0&60}0@@@@@@@& @+ty_manifest@@%qU@@@@@@&700&700@@&1@&ty_locA@@@@&$800&%801@@&=@'ty_codeA@%&@@@@@@&5911 &6911@@@&N@@@A &t_type@@@@@@@&@/..&A:1A1J@$,; Representation of a type. &N...&O...@@@@@@@@@&g@@#&V1/#/4@@@Ш@г頡$Name&a1/#/7&b1/#/;@&e1/#/<&f1/#/=@@@3&e&e&e&e&e&e&e&e@O;@@@A@@@@@@@@52@@$@A@@@@@$a&@@@@@@#&2/b/t&2/b/{@A@Ш@г&option&2/b/&2/b/@г$info&2/b/~&2/b/@@ 3@@@4 @@@@7@ $&@@@@@@#&3//@@@Ш@г$list&3/0&3/0 @В@г %Types&3//&3//@&3//&3//@@@e@@@г%Types&3//&3//@&3//&3/0@@!&3/0&3/0@ @@+~ @@@8"@@@=&3//2@@A@@@($&&%@%%@@@%@%@#!!&50L0]@ @@Ш@г$)type_kind'50L0`'50L0i@@,@@/@@@+$')(@((@@@(@(@#$$'60}0@@@Ш@г',private_flag'!60}0'"60}0@@/@@2@@@.%'6,+@++@@@+@+@#'''5700@@@Ш@г*&option'>700'?700@г/-type_manifest'G700'H700@@7@@@< @@?@@@6@#22'Q801'R801@-A@Ш@г6(location'[801 '\801@@>@@A@@@=@#99'd911('e911/@/A@Ш@г=&option'n9119'o911?@гB&string'w9112'x9118@@J@@@O @@R@@@I@@AгE)Odoc_type'/./'/./@L'/./'/./@@@T%@@O%x'ML@LL@@@L@L@@3''''''''@0@A[Z@@A@HBA@A@A@A@A@A@GAA@@3''''''''@CIC@A3''''''''@z@A''{'}'<1L1Q@@%' * Representation and manipulation of types.''='=''='l@@@@@@@''m'm@@%Value^'?11'?11@'@@БA+'t_value_'B11'B11@@;@@(val_name@@U!t@@@j'D22 'D223@%ؐ= Complete name of the value. 'D224'D22V@@@@@@@(@(val_infoA@'dk@@@m@@@o( E2W2a( E2W2@% 7 Information found in the optional associated comment. (E2W2(E2W2@@@@@@@(2@(val_type@@)type_expr@@@r('F22((F22@&4 Type of the value. (5F22(6F22@@@@@@@(N@-val_recursive@@'@@@u(AG33 (BG33 @&- # [true] if the value is recursive. (OG33!(PG33I@@@@@@@(h@.val_parametersA@'֠)parameter@@@x@@@z(bH3J3T(cH3J3@&N9 The parameters, if any. (pH3J3(qH3J3@@@@@@@(@(val_codeA@'ڠ(L@@@}@@@(I33(I33@&m D The code of the value, if we had the only the implementation file. (I33(I34"@@@@@@@(@'val_locA@-@@@(J4#4-(J4#4I@@(@@@A*Odoc_value't_value@@@@@@@(B11(K4J4S@&< Representation of a value. (A11(A11@@@@@@@@@(@@#٠ٰ(D22(@@@Ш@гܠ$Name(D22+(D22/@(D220(D221@@@3((((((((@  @  A@  |A@A@VPA@NHA@A@#A@{A@@&ϐ21@11@@@1@1@. ;@@@A@@@@i@@@@QN@@@@A0+@@@@k+@&)  @  @@@ @ @#  ) E2W2i) E2W2q@A@Ш@г &option)E2W2y)E2W2@г$info)E2W2t)E2W2x@@O@@@P @@"@@pS@' )3@@@@@@# )2F22@@@Ш@г%Types)=F22)>F22@)AF22)BF22@@@$t@@'@@sw@!'1)W@@@@@@#)VG33@@@Ш@г$bool)_G33)`G33@@%@@(@@v@$'N)t"!@!!@@@!@!@#)sH3J3\)tH3J3j@A@Ш@г!$list)}H3J3)~H3J3@г&.Odoc_parameter)H3J3m)H3J3{@-)H3J3|)H3J3@@@5@@@: @@=@@{@2'})0/@//@@@/@/@#++)I33)I33@A@Ш@г/&option)I33)I33@г4&string)I33)I33@@<@@@A @@D@@@;')ː98@88@@@8@8@#44)J4#45)J4#4<@/A@Ш@г8(location)J4#4?)J4#4G@@@@@C@@ @?@@Aг;*Odoc_value)B11)B12@@)B12)B12 @@@J@@C')A@@@@@@@@@@@@3))))))))@$@AON@A++t_attribute`*N44*N44@@;@@)att_value@@2@@@u* P44*P44@' = an attribute has almost all the same information as a value *P44*P45!@@@@@@@*4@+att_mutable@@)@@@x*'Q5"5,*(Q5"5@@( % [true] if the attribute is mutable. *5Q5"5B*6Q5"5l@@@@@@@*N@+att_virtual@@)@@@{*AR5m5w*BR5m5@(- % [true] if the attribute is virtual. *OR5m5*PR5m5@@@@@@@*h@@@A+t_attribute@@@@@@@*ZN44*[S55@(F & Representation of a class attribute. *hM4U4Y*iM4U4@@@@@@@@@*@@#hhc*pP44@T@@Ш@гk't_value*yP44*zP44@@s3*x*x*x*x*x*x*x*x@;@@@A@@@@t@@@@.+@@@A@@@@v@~(t*|{@{{@@@{@{@#wwr*Q5"57@c@@Ш@гz$bool*Q5"5:*Q5"5>@@)@@@@y,@(*~@~~@@@~@~@#zzu*R5m5@f@@Ш@г}$bool*R5m5*R5m5@@F@@@@|I@(*Ԑ@@@@@@@Aг}*Odoc_value*N44*N44@*N44*N44@@@d@@(*𐠠@@@@@@@3********@o@A@A+(t_methoda*V55*V56@@;@@)met_value@@(@@@+X6$6.+X6$6C@( 9 a method has almost all the same information as a value +X6$6D+X6$6@@@@@@@+*@+met_private@@*@@@+Y66+Y66@) ! [true] if the method is private.++Y66+,Y66@@@@@@@+D@+met_virtual@@*@@@+7Z66+8Z66@)# " [true] if the method is virtual. +EZ66+FZ67@@@@@@@+^@@@A(t_method@@@@@@@+PV55+Q[77@)< # Representation of a class method. +^U55+_U55@@@@@@@@@+w@@#hhc+fX6$67@T@@Ш@гk't_value+oX6$6:+pX6$6A@@s3+n+n+n+n+n+n+n+n@xr;@@@A@@@@@@@@.+@@@A@@@@@~)j+|{@{{@@@{@{@#wwr+Y66@c@@Ш@гz$bool+Y66+Y66@@)@@@@,@)+~@~~@@@~@~@#zzu+Z66@f@@Ш@г}$bool+Z66+Z66@@F@@@@I@)+ʐ@@@@@@@Aг}*Odoc_value+V56+V56@+V56+V56@@@d@@)+搠@@@@@@@3++++++++@o@A@+is_function+^7q7y+^7q7@б@г't_value+^7q7+^7q7@@ @@@3++++++++@ @A@@г+$bool,^7q7,^7q7@@ @@@@@@@@@@ @@@,^7q7u @) J Return [true] if the value is a function, i.e. it has a functional type. ,]77!, ]77p@@@@@@@,8@@@* ,3@@@@@@31S1S,>1S1@@@@@@@,?11@@%ClassXb,e8u8|,e8u8@,@@Б,,ᐠ+ {1 Types} ,g88,g88@@@@@@3,,,,,,,,@@ A@A@A@@p@@*ؐ@?@??@@@?@?@<(@AA+-class_elementc-j88-j88@@;@@/Class_attributeF+t_attribute@@@@@-k9 9-k9 95@@-+@,Class_method V(t_method@@@@@-"l969<-#l969\@@-;@-Class_comment +<@@@@@-0m9]9c-1m9]9z@@-I@@@A*Odoc_class-class_element@@@!7@@@@-=j88 @+( + To keep the order of elements in a class. -Ji88-Ki88@@@@@@@@@-c@@#II@-Rk9 9 @?@гJ%Value-]k9 9$-^k9 9)@Q-ak9 9*O@P@@X3-`-`-`-`-`-`-`-`@h;@@@Ap@@@!I@@@@@20@@"@A\@@@@^@#ZZ-sl969>-tl969J@Q@г\%Value-l969N-l969S@c-l969Ta@b@@j"c@@@@e@#aa-m9]9e-m9]9r@Z@гc$text-m9]9vd@@j2e@@@@g@@Aгc*Odoc_class-j88-j88@h-j88-j89@@@rC@@k+-ji@ii@@@i@i@@Ұv@A+#cct!d-p99-p99@@;@@"Cl*'t_class&d@@@!n@@-q99-q99@@-@&Cltype+,t_class_type)d@@@!o-])type_expr@@@!p@@@!r@@-r99-r9:*@+Ր ! Class type and type parameters. -r9:+-r9:Q@@@@@@@.@@@A#cct@@@!s@@@@.p99@+퐠 9 Used when we can reference a t_class or a t_class_type. .o9|9.o9|9@@@@@@@@@.(@@#SSJ.q99@I@гT't_class. q99S@@[3........@K/)t;@@@A|@@@"@!e@@@@42@@$/inherited_class"d;@@@A @@@"@!f@@@@.At:S:W.By;;@@@@.Z@+class_apply#d;@@@A @@@"@!g@@@@.P{;;.Q=,=5@@@@.i@,class_constr$d;@@@A @@@"@!h@@@@._=7=;.`>>@@@@.x@*class_kind%d;@@@A @@@"@!i@@@@.n>>.oAAP@@@@.@;@@@A@@@"@!j@@@@.{AA.|D0D9@,g< Representation of a class. .AA.AA@@@@@@@@@.@0class_type_alias'd;@@@A @@@"@!k@@@@.D;D?.EE@@@@.@/class_type_kind(d;@@@A @@@"@!l@@@@.EE.F FF@@@@.@;@@@A@@@"@!m@@@@.FF.HH@, ! Representation of a class type. .F}F.F}F@@@@@@@@@.@@A@@@@@#.r99.r9:@@г,t_class_type.r9:.r9:@@@@г$list.r9:&@г%Types.r9:.r9:@.r9:.r9:%@@@ΰ@@@ϰ @@@@ ,/@@@@@@@Aг*Odoc_class/p99/p99@ / p99/ p99@@@@@ ,/  @  @@@ @ @+/t:S:[/t:S:j@@;@@'ic_name,@@!t@@@!t/+v::/,v::@- ' Complete name of the inherited class. /9v::/:v::@@@@@@@/R@(ic_class-A@.@@@!w@@@!y/Jw::/Kw:;@-6 ) The associated t_class or t_class_type. /Xw:;/Yw:;6@@@@@@@/q@'ic_text.@@. -t@@@!|@@@!~/ix;7;A/jx;7;X@-U & The inheritance description, if any. /wx;7;Y/xx;7;@@@@@@@/@@@AG/inherited_class@@@!@@@@A@@@>@#bb[/v::@L@@Ш@гe$Name/v::/v::@l/v::/v::@@@tw@@w@@!uz@q-/on@nn@@@n@n@#jj/w::/w::@RA@Ш@гn&option/w::/w:;@гs#cct/w::/w::@@{@@@ @@@@!z@z-/Ӑxw@ww@@@w@w@#ssi/x;7;H@Z@@Ш@гv&option/x;7;P/x;7;V@г{$text/x;7;K/x;7;O@@Ű@@@ư @@@@!@-/@@@@@@@Aг{*Odoc_class/t:S:m/t:S:w@0t:S:x0t:S:@@@@@@+Ġİ0 {;;0 {;;@@;@@)capp_name/@@!t@@@!0};;0};;@. ) The complete name of the applied class. 0'};;0(};<@@@@@@@0@@*capp_class0A@/l@@@!@@@!08~<@#|0};;@m@@Ш@г$Name0};;0};;@0};;0};;@@@@@@@!@.0@@@@@@#0~<<)0~<<3@sA@Ш@г&option0~<<>0~<0@@@@@@@1@3cco_type_parameters5@@1 D)type_expr@@@!@@@!1>1>;1>1>f@/ . The type parameters of the class, if needed. 1>1>g1>1>@@@@@@@1@@@At,class_constr@@@!@@@@P@@@M@#dd]1=r=@N@@Ш@гg$Name1=r=1=r=@n1=r=1=r=@@@v@@y@@!@s/1ؐqp@pp@@@p@p@#ll1==1==@TA@Ш@гp&option1==1==@гu#cct1==1==@@}˰@@@̰ @@@@!@|/2zy@yy@@@y@y@#uui1>1>N@Z@@Ш@гx$list2>1>a2 >1>e@г}%Types2>1>Q2>1>V@2>1>W2>1>`@@@@@@ @@@@!@02.@@@@@@@Aг*Odoc_class22=7=N23=7=X@26=7=Y27=7=e@@@@@@+ڠڰ2>>>2?>>@@;@@/Class_structure61Ƞ@@@!@@@!1Ҡ\@@@!@@@!@@2\>>2]>?@0H D An explicit class structure, used in implementation and interface. 2j?? 2k??i@@@@@@@2@+Class_apply72@@@!@@2x?j?p2y?j?@0d < Application/alias of a class, used in implementation only. 2??2??@@@@@@@2@,Class_constr8?@@@!@@2??2??@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] 2?@2@A@@@@@@@2@0Class_constraint9L@@@!@@@!@@2AAG@0 ' A class definition with a constraint. 2AQAY2AQA@@@@@@@2@@@A*class_kind@@@!@@@@_@@@\@#u2>>@f@г$list2>>2>?@г/inherited_class2>>2>>@@İ@@@Ű @@г$list2>?@г-class_element2>?2>?@@װ@@@ذ@@@@03 @@@@@@#3 ?j?r3 ?j?}@@г+class_apply3?j?@@@@@@03%@@@@@@#3$??3%??@@г,class_constr3.??@@@@@@13@@@@@@@#3?AA 3@AA0@}@г*class_kind3IAA43JAA>@@*@@г/class_type_kind3SAAA@@3@@@@1?3e@@@@@@@Aг*Odoc_class3i>>3j>>@3m>>3n>>@@@O@@@+3uAA3vAA@@;@@'cl_name:@@"!t@@@!3AA3AA@1p= Complete name of the class. 3AA3AB@@@@@@@3@'cl_info;A@2(@@@!@@@!3BB(3BBG@1 7 Information found in the optional associated comment. 3BBH3BB@@@@@@@3@'cl_type<@@ n*class_type@@@!3BB3BB@14 Type of the class. 3BB3BB@@@@@@@3@2cl_type_parameters=@@3T )type_expr@@@!@@@!3BB3BB@1̐2 Type parameters. 3BB3BC@@@@@@@4@*cl_virtual>@@3@@@!İ3CC3CC1@1搠 # [true] when the class is virtual. 4CC24 CCZ@@@@@@@4!@'cl_kind?A@@@@!ǰ4C[Ce4C[C@2? The way the class is defined. 4"C[C4#C[C@@@@@@@4;@-cl_parameters@A@3!<)parameter@@@!@@@!45CC46CC@2!> The parameters of the class. 4CCC4DCD @@@@@@@4\@&cl_locAA@$@@@!4OD D4PD D/@@4h@@@A't_class@@@!@@@@@@@#4^AA@@@Ш@г䠡$Name4iAA4jAA@4mAA4nAA@@@O@@@@!R@𠰠2]4@@@@@@#4BB04BB7@A@Ш@г&option4BB?4BBE@г$info4BB:4BB>@@v@@@w @@@@!z@24@@@@@@#4BB@@@Ш@г%Types4BB4BB@4BB4BB@@@@@@@!@24ϐ@@@@@@#4BB@@@Ш@г$list4BB4BB@г%Types4BB4BB@ 4BB4BB@@@Ȱ@@@ɰ @@@@!@24  @  @@@ @ @#4CC(@@@Ш@г $bool5CC+5CC/@@@@@@!@25@@@@@@#  5C[Cm5C[Ct@A@Ш@г*class_kind5#C[Cw5$C[C@@@@@@!@358@@@@@@#57CC58CC@A@Ш@г$list5ACC5BCC@г)Parameter5LCC5MCC@5PCC5QCC@@@&2@@@+3 @@.@@!6@#3A5g! @  @@@ @ @#5fD D5gD D"@A@Ш@г (location5pD D%5qD D-@@(Q@@+@@!T@'@@Aг#*Odoc_class5~AA5AA@*5AA5AA@@@2d@@ 3p5  @  @@@ @ @+5D;DC5D;DS@@;@@(cta_nameB@@% !t@@@!5D~D5D~D@3 ) Complete name of the target class type. 5D~D5D~D@@@@@@@5@)cta_classCA@5@@@"@@@"5DD5DD@3 4 The target t_class or t_class_type, if we found it.5DD5DE0@@@@@@@5@3cta_type_parametersD@@5X")type_expr@@@"@@@"5E1E;5E1Eg@3А + The type parameters. FIXME : use strings? 5E1Eh5E1E@@@@@@@6 @@@A0class_type_alias@@@" @@@@e@@@b@#dd]6D~D@N@@Ш@гg$Name6 D~D6 D~D@n6D~D6D~D@@@v@@y@@!@s46&qp@pp@@@p@p@#ll6%DD6&DD@TA@Ш@гp&option6/DD60DD@гu#cct68DD69DD@@}@@@ @@@@"@|4(6Nzy@yy@@@y@y@#uui6ME1EN@Z@@Ш@гx$list6VE1Ea6WE1Ee@г}%Types6aE1EQ6bE1EV@6eE1EW6fE1E`@@@G@@@H @@@@" K@4V6|@@@@@@@Aг*Odoc_class6D;DV6D;D`@6D;Da6D;Dq@@@f@@@+6EE6EE@@;@@/Class_signatureE6h@@@"@@@"6  @@@"@@@"@@6EE6EF@@6@*Class_typeF*@@@"@@6F F&@4 / A class type eventually applied to type args. 6F FG6F F{@@@@@@@6@@@A /class_type_kind@@@"@@@@)@@@&@#@@*6EE@)@гA$list6EF6EF @гF/inherited_class6EE6EF@@Nǰ@@@SȰ @@гK$list6EFG@гO-class_element6EF 6EF@@Wڰ@@@\۰R@@@@T@#PP7F F(7F F2@<@гR0class_type_alias7 F F6d@@Ye@@@@V47UT@TT@@@T@T@@AгP*Odoc_class7!EE7"EE@W7%EE7&EE@@@_ @@@+ R R7-FF7.FF@@;@@(clt_nameG@@&!t@@@"7<FF7=FG@5(< Complete name of the type. 7JFG7KFG"@@@@@@@7c@(clt_infoHA@6+@@@"@@@"7[G#G-7\G#GM@5G 7 Information found in the optional associated comment. 7iG#GN7jG#G@@@@@@@7@(clt_typeI@@$&*class_type@@@"7wGG7xGG@@7@3clt_type_parametersJ@@6$8)type_expr@@@"!@@@"#7GG7GG@5v2 Type parameters. 7GG7GH@@@@@@@7@+clt_virtualK@@7a@@@"&7HH 7HH @5 % [true] if the class type is virtual 7HH!7HHK@@@@@@@7@(clt_kindLA@ !@@@")7HLHV7HLHz@5 $ The way the class type is defined. 7HLH{7HLH@@@@@@@7@'clt_locMA@(j@@@",7HH7HH@@7@@@A ,t_class_type@@@"1@@@@ / ,@@ @#7FF@@@Ш@г$Name7FF7FF@7FF7FF@@@ ذ@@@@" @58 @@@@@@#8 G#G58 G#G=@A@Ш@г&option8G#GE8G#GK@гà$info8G#G@8G#GD@@ @@@  @@@@" @ʠ684@@@@@@#àð83GG@@@Ш@гƠ%Types8>GG8?GG@Ͱ8BGG8CGG@@@ $@@@@" '@@#Πΰ8LGG@@@Ш@гѠ$list8UGG8VGG@г֠%Types8`GG8aGG@ݰ8dGG8eGG@@@ F@@@ G @@@@"$ J@⠰6U8{@@@@@@#۠۰8zHH@@@Ш@гޠ$bool8HH8HH@@ d@@@@"' g@堰6r8@@@@@@#ޠް8HLH^8HLHf@A@Ш@г⠐/class_type_kind8HLHi8HLHx@@ @@@@"* @頰68@@@@@@#8HH8HH@A@Ш@г栐(location8HH8HH@@ @@@@"- @@@Aг頡*Odoc_class8FF8FF@8FF8FF@@@ @@ "68吠  @  @@@ @ @@388888888@ @A  -@88/ {1 Functions} 8HH8HH@@@@@@388888888@  $ bo qf 4      E ?@A .class_elementsN9II'9II5@б%transг8͠$bool9II?9IIC@@ @@@$i$@@б@г T't_class9!IIG9"IIN@@ @@@$j3@@г8$list9.II`9/IId@г 7-class_element98IIR99II_@@ @@@$kJ@@@@@@$mO @@@$@@$n @@$oT'@@A8<@@@$q@@$r@@$s^9RII8$@@ @9UII#'@7@ $ Access to the elements of a class. 9bHH9cHI@@@@@@@9{@@7@7P9v@@@@@@~0class_attributesO9yII9zII@б%transг9A$bool9II9II@@ @@@$t399999999@:@A@@б@г ʠ't_class9II9II@@ @@@$u@@г9$list9II9II@г+t_attribute%Value9II9II@ 9II9II@@@@@@$v1 @@@ @@@$x6@@@-@@$y @@$z;0"@@LF@@@$|@@$} @@$~D9II,@@ @9II/@7 ) Access to the list of class attributes. 9IfIj9IfI@@@@@@@9@@?@79@@@@@@d,@@ @<'LL"/@: . Access to the list of class type attributes. <4KK<5KL@@@@@@@V@@Б>>+ {1 Types} >N~N>N~N@@@@@@3>>>>>>>>@'D@ A@VPA@B@B@ B@ B@O B@B@B@EB@@Q@1@i@I@@c@@{@@@<^]@]]@@@]@]@Zq@A9A+.module_elementYf>ENN>FNN@@;@@.Element_modulec(t_module_f@@@$@@>VOO >WOO#@@>o@3Element_module_typed-t_module_typebf@@@$@@>fO$O*>gO$OP@@>@7Element_included_modulee/included_module[f@@@$@@>vOQOW>wOQO@@>@-Element_classf't_class@@@%@@>OO>OO@@>@2Element_class_typeg,t_class_type@@@%@@>OO>OO@@>@-Element_valueh't_value@@@%@@>OO>OP@@>@6Element_type_extensioni'0t_type_extension@@@%@@>PP >PP?@@>@1Element_exceptionj"+t_exception@@@%@@>P@PF>P@Pr@@>@,Element_typek&t_type@@@&@@>PsPy>PsP@@>@6Element_module_commentl<@@@&@@>PP>PP@@> @@@A+Odoc_module.module_element@@@)f@@@@>NN @<ܐ , To keep the order of elements in a module. >NN>NN@@@@@@@@@?@@#?OO@@г(t_module?OO@@3? ? ? ? ? ? ? ? @;@@@A@@@*@$@@@@42@@$#mmtZf;@@@A @@@*@$@@@@?0QQ?1Q9QY@= 8 Used where we can reference t_module or t_module_type. ?>PP??PQ@@@@@@@@@?W@;@@@A@@@*@$@@@@?KQ[Q_?LRR@@@@?d@,module_alias\f;@@@A @@@*@$@@@@?ZRR?[SS@@@@?s@0module_parameter]f;@@@A @@@*@$@@@@?iSS?jTT@@@@?@+module_kind^f;@@@A @@@*@$@@@@?x UU?yYY3@=d> Different kinds of a module. ? TT? TU@@@@@@@@@?@7;@@@A?@@@*@$@@@@?YY?)]5]>@== Representation of a module. ?YiYm?YiY@@@@@@@@@?@1module_type_alias`f;@@@A @@@*@$@@@@?+]@]D?/^@^I@@@@?@0module_type_kindaf;@@@A @@@*@$@@@@?2^v^z?:``@= ! Different kinds of module type. ?1^K^O?1^K^u@@@@@@@@@?@n;@@@Av@@@*@$@@@@?>a3a7?Jdd@=Ɛ " Representation of a module type. ?=aa ?=aa2@@@@@@@@@@@@A@@@@@#?O$O,?O$O?@@г-t_module_type?O$OC@@@@@@@#@OQOY@OQOp@@г/included_module@ OQOt@@@@@@@#@OO@OO@@г%Class@OO@OO@@ OO@@@@@@@@#@'OO@(OO@@г%Class@3OO@4OO@@7OO@@@)@@@@@#@>OO@?OO@@г%Value@JOO@KOO@@NOO@@@@@@@@@#@UPP @VPP!@@г)Extension@aPP%@bPP.@@ePP/@@@W@@@@@#@lP@PH@mP@PY@@г)Exception@xP@P]@yP@Pf@@|P@Pg@@@n@@@@@#@PsP{@PsP@@г$Type@PsP@PsP@@PsP@@@@@@@@#@PP@PP@@г$text@PP@@@@@@@@Aг+Odoc_module@NN@NN@İ@NN@NN@@@@@Ǡ>@ǐ@@@@@@+@QQ @QQ @@;@@#Mod@@@)g@@@Q!Q'@Q!Q8@@@ @'Modtype@@@)h@@@Q9Q?@@@ @@@A#mmt@@@)i@@@@@@@###@Q!Q)@Q!Q,@@г%(t_module@Q!Q0&@@,'@@@@)@#%%AQ9QAAQ9QH@@г'-t_module_typeA Q9QL@@.@@@@+@@Aг(+Odoc_moduleAQQAQQ@/AQQAQQ@@@7 @@?A.@@@@@@+A-Q[QcA.Q[Qr@@;@@'im_name@@0!t@@@)jA<QQA=QQ@?( ' Complete name of the included module. AJQQAKQQ@@@@@@@Ac @)im_moduleA@@4@@@)m@@@)oA[QQA\QR@?G 5 The included module or module type, if we found it. AiQRAjQRL@@@@@@@A @'im_infoA@@Ӡ?h$info@@@)r@@@)tA|RMRWA}RMR@?h / comment associated with the include directive ARMRARMR@@@@@@@A@@@A/included_module@@@)y@@@@J@@@G@#dd]AQQ@N@@Ш@гg$NameAQQAQQ@nAQQAQQ@@@v@@y@@)k@s?Aqp@pp@@@p@p@#llAQQAQR@TA@Ш@гp&optionAQR AQR@гu#mmtAQRAQR@@}°@@@ð @@@@)p@|?A搠zy@yy@@@y@y@#uuARMR_ARMRf@[A@Ш@гy&optionARMRyARMR@г~*Odoc_typesARMRiARMRs@ARMRtARMRx@@@@@@ @@@@)u@?B@@@@@@@Aг+Odoc_moduleBQ[QuBQ[Q@BQ[QBQ[Q@@@@@@+ՠհB%RRB&RR@@;@@'ma_name@@1!t@@@)zB4RSB5RS@@ % Complete name of the target module. BBRSBCRSE@@@@@@@B[@)ma_moduleA@A,@@@)}@@@)BSSFSPBTSFSp@@? : The real module or module type if we could associate it. BaSFSqBbSFS@@@@@@@Bz@@@A},module_alias@@@)@@@@@@@@#CC<BpRS@-@@Ш@гF$NameB{RSB|RS@MBRSBRS@@@Ur@@X@@){u@R@oBPO@OO@@@O@O@#KKBSFSXBSFSa@3A@Ш@гO&optionBSFShBSFSn@гT#mmtBSFSdBSFSg@@\@@@a @@d@@)@[@BYX@XX@@@X@X@@AгT+Odoc_moduleBRRBRR@[BRRBRR@@@c@@p@+nnBSSBSS@@;@@'mp_name@@B@@@)BSTBST@@Ɛ* the name BSTBST"@@@@@@@C@'mp_type@@BR/+module_type@@@)@@@)BT#T+BT#TO@@琠* the type C T#TPC T#T_@@@@@@@C"@,mp_type_code@@B@@@)CT`ThCT`T@A3 the original code C#T`TC$T`T@@@@@@@C<@'mp_kind@@z@@@)C/TTC0TT@A ! the way the parameter was built C=TTC>TT@@@@@@@CV@@@AY0module_parameter@@@)@@@@@@@@#wwrCLST@c@@Ш@гz&stringCUST CVST@@G@@@@)J@ADCj~@~~@@@~@~@#zznCiT#T2@_@@Ш@г}&optionCrT#TGCsT#TM@г%TypesC}T#T5C~T#T:@CT#T;CT#TF@@@t@@@u @@@@)x@ArC@@@@@@#CT`Tt@s@@Ш@г&stringCT`TwCT`T}@@@@@@)@AC@@@@@@#CTT@v@@Ш@г0module_type_kindCTTCTT@@@@@@)@ACҐ@@@@@@@Aг+Odoc_moduleCSSCSS@CSSCSS@@@Ͱ@@v@+ttC UUC UU)@@;@@-Module_structCl@@@)@@@)@@C UFULC UFUr@A␠> A complete module structure. D UFUsD UFU@@@@@@@D@,Module_alias@@@)@@D UUD UU@A 7 Complete name and corresponding module if we found it D  UUD! UU@@@@@@@D9@.Module_functor@@@)@@@)@@D3 UUD4 UV1@B > A functor, with its parameter and the rest of its definition DAV2VGDBV2V@@@@@@@DZ@,Module_apply@@@)@@@)@@DTVVDUVV@B@ / A module defined by application of a functor. DbVVDcVW@@@@@@@D{@1Module_apply_unit@@@)@@DpWW DqWW/@B\ ( A generative application of a functor. D~W0WEDW0Wr@@@@@@@D@+Module_with@@@)D]@@@)@@DWsWyDWsW@B} n A module whose type is a with ... constraint. Should appear in interface files only. DWWDWX,@@@@@@@D@1Module_constraint?@@@)@@@)@@DX-X3DX-Xh@B ' A module constraint by a module type. DXiX~DXiX@@@@@@@D@-Module_typeofD@@@)@@DXXDXX@B / by now only the code of the module expression DXXDXX@@@@@@@D@-Module_unpackD@@@)I@@@)@@DYYw@Bڐ . code of the expression and module type alias DYY4DYYg@@@@@@@E@@@A+module_kind@@@)@@@@@@~@#!!E  UFUNE  UFU[@@г#$listE UFUn@г'.module_elementE UFU_E UFUm@@/@@@4*@@@@,C E1*)@))@@@)@)@#%%E0 UUE1 UU@@г',module_aliasE: UU(@@.+)@@@@+C&EL)(@((@@@(@(@#$$EK UVEL UV@ @г&0module_parameterEU UVEV UV#@@.G@@г++module_kindE_ UV&,@@2P-@@@@/CKEq-,@,,@@@,@,@#((EpVVEqVV@@г*+module_kindEzVVE{VV@@2l@@г/+module_kindEVV0@@6u1@@@@3CpE10@00@@@0@0@#,,EWWEWW @@г.+module_kindEWW$/@@50@@@@2CE0/@//@@@/@/@#++EWsW{EWsW@@г-0module_type_kindEWsWEWsW@@5@@г2&stringEWsW3@@94@@@@6CE֐43@33@@@3@3@#//EX-X5EX-XF@@г1+module_kindEX-XJEX-XU@@9Ѱ@@г60module_type_kindEX-XX7@@=ڰ8@@@@:CE87@77@@@7@7@#33EXXEXX@@г5&stringFXX6@@<7@@@@9CF76@66@@@6@6@#22FYYFYY@@г4&stringFYYF YY@@<@@г91module_type_aliasF)YY"@@@@@@@=DF;<;@;;@@@;@;@@Aг7+Odoc_moduleF? UU,F@ UU7@>FC UU8FD UUC@@@F6@@РD1FW@@@@@@+FVYYFWYY@@;@@&m_name@@5!t@@@)FeYYFfYY@DQ> Complete name of the module. FsYYFtYZ@@@@@@@F@&m_typeA@30+module_type@@@)FZZFZZ2@Dm9 The type of the module. FZZ3FZZQ@@@@@@@F@&m_infoA@E;@@@)@@@)F ZRZ\F ZRZz@D 7 Information found in the optional associated comment. F ZRZ{F ZRZ@@@@@@@F @.m_is_interface@@Fw@@@)F!ZZF!ZZ@D . [true] for modules read from interface files F!ZZF!Z[ @@@@@@@F!@&m_file@@F@@@)F"[[F"[[)@D $ The file the module is defined in. F"[[*F"[[S@@@@@@@F"@&m_kindA@@@@)F#[T[^F#[T[|@Dڐ The way the module is defined. F#[T[}F#[T[@@@@@@@G#@%m_locA@7@@@)G$[[G $[[@@G!$@*m_top_depsA@F6!t@@@)@@@)G%[[G%[[@E 4 The toplevels module names this module depends on. G)%[[G*%[\.@@@@@@@GB%@&m_codeA@FG@@@)@@@)ðG:&\/\9G;&\/\Y@E&> The whole code of the module GH&\/\ZGI&\/\}@@@@@@@Ga&@+m_code_intfA@FG$@@@)@@@)ȰGY'\~\GZ'\~\@EE / The whole code of the interface of the module Gg'\~\Gh'\~\@@@@@@@G'@+m_text_only@@G0@@@)˰Gs(\\Gt(\]@E_ - [true] if the module comes from a text file G(\]G(\]4@@@@@@@G(@@@A(t_module@@@)@@@@@@@#22+GYY@@@Ш@г5$NameGYYGYY@<GYYGYY@@@D@@G@@)@AEG?>@>>@@@>@>@#::GZZGZZ@%A@Ш@г>%TypesGZZGZZ$@EGZZ%GZZ0@@@M@@P@@)@JEGڐHG@GG@@@G@G@#CCG ZRZdG ZRZj@+A@Ш@гG&optionG ZRZrG ZRZx@гL$infoG ZRZmG ZRZq@@Tް@@@Y߰ @@\@@)@SEHQP@PP@@@P@P@#LLGH!ZZ@8@@Ш@гO$boolH !ZZH !ZZ@@W@@Z@@)@VEHTS@SS@@@S@S@#OOJH"[[@;@@Ш@гR&stringH'"[[!H("[['@@Z @@]@@) @YFH<WV@VV@@@V@V@#RRH;#[T[fH<#[T[l@?A@Ш@гV+module_kindHE#[T[oHF#[T[z@@^ 7@@a@@) :@]F4HZ[Z@ZZ@@@Z@Z@#VVHY$[[HZ$[[@QA@Ш@гZ(locationHc$[[Hd$[[@@b U@@e@@) X@a@#]]Hl%[[Hm%[[@CA@Ш@гa$listHv%[[Hw%[[@гf$NameH%[[H%[[@mH%[[H%[[@@@u x@@@z y @@}@@) |@rFvHpo@oo@@@o@o@#kkH&\/\AH&\/\G@SA@Ш@гo&optionH&\/\QH&\/\W@гt&stringH&\/\JH&\/\P@@| @@@  @@@@) @{FHĐyx@xx@@@x@x@#ttH'\~\H'\~\@\A@Ш@гx&optionH'\~\H'\~\@г}&stringH'\~\H'\~\@@ Ȱ@@@ ɰ @@@@) @FH쐠@@@@@@#}}xH(\\@i@@Ш@г$boolH(\\H(\\@@ @@@@) @FI @@@@@@@Aг+Odoc_moduleI YYIYY@IYYIYY@@@ @@ FI%  @  @@@ @ @+ ~ ~I$+]@]HI%+]@]Y@@;@@(mta_name@@8!t@@@)ѰI3-]]I4-]]@G * Complete name of the target module type. IA-]]IB-]]@@@@@@@IZ)@*mta_moduleA@H @@@)@@@)ְIR.]]IS.]^ @G> 0 The real module type if we could associate it. I`.]^ Ia.]^?@@@@@@@Iy*@@@A |1module_type_alias@@@)@@@@ @@@ @#CC<Io-]]@-@@Ш@гF$NameIz-]]I{-]]@MI~-]]I-]]@@@U q@@X@@) t@RGnIPO@OO@@@O@O@#KKI.]]I.]]@3A@Ш@гO&optionI.]^I.]^@гT-t_module_typeI.]]I.]^@@\ @@@a  @@d@@) @[GIYX@XX@@@X@X@@AгT+Odoc_moduleI+]@]\I+]@]g@[I+]@]hI+]@]y@@@c @@ @+  I2^v^~I2^v^@@;@@2Module_type_structŐIV @@@)@@@)@@I3^^I3^^@G̐> A complete module signature. I3^^I3^_@@@@@@@J+@3Module_type_functorƐ @@@)ߠ L@@@)@@J4__ J4__H@G퐠 > A functor, with its parameter and the rest of its definition J5_I_UJ5_I_@@@@@@@J(,@1Module_type_aliasǐ w@@@)@@J6__J6__@H C Complete alias name and corresponding module type if we found it. J+7__J,7_`@@@@@@@JD-@0Module_type_withȐ @@@)J @@@)@@J>8``#J?8``R@H* ; The module type kind and the code of the with constraint. JL9`S`_JM9`S`@@@@@@@Je.@2Module_type_typeofɐJ&@@@)@@JZ:`` @HE / by now only the code of the module expression Jg;``Jh;`a@@@@@@@J/@@@A 0module_type_kind@@@)@@@@  @@ @#Jv3^^Jw3^^@@г$listJ3^^@г.module_elementJ3^^J3^^@@ z@@@ {@@@@HvJ@@@@@@#J4__J4__!@@г0module_parameterJ4__%J4__5@@ @@г0module_type_kindJ4__8@@ @@@@HJ@@@@@@#J6__J6__@@г1module_type_aliasJ6__@@ @@@@HJܐ@@@@@@#J8``%J8``5@@г0module_type_kindJ8``9J8``I@@ װ@@г&stringJ8``L@@ @@@@HK@@@@@@#K:``K:``@@г&stringK :`` K@@  L@@@@HK@@@@@@@Aг+Odoc_moduleK 2^v^K!2^v^@K$2^v^K%2^v^@@@ @@ jIK8 h g@ g g@@@ g@ g@+ Ӡ ӰK7>a3a;K8>a3aH@@;@@'mt_name@@:!t@@@)KF@aqa{KG@aqa@I2 # Complete name of the module type. KT@aqaKU@aqa@@@@@@@Km0@'mt_infoA@J?@@@)@@@)KeAaaKfAaa@IQ 7 Information found in the optional associated comment. KsAaaKtAab@@@@@@@K1@'mt_typeA@Jݠ84+module_type@@@)@@@)KBbb(KBbbT@Ir 0 [None] means that the module type is abstract. KBbbUKBbb@@@@@@@K2@/mt_is_interface@@K]@@@)KCbbKCbb@I / [true] for modules read from interface files. KCbbKCbb@@@@@@@K3@'mt_file@@K@@@)KDbbKDbb@I ) The file the module type is defined in. KDbcKDbc.@@@@@@@K4@'mt_kindA@K2 #@@@)@@@)KEc/c9KEc/cd@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. KFcecsKHd'dx@@@@@@@L5@&mt_locA@<@@@)KIdydKIdyd@@L 6@@@A -t_module_type@@@*@@@@ $ !@@ @#àðL@aqa@@@Ш@гƠ$NameL @aqaL@aqa@ͰL@aqaL@aqa@@@ @@@@) @ҠJL'@@@@@@#ˠ˰L&AaaL'Aaa@A@Ш@гϠ&optionL0AaaL1Aaa@гԠ$infoL9AaaL:Aaa@@ +@@@ , @@@@) /@۠J)LO@@@@@@#Ԡ԰LNBbb0LOBbb7@A@Ш@гؠ&optionLXBbbLLYBbbR@гݠ%TypesLcBbb:LdBbb?@LgBbb@LhBbbK@@@ Z@@@ [ @@@@) ^@頰JXL~@@@@@@#L}Cbb@@@Ш@г堐$boolLCbbLCbb@@ x@@@@) {@젰JuL@@@@@@#LDbb@@@Ш@г蠐&stringLDbbLDbb@@ @@@@) @JL@@@@@@#LEc/cALEc/cH@A@Ш@г점&optionLEc/c\LEc/cb@г0module_type_kindLEc/cKLEc/c[@@ @@@  @@@@) @JL@@@@@@#LIdydLIdyd@A@Ш@г(locationLIdydLIdyd@@ ۰@@@@) @@@Aг+Odoc_moduleL>a3aKL>a3aV@L>a3aWL>a3ad@@@ @@ &JM $ #@ # #@@@ #@ #@@ 0@MM; {1 Functions for modules} MLddMLdd@@@@@@3MMMMMMMM@  tY   C  X    _@A/module_elementsѠM/OdeM0Ode@б%transгL$boolM<Ode M=Ode$@@ @@@,%@@б@г(t_moduleMKOde(MLOde0@@ @@@,4@@гLѠ$listMXOdeCMYOdeG@г.module_elementMbOde4McOdeB@@ @@@,K@@@@@@,P @@@$@@, @@,U'@@A*;@@@,@@, @@,^M{Ode#@@ @M~Ode&@Ki % Access to the elements of a module. MNddMNdd@@@@@@@M7@@6@KyM@@@@@@~.module_modulesҠMRezeMReze@б%transгMj$boolMRezeMReze@@ @@@,3MMMMMMMM@:@A@@б@гj(t_moduleMRezeMReze@@ @@@,@@гMF$listMRezeMReze@г(t_moduleMRezeMReze@@ @@@,(@@@@@@,- @@@$@@, @@,2'@@C=@@@,@@, @@,;MReze#@@ @MReze~&@Kސ ' Access to the submodules of a module. NQeIeMNQeIey@@@@@@@N8@@6@KN@@@@@@[3module_module_typesӠNUeeNUef @б%transгMߠ$boolN$UefN%Uef@@ @@@,3N&N&N&N&N&N&N&N&@v:@A@@б@гߠ(t_moduleN5UefN6Uef%@@ @@@,@@гM$listNBUef7NCUef;@г栐-t_module_typeNLUef)NMUef6@@ @@@,(@@@@@@,- @@@$@@, @@,2'@@C=@@@,@@, @@,;NeUef#@@ @NhUee&@LS ) Access to the module types of a module. NuTeeNvTee@@@@@@@N9@@6@LcN@@@@@@[7module_included_modulesԠNXftf|NXftf@б%transгNT$boolNXftfNXftf@@ @@@,3NNNNNNNN@v:@A@@б@гT(t_moduleNXftfNXftf@@ @@@,@@гN0$listNXftfNXftf@гK/included_moduleNXftfNXftf@@ @@@,(@@@@@@,- @@@$@@, @@,2'@@C=@@@,@@, @@,;NXftf#@@ @NXftfx&@LȐ - Access to the included modules of a module. NWf=fANWf=fs@@@@@@@O:@@6@LN@@@@@@[6module_type_extensionsՠO[fgO[fg@б%transгNɠ$boolO[fg$O[fg(@@ @@@,3OOOOOOOO@v:@A@@б@гɠ(t_moduleO[fg+O [fg3@@ @@@,@@гN$listO,[fgRO-[fgV@г8;0t_type_extension)ExtensionO:[fg7O;[fg@@ O>[fgAO?[fgQ@@@@@@,1 @@@ @@@,6@@@-@@, @@,;0"@@LF@@@,@@, @@,DOX[fg,@@ @O[[fg/@MF , Access to the type extensions of a module. OhZffOiZff@@@@@@@O;@@?@MVO|@@@@@@d1module_exceptions֠O^ggO^gg@б%transгOG$boolO^ggO^gg@@ @@@,3OOOOOOOO@:@A@@б@гG(t_moduleO^ggO^gg@@ @@@,@@гO#$listO^ggO^gg@г3+t_exception)ExceptionO^ggO^gg@ O^ggO^gg@@@@@@,1 @@@ @@@,6@@@-@@, @@,;0"@@LF@@@,@@, @@,DO^gg,@@ @O^gg/@MĐ ' Access to the exceptions of a module. O]gXg\O]gXg@@@@@@@O<@@?@MO@@@@@@d,module_typesנOahhOahh@б%transгOŠ$boolP ahh%P ahh)@@ @@@,3P P P P P P P P @:@A@@б@гŠ(t_modulePahh,Pahh4@@ @@@,@@гO$listP(ahhDP)ahhH@г1L&t_type$TypeP6ahh8P7ahh<@ P:ahh=P;ahhC@@@@@@,1 @@@ @@@,6@@@-@@, @@,;0"@@LF@@@,@@, @@,DPTahh,@@ @PWahh /@NB " Access to the types of a module. Pd`ggPe`gh@@@@@@@P}=@@?@NRPx@@@@@@d-module_valuesؠP{dhwhP|dhwh@б%transгPC$boolPdhwhPdhwh@@ @@@,3PPPPPPPP@:@A@@б@гC(t_modulePdhwhPdhwh@@ @@@,@@гP$listPdhwhPdhwh@г('t_value%ValuePdhwhPdhwh@ PdhwhPdhwh@@@@@@,1 @@@ @@@,6@@@-@@, @@,;0"@@LF@@@,@@, @@,DPdhwh,@@ @Pdhwh{/@N # Access to the values of a module. PchJhNPchJhv@@@@@@@P>@@?@NP@@@@@@d0module_functions٠PghhPghi @б%transгP$boolQghiQghi@@ @@@,3QQQQQQQQ@:@A@@б@г(t_moduleQghiQghi#@@ @@@,@@гP$listQ$ghi5Q%ghi9@г)b't_value%ValueQ2ghi'Q3ghi,@ Q6ghi-Q7ghi4@@@@@@,1 @@@ @@@,6@@@-@@, @@-;0"@@LF@@@-@@- @@-DQPghi ,@@ @QSghh/@O> * Access to functional values of a module. Q`fhhQafhh@@@@@@@Qy?@@?@ONQt@@@@@@d4module_simple_valuesڠQwjisi{Qxjisi@б%transгQ?$boolQjisiQjisi@@ @@@-3QQQQQQQQ@:@A@@б@г?(t_moduleQjisiQjisi@@ @@@-@@гQ$listQjisiQjisi@г)'t_value%ValueQjisiQjisi@ QjisiQjisi@@@@@@-1 @@@ @@@- 6@@@-@@-  @@- ;0"@@L}F@@@- @@- @@-DQjisi,@@ @Qjisiw/@O . Access to non-functional values of a module. Qii;i?Qii;ir@@@@@@@Q@@@?@OQ򐠠@@@@@@d.module_classes۠QmiiQmij@б%transгQ$boolRmijRmij@@ @@@-3RRRRRRRR@:@A@@б@г(t_moduleRmijRmij@@ @@@-@@гQ$listR mij/R!mij3@г%c't_class%ClassR.mij!R/mij&@ R2mij'R3mij.@@@@@@-1 @@@ @@@-6@@@-@@- @@-;0"@@LF@@@-@@- @@-DRLmij,@@ @ROmii/@P: $ Access to the classes of a module. R\liiR]lii@@@@@@@RuA@@?@PJRp@@@@@@d2module_class_typesܠRspjgjoRtpjgj@б%transгR;$boolRpjgjRpjgj@@ @@@-3RRRRRRRR@:@A@@б@г;(t_moduleRpjgjRpjgj@@ @@@-@@гR$listRpjgjRpjgj@г%,t_class_type%ClassRpjgjRpjgj@ RpjgjRpjgj@@@@@@-1 @@@ @@@-6@@@-@@-  @@-!;0"@@LyF@@@-#@@-$ @@-%DRpjgj,@@ @Rpjgjk/@P ( Access to the class types of a module. Roj5j9Roj5jf@@@@@@@RB@@?@PR@@@@@@d2module_all_classesݠRskkRskk,@б%transгR$boolRskk6Rskk:@@ @@@-&3SSSSSSSS@:@A@@б@г(t_moduleSskk=SskkE@@ @@@-'@@гR$listSskkWSskk[@г&_'t_class%ClassS*skkIS+skkN@ S.skkOS/skkV@@@@@@-(1 @@@ @@@-*6@@@-@@-+ @@-,;0"@@LF@@@-.@@-/ @@-0DSHskk/,@@ @SKskk/@Q6 Q The list of classes defined in this module and all its submodules and functors. SXrjjSYrjk@@@@@@@SqC@@?@QFSl@@@@@@d1module_is_functorޠSovkkSpvkk@б@г$(t_moduleSzvkkS{vkk@@ @@@-13S|S|S|S|S|S|S|S|@}8@A@@гSD$boolSvkkSvkk@@ @@@-2@@@@@-3@@-4 @@@Svkk @Q " [true] if the module is functor. Suk]kaSuk]k@@@@@@@SD@@@QS@@@@@@31module_parametersߠSyllSyll@б%transгS$boolSyll#Syll'@@ @@@-53SSSSSSSS@Nc:@A@@б@г(t_moduleSyll*Syll2@@ @@@-6@@гS^$listSyllWSyll[@В@г0module_parameterSyll7SyllG@@ @@@-7,@@@гS^&optionTyllOTyllU@гR$textT yllJT yllN@@ @@@-8E@@@@@@-:J @@@@&@ @@-;Q+@@@@ @@@-=VT#yll6>@@@N@@-> @@-?\QC@@mg@@@-A@@-B @@-CeT2yllM@@ @T5yllP@R ? The list of couples (module parameter, optional description). TBxkkTCxkk@@@@@@@T[E@@`@R0TV@@@@@@/module_commentsTY|llTZ|ll@б%transгT!$boolTf|llTg|ll@@ @@@-D3ThThThThThThThTh@:@A@@б@г!(t_moduleTw|llTx|ll@@ @@@-E@@гS$listT|llT|ll@гR$textT|llT|ll@@ @@@-F(@@@@@@-H- @@@$@@-I @@-J2'@@CV=@@@-L@@-M @@-N;T|ll#@@ @T|ll&@R> The list of module comments. T{l]laT{l]l@@@@@@@TF@@6@RTː@@@@@@[TTؐ {1 Functions for module types} T~llT~ll@@@@@@3TTTTTTTT@m1@A4module_type_elementsTm#m+Tm#m?@б%transгT$boolTm#mITm#mM@@ @@@-O@@б@г-t_module_typeTm#mPTm#m]@@ @@@-P+@@гT$listU m#mpU m#mt@гϠ.module_elementUm#maUm#mo@@ @@@-QB@@@@@@-SG @@@$@@-T @@-UL'@@Aܠ;@@@-W@@-X @@-YUU-m#mB#@@ @U0m#m'&@S * Access to the elements of a module type. U=llU>lm"@@@@@@@UVG@@6@S+UQ@@@@@@u3module_type_modulesUTmmUUmm@б%transгU$boolUammUbmm@@ @@@-Z3UcUcUcUcUcUcUcUc@:@A@@б@г -t_module_typeUrmmUsmm@@ @@@-[@@гT$listUmmUmm@г3(t_moduleUmmUmm@@ @@@-\(@@@@@@-^- @@@$@@-_ @@-`2'@@CQ=@@@-b@@-c @@-d;Umm#@@ @Umm&@S , Access to the submodules of a module type. UmvmzUmvm@@@@@@@UH@@6@SUƐ@@@@@@[8module_type_module_typesUn0n8Un0nP@б%transгU$boolUn0nZUn0n^@@ @@@-e3UUUUUUUU@v:@A@@б@г-t_module_typeUn0naUn0nn@@ @@@-f@@гUm$listUn0nUn0n@г-t_module_typeUn0nrUn0n@@ @@@-g(@@@@@@-i- @@@$@@-j @@-k2'@@CƠ=@@@-m@@-n @@-o;Vn0nS#@@ @Vn0n4&@T . Access to the module types of a module type. V'mmV(mn/@@@@@@@V@I@@6@TV;@@@@@@[nnV?nn@б%transгV$boolVKnnVLnn@@ @@@-p3VMVMVMVMVMVMVMVM@v:@A@@б@г-t_module_typeV\nnV]no@@ @@@-q@@гU⠐$listVinoVjno@г/included_moduleVsnoVtno@@ @@@-r(@@@@@@-t- @@@$@@-u @@-v2'@@C;=@@@-x@@-y @@-z;Vnn#@@ @Vnn&@Tz 2 Access to the included modules of a module type. VnnVnn@@@@@@@VJ@@6@TV@@@@@@[6module_type_exceptionsVoTo\VoTor@б%transгV{$boolVoTo|VoTo@@ @@@-{3VVVVVVVV@v:@A@@б@гk-t_module_typeVoToVoTo@@ @@@-|@@гVW$listVoToVoTo@г:+t_exception)ExceptionVoToVoTo@ VoToVoTo@@@@@@-}1 @@@ @@@-6@@@-@@- @@-;0"@@LF@@@-@@- @@-DW oTou,@@ @W oToX/@T , Access to the exceptions of a module type. Woo"WooS@@@@@@@W3K@@?@UW.@@@@@@d1module_type_typesW1ooW2oo@б%transгV$boolW>opW?op@@ @@@-3W@W@W@W@W@W@W@W@@:@A@@б@г預-t_module_typeWOop WPop@@ @@@-@@гVՠ$listW\op(W]op,@г8&t_type$TypeWjopWkop @ Wnop!Woop'@@@@@@-1 @@@ @@@-6@@@-@@- @@-;0"@@L7F@@@-@@- @@-DWoo,@@ @Woo/@Uv ' Access to the types of a module type. WooWoo@@@@@@@WL@@?@UW@@@@@@d2module_type_valuesWp`phWp`pz@б%transгWw$boolWp`pWp`p@@ @@@-3WWWWWWWW@:@A@@б@гg-t_module_typeWp`pWp`p@@ @@@-@@гWS$listWp`pWp`p@г0't_value%ValueWp`pWp`p@ Wp`pWp`p@@@@@@-1 @@@ @@@-6@@@-@@- @@-;0"@@LF@@@-@@- @@-DXp`p},@@ @X p`pd/@U ( Access to the values of a module type. Xp.p2Xp.p_@@@@@@@X/M@@?@VX*@@@@@@d5module_type_functionsX-ppX.pq@б%transгW$boolX:pqX;pq@@ @@@-3X<X<X<X<X<X<X<X<@:@A@@б@г堐-t_module_typeXKpqXLpq$@@ @@@-@@гWѠ$listXXpq6XYpq:@г0't_value%ValueXfpq(Xgpq-@ Xjpq.Xkpq5@@@@@@-1 @@@ @@@-6@@@-@@- @@-;0"@@L3F@@@-@@- @@-DXpq ,@@ @Xpp/@Vr / Access to functional values of a module type. XppXpp@@@@@@@XN@@?@VX@@@@@@d9module_type_simple_valuesXqyqXqyq@б%transгXs$boolXqyqXqyq@@ @@@-3XXXXXXXX@:@A@@б@гc-t_module_typeXqyqXqyq@@ @@@-@@гXO$listXqyqXqyq@г1't_value%ValueXqyqXqyq@ XqyqXqyq@@@@@@-1 @@@ @@@-6@@@-@@- @@-;0"@@LF@@@-@@- @@-DYqyq,@@ @Yqyq}/@V𐠠 3 Access to non-functional values of a module type. Yq<q@Yq<qx@@@@@@@Y+O@@?@WY&@@@@@@d3module_type_classesY)rr Y*rr@б%transгX$boolY6rr(Y7rr,@@ @@@-3Y8Y8Y8Y8Y8Y8Y8Y8@:@A@@б@г᠐-t_module_typeYGrr/YHrr<@@ @@@-@@гX͠$listYTrrNYUrrR@г,'t_class%ClassYbrr@YcrrE@ YfrrFYgrrM@@@@@@-1 @@@ @@@-6@@@-@@- @@-;0"@@L /F@@@-@@- @@-DYrr!,@@ @Yrr/@Wn ) Access to the classes of a module type. YqqYqr@@@@@@@YP@@?@W~Y@@@@@@d7module_type_class_typesYrrYrr@б%transгYo$boolYrrYrr@@ @@@-3YYYYYYYY@:@A@@б@г_-t_module_typeYrrYrr@@ @@@-@@гYK$listYrrYrr@г-,t_class_type%ClassYrrYrr@ YrrYrr@@@@@@-1 @@@ @@@-6@@@-@@- @@-;0"@@L F@@@-@@- @@-DYrr,@@ @Zrr/@W쐠 - Access to the class types of a module type. ZrTrXZrTr@@@@@@@Z'Q@@?@WZ"@@@@@@d7module_type_all_classesZ%sEsMZ&sEsd@б%transгY$boolZ2sEsnZ3sEsr@@ @@@-3Z4Z4Z4Z4Z4Z4Z4Z4@:@A@@б@гݠ-t_module_typeZCsEsuZDsEs@@ @@@-@@гYɠ$listZPsEsZQsEs@г-'t_class%ClassZ^sEsZ_sEs@ ZbsEsZcsEs@@@@@@-1 @@@ @@@-6@@@-@@- @@-;0"@@L!+F@@@-@@- @@-DZ|sEsg,@@ @ZsEsI/@Xj V The list of classes defined in this module type and all its submodules and functors. ZrrZrsD@@@@@@@ZR@@?@XzZ@@@@@@d6module_type_is_functorZssZss@б@гH-t_module_typeZssZss@@ @@@-3ZZZZZZZZ@}8@A@@гZx$boolZssZst@@ @@@-@@@@@-@@- @@@Zss @X ' [true] if the module type is functor. ZssZss@@@@@@@ZS@@@XZ될@@@@@@36module_type_parametersZtLtTZtLtj@б%transгZ$boolZtLttZtLtx@@ @@@-3ZZZZZZZZ@Nc:@A@@б@г-t_module_type[ tLt{[ tLt@@ @@@-@@гZ$list[tLt[tLt@В@гƠ0module_parameter['tLt[(tLt@@ @@@-,@@@гZ&option[6tLt[7tLt@гYJ$text[@tLt[AtLt@@ @@@-E@@@@@@-J @@@@&@ @@-Q+@@@@ @@@-V[WtLt>@@@N@@- @@-\QC@@m"g@@@-@@- @@-e[ftLtmM@@ @[itLtPP@YT ? The list of couples (module parameter, optional description). [vtt[wttK@@@@@@@[T@@`@Yd[@@@@@@4module_type_comments[tt[tt@б%transг[U$bool[tu[tu@@ @@@-3[[[[[[[[@:@A@@б@гE-t_module_type[tu[tu@@ @@@-@@г[1$list[tu[tu"@гY̠$text[tu[tu@@ @@@-(@@@@@@-- @@@$@@- @@-2'@@C"=@@@-@@- @@-;[tt#@@ @[tt&@Yɐ> The list of module comments. [tt[tt@@@@@@@\U@@6@Y[@@@@@@[@A@6B@B@B@5B@"B@B@fB@Y>B@B@@t!@ @  ;@  @  C@ # @  K@ + @  S@ 3 @  [@ ;@@v@@S@@o@@-@ @5@@=@@E@%@@`@p@@3\I\I\I\I\I\I\I\I@r@AU3\L\L\L\L\L\L\L\L@I@A\QNxNz\Ru#u(@@Z=\c > Representation and manipulation of modules and module types. \`N$N$\aN$Ng@@@@@@@\cNhNh@@\x\w ! {2 Getting strings from values} \tu+u+\uu+uQ@@@@@@3\s\s\s\s\s\s\s\s@q@;5A@ZB@QB@4[B@'B@B@60B@dB@B@,UB@e@@.@ @  ?@  @  G@ ' @  O@ / @  W@ 7 @  _@ ? @y@Y@@b@@|)@ @1@@9@@A@!@I@)@c@C@@Zxw@ww@@@w@w@t@Ac0reset_type_names\vUvY\vUvi@б@г\$unit\vUvl\vUvp@@ @@@-x@@г\$unit\vUvt\vUvx@@ @@@-@@@@@-@@- @@@]vUvU @Z This function is used to reset the names of type variables. It must be called when printing the whole type of a function, but not when printing the type of its parameters. Same for classes (call it) and methods and attributes (don't call it).]uSuS]vvT@@@@@@@])W@@@Z]$@@@@@@2string_of_variance]'w@wD](w@wV@б@г>L&t_type$Type]6w@wY]7w@w]@ ]:w@w^];w@wd@@@@@@-3]=]=]=]=]=]=]=]=@hA@A @@б@гI(Variance!t%Types]Tw@wh]Uw@wm@ ]Xw@wn]Yw@wv@@]]w@ww]^w@wx@ @@@@@-#@@г]5&string]kw@w|]lw@w@@ @@@-0@@@@@-@@-5" @@@=@@- @@-:E@@@]}w@w@@[h [string_of_variance t variance] returns the variance and injectivity annotation (e.g ["+"] for covariance, ["-"] for contravariance, ["!-"] for injectivity) if the type [t] is abstract.]vzvz]ww?@@@@@@@]X@@"@[x]@@@@@@Y3string_of_type_expr]ww]ww@б@гJ[)type_expr%Types]ww]ww@ ]ww]ww@@@@@@-3]]]]]]]]@{A@A @@г]&string]ww]ww@@ @@@-@@@@@-@@- @@@]ww @[ @ This function returns a string representing a Types.type_expr. ]ww]ww@@@@@@@]Y@@@[]򐠠@@@@@@36string_of_class_params]xjxn]xjx@б@г19't_class%Class^xjx^xjx@ ^xjx^ xjx@@@@@@.3^ ^ ^ ^ ^ ^ ^ ^ @UsA@A @@г]⠐&string^xjx^xjx@@ @@@.@@@@@.@@. @@@^%xjxj @\ e @return a string to display the parameters of the given class, in the same form as the compiler. ^2ww^3xBxi@@@@@@@^KZ@@@\ ^F@@@@@@33string_of_type_list^Iyy ^Jyy@б#parг^$bool^Vyy'^Wyy+@@ @@@.3^X^X^X^X^X^X^X^X@Nl:@A@@б@г^1&string^gyy/^hyy5@@ @@@.@@б@г]$list^vyyI^wyyM@гK/)type_expr%Types^yy9^yy>@ ^yy?^yyH@@@@@@.3 @@@ @@@.8@@г^e&string^yyQ^yyW@@ @@@. E@@@@@. @@. J" @@@A@@.  @@. OD@@`%cZ@@@.@@. @@.X^yy!@@ @^yy@\ a This function returns a string to represent the given list of types, with a given separator. ^xx^xy@@@@@@@^[@@,@\^ؐ@@@@@@x9string_of_type_param_list^yy^yy@б@г@&t_type$Type^yy^yy@ ^yy^yy@@@@@@.3^^^^^^^^@A@A @@г^Ƞ&string^yy^yy@@ @@@.@@@@@.@@. @@@_ yy @\ ` This function returns a string to represent the list of type parameters for the given type. _yYyY_yy@@@@@@@_1\@@@]_,@@@@@@3 #string_of_type_extension_param_list_/zfzj_0zfz@б@гH?0t_type_extension)Extension_>zfz_?zfz@ _Bzfz_Czfz@@@@@@.3_E_E_E_E_E_E_E_E@UsA@A @@г_&string_Rzfz_Szfz@@ @@@.@@@@@.@@. @@@__zfzf @]J j This function returns a string to represent the list of type parameters for the given type extension. _lyy_mzBze@@@@@@@_]@@@]Z_@@@@@@3?string_of_class_type_param_list_{C{G_{C{f@б@г_$list_{C{y_{C{}@гLG)type_expr%Types_{C{i_{C{n@ _{C{o_{C{x@@@@@@.3________@_}K@A @@@" @@@.@@г_&string_{C{_{C{@@ @@@.@@@@@.@@.$ @@@_{C{C @] This function returns a string to represent the given list of type parameters of a class or class type, with a given separator. _zz_{%{B@@@@@@@_^@@@]_㐠@@@@@@85string_of_module_type_||_||@б$codeг_&string_||_||@@ @@@. 3________@S{:@A@@б(completeг_$bool`|}`|}@@ @@@.!@@б@гL+module_type%Types`|} `|}@ `|}`|}@@@@@@."+ @@г_&string`+|} `,|}&@@ @@@.#8@@@@@.$@@.%= @@;&5@@@.'@@.( @@.)F`?||@@X&R@@@.+@@.,@@.-P`I||@@ @`L||!@^7 < 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. `Y{{`Z||@@@@@@@`r_@@1@^G`m@@@@@@p4string_of_class_type`p}}`q}}@б(completeг`8$bool`}}~`~}~ @@ @@@..3````````@:@A@@б@гM=*class_type%Types`}~`}~@ `}~`}~@@@@@@./ @@г`n&string`}~"`}~(@@ @@@.0'@@@@@.1@@.2, @@='g7@@@.4@@.5 @@.65`}}@@ @`}}@^ 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]. `}(}(`}}@@@@@@@``@@'@^`ܐ@@@@@@U.string_of_text`~L~P`~L~^@б@г^$text`~L~a`~L~e@@ @@@.73````````@n8@A@@г`à&string`~L~i`~L~o@@ @@@.8@@@@@.9@@.: @@@a~L~L @^񐠠; Get a string from a text. a~+~+a~+~K@@@@@@@a,a@@@_a'@@@@@@3.string_of_infoa*~~a+~~@б@гU$infoa5~~a6~~@@ @@@.;3a7a7a7a7a7a7a7a7@La8@A@@гa&stringaD~~aE~~@@ @@@.<@@@@@.=@@.> @@@aQ~~ @_< & Get a string from an info structure. a^~q~qa_~q~@@@@@@@awb@@@_Lar@@@@@@3.string_of_typeau~~av~@б@гB&t_type$Typea~ a~@ a~a~@@@@@@.?3aaaaaaaa@UjA@A @@гab&stringa~a~ @@ @@@.@@@@@@.A@@.B @@@a~~ @_ . @return a string to describe the given type. a~~a~~@@@@@@@ac@@@_aƐ@@@@@@30string_of_recorda"&a"6@б@гaM$lista"Ka"O@гB,record_field$Typea"9a"=@ a">a"J@@@@@@.C3aaaaaaaa@_}K@A @@@" @@@.E@@гaŠ&stringa"Sa"Y@@ @@@.F@@@@@.G@@.H$ @@@b"" @@b d@@@@8string_of_type_extensionbb@б@гK#0t_type_extension)Extensionb"b#@ b&b'@@@@@@.I3b)b)b)b)b)b)b)b)@Ai(@A @@гb&stringb6b7@@ @@@.J@@@@@.K@@.L @@@bC @`. 8 @return a string to describe the given type extension. bP[[bQ[@@@@@@@bie@@@`>bd@@@@@@33string_of_exceptionbgbh.@б@гFR+t_exception)Exceptionbv1bw:@ bz;b{F@@@@@@.M3b}b}b}b}b}b}b}b}@UsA@A @@гbT&stringbJbP@@ @@@.N@@@@@.O@@.P @@@b @` 3 @return a string to describe the given exception. bb@@@@@@@bf@@@`b@@@@@@3/string_of_valuebb@б@г:'t_value%Valuebb@ bb@@@@@@.Q3bbbbbbbb@UsA@A @@гb&stringbb@@ @@@.R@@@@@.S@@.T @@@b @`֐ / @return a string to describe the given value. bRRbR@@@@@@@cg@@@`c @@@@@@33string_of_attributecc@б@г;N+t_attribute%Valuec c@ c"c#@@@@@@.U3c%c%c%c%c%c%c%c%@UsA@A @@гb&stringc2c3$@@ @@@.V@@@@@.W@@.X @@@c? @a* 3 @return a string to describe the given attribute. cLcM@@@@@@@ceh@@@a:c`@@@@@@30string_of_methodcc\`cd\p@б@г;(t_method%Valuecr\scs\x@ cv\ycw\@@@@@@.Y3cycycycycycycycy@UsA@A @@гcP&stringc\c\@@ @@@.Z@@@@@.[@@.\ @@@c\\ @a~ 0 @return a string to describe the given method. c&&c&[@@@@@@@ci@@@ac@@@@@@3cc= {2 Miscellaneous functions} cc@@@@@@3cccccccc@Ec1@A6first_sentence_of_textcc@б@гaߠ$textcc@@ @@@.]@@гa점$textcc@@ @@@.^'@@@@@._@@.`, @@@c @aڐ Return the first sentence (until the first dot followed by a blank or the first blank line) of a text. Don't stop in the middle of [Code], [CodePre], [Verbatim], [List], [Enum], [Latex], [Link], [Ref], [Subscript] or [Superscript]. ccm@@@@@@@dj@@@ad@@@@@@K?first_sentence_and_rest_of_textd d  @б@гb($textd d @@ @@@.a3d d d d d d d d @d_8@A@@В@гb;$textd1 d2 @@ @@@.b@@@гbJ$textd@ dA "@@ @@@.c"@@@@@ @@.d) @@@1@@.e @@.f.4@@@dT @b?  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].dadb@@@@@@@dzk@@$@bOdu@@@@@@M5text_no_title_no_listdx ^bdy ^w@б@гb$textd ^zd ^~@@ @@@.g3dddddddd@f{8@A@@гb$textd ^d ^@@ @@@.h@@@@@.i@@.j @@@d ^^ @b 4 Return the given [text] without any title or list. d $$d $]@@@@@@@dl@@@bd@@@@@@3+text_concatdd@б@гb$text*Odoc_typesdd@ dd @@@@@@.k3dddddddd@UjA@A @@б@гda$listdd"@гb$text*Odoc_typesdd@ dd@@@@@@.l$ @@@ @@@.n)@@гb$text*Odoc_typese&e0@ e1e5@@@@@@.o? @@@@@.p@@.qD+ @@@L@@.r @@.sIT@@@e(@c [ [concat sep l] concats the given list of text [l], each separated with the text [sep]. e5e6@@@@@@@eNm@@#@c#eI@@@@@@h2get_titles_in_texteLeM@б@гca$texteWeX@@ @@@.t3eYeYeYeYeYeYeYeY@8@A@@гdߠ$listefeg@В@гeH#inteteu@@ @@@.u@@@гdߠ&optionee@гeW&stringee@@ @@@.v6@@@@@@.x; @@@гc$textee@@ @@@.yJ@@@@5@@ @@.zS<@@@Q @@@.|XeO@@@a@@.} @@.~^dT@@@eW@c b Return the list of titles in a [text]. A title is a title level, an optional label and a text.e77eb@@@@@@@en@@g@ceސ@@@@@@}2create_index_lists e"e4@б@гee$liste:e>@А!a@.g@.3eeeeeeee@>@Ae7e9@@@ @@@. @@б@б@А!af Cf E@@гeܠ&stringfIfO@@ @@@. @@@*@@.@@.% @@гe$listf$\f%`@гe$listf.Wf/[@А!aB=f5Tf6V@@@H@@@.D @@@@@@.I @@@-@@. @@.NfFB"@@@O@@. @@.TR'@@@fN*@d9 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.f[f\@@@@@@@fto@@:@dIfo@@@@@@s-remove_option fr  fs @б@гS,)type_expr%Typesf f @ f f (@@@@@@.3ffffffff@A@A @@гSD)type_expr%Typesf ,f 1@ f 2f ;@@@@@@. @@@ @@.@@.( @@@f @d 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.fbbf@@@@@@@fp@@@df̐@@@@@@<+is_optional f#quf#q@б@г(Asttypes)arg_label(Asttypesf#qf#q@ f#qf#q@@@@@@.3ffffffff@`~C@A @@гf$boolf#qf#q@@ @@@.@@@@@.@@. @@@g#qq @d쐠 . Return [true] if the given label is optional.g"==g"=p@@@@@@@g'q@@@dg"@@@@@@3*label_name g%'g&' @б@гV)arg_label(Asttypesg4'g5'@ g8'g9'!@@@@@@.3g;g;g;g;g;g;g;g;@UuA@A @@гg&stringgH'%gI'+@@ @@@.@@@@@.@@. @@@gU' @e@ Y Return the label name for the given label, i.e. removes the beginning '?' if present.gb%gc&@@@@@@@g{r@@@ePgv@@@@@@32use_hidden_modules gy,gz,@б@гV!t$Nameg,g,@ g,g,@@@@@@.3gggggggg@UsA@A @@гW!t$Nameg,g,@ g,g,@@@@@@. @@@ @@.@@.( @@@g,@e 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})g)--g+@@@@@@@gs@@@egӐ@@@@@@<'verboseg/BFg/BM@б@гg&stringg/BPg/BV@@ @@@.3gggggggg@Us8@A@@гg$unitg/BZg/B^@@ @@@.@@@@@.@@. @@@g/BB @e萠 : Print the given string if the verbose mode is activated. h .h .A@@@@@@@h#t@@@eh@@@@@@3'warningh!4h"4@б@гg&stringh,4h-4@@ @@@.3h.h.h.h.h.h.h.h.@La8@A@@гg堐$unith;4h<4@@ @@@.@@@@@.@@. @@@hH4 @f3 x Print a warning message to stderr. If warnings must be treated as errors, then the error counter is incremented. hU1``hV3@@@@@@@hnu@@@fChi@@@@@@3.print_warningshl7HLhm7HZ@гf#refhu7Hbhv7He@гh:$boolh7H]h7Ha@@ @@@.3hhhhhhhh@Ti@@A@@@ @@@. @@@h7HH@fy F A flag to indicate whether ocamldoc warnings must be printed or not. h6h6G@@@@@@@hv@@)@fh@@@@@@&&errorsh=!h='@гg8#refh=.h=1@гh#inth=*h=-@@ @@@.3hhhhhhhh@Gd@@A@@@ @@@. @@@h=@f 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. h9ggh<@@@@@@@hw@@)@fh@@@@@@&)apply_opth@aeh@an@б@б@А!a@.g@.3iiiiiiii@=Z6@Ai @ari @at@@А!b@.g@. i@axi@az@@@@@. @@.@@б@гh&optioni$@ai%@a@А!a)$i+@ai,@a@@@/@@@.+ @@гh&optioni9@ai:@a@А!b19i@@aiA@a@@@7@@@.@ @@@@@. @@.E!@@@:@@. @@.JiQ@aq@@@iT@aa@g? ( Apply a function to an optional value. ia?33ib?3`@@@@@@@izx@@+@gOiu@@@@@@j.apply_if_equalixE)-iyE);@б@б@А!a@.g@.3iiiiiiii@6@AiE)?iE)A@@А!a iE)EiE)G@@@@@.@@. @@б@А!aiE)LiE)N@@б@А!a"iE)RiE)T@@А!a(#iE)XiE)Z@@@/@@./@@.* @@@4@@. @@./ @@@)@@. @@.4iE)>@@@iE))@g 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.iBiD(@@@@@@@iy@@$@giߐ@@@@@@T.text_of_stringiJiJ@б@гi&stringiJiJ@@ @@@.3iiiiiiii@m8@A@@гh$textiJiJ@@ @@@.@@@@@.@@. @@@j J @g [text_of_string s] returns the text structure from the given string. @raise Text_syntax if a syntax error is encountered. jG\\jI@@@@@@@j/z@@@hj*@@@@@@33text_string_of_textj-Oj.O@б@гhB$textj8Oj9O@@ @@@.3j:j:j:j:j:j:j:j:@La8@A@@гj&stringjGOjHO@@ @@@.@@@@@.@@. @@@jTO @h? [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}.jaLjbN@@@@@@@jz{@@@hOju@@@@@@3.info_of_stringjxVjyV@б@гjM&stringjVjV@@ @@@.3jjjjjjjj@La8@A@@г^$infojVjV@@ @@@.@@@@@.@@. @@@jV @h [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 jQjU@@@@@@@j|@@@hj@@@@@@34info_of_comment_filej_ j_ %@б@гjG$listj_ 8j_ <@г,(t_module&Modulej_ (j_ .@ j_ /j_ 7@@@@@@0G3jjjjjjjj@_tK@A @@@" @@@0I@@б@гj&stringj_ @j_ F@@ @@@0J@@г_c$infok_ Jk_ N@@ @@@0K#@@@@@0L@@0M( @@@*@@0N @@0O-8@@@k_  @i 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. k#Xk$^  @@@@@@@k<}@@"@ik7@@@@@@L5remove_ending_newlinek:bk;b@б@гk&stringkEbkFb@@ @@@0P3kGkGkGkGkGkGkGkG@e8@A@@гk&stringkTbkUb@@ @@@0Q@@@@@0R@@0S @@@kab @iL L [remove_ending_newline s] returns [s] without the optional ending newline. knaPPkoaP@@@@@@@k~@@@i\k@@@@@@3&Searchpgkeke@k@@БA+.result_elementhkgkg@@;@@*Res_module-(t_module@@@0U@@kh=Gkh=d@@k@/Res_module_type--t_module_type@@@0V@@kiemkie@@k@)Res_class?'t_class@@@0W@@kjkj@@k@.Res_class_type?,t_class_type@@@0X@@kkkk@@k@)Res_valueD't_value@@@0Y@@klkl@@l@(Res_typeM&t_type@@@0Z@@kmkm1@@l@-Res_extension U 7t_extension_constructor@@@0[@@ln2:ln2n@@l @-Res_exception!O+t_exception@@@0\@@loowloo@@l0@-Res_attribute"D[+t_attribute@@@0]@@l'pl(p@@l@@*Res_method#Dk(t_method@@@0^@@l7ql8q@@lP@+Res_section$l@@@0_jV@@@0`@@lJrlKr@@lc@,Res_recfield%Mt&t_type@@@0aM{,record_field@@@0b@@las$lbsU@@lz@)Res_const&M&t_type@@@0cM3variant_constructor@@@0d@@lxtV^lytV@@l@@@A+Odoc_search.result_element@@@1@@@@lg  @@@@l@@#lh=Q@@г&Modulelh=Ulh=[@lh=\@@@3llllllll@UjA;@@@A@@@1@0T@@@@%@@@#@A@@@@@#lieolie~@@г&Modulelielie@ lie@@@# @@@@ @#ljlj@@г %Classljlj@lj@@@:@@@@@#lklk@@г%Classlklk@lk@@@Q@@@@@#llll@ @г%Valuellml@ml@@@%h@@@@ @#m mm m"@@г$Typemm&mm*@%mm+#@$@@,%@@@@'@###m!n2<m"n2I@@г%)Extensionm-n2Mm.n2V@,m1n2W*@+@@3,@@@@.@#**m8ooym9oo@!@г,)ExceptionmDoomEoo@3mHoo1@2@@:3@@@@5@#11mOpmPp@(@г3%Valuem[pm\p@:m_p8@9@@Aİ:@@@@<@#88mfqmgq@/@г:%Valuemrqmsq@Amvq?@@@@H۰A@@@@C@#??m}rm~r @3@гA&stringmr mr@@I@@гF$textmrG@@MH@@@@J@#FFms&ms2@6@гH$Typems6ms:@Oms;msA@@@W @@гR$TypemsDmsH@YmsIW@X@@`Y@@@@[@#WWmtV`mtVi@G@гY$TypemtVmmtVq@`mtVrmtVx@@@h5@@гc$TypemtV{mtV@jmtVh@i@@qEj@@@@l@@Aгh+Odoc_searchmg mg+@mmg,mg:@@@wV@@p@@3mmmmmmmm@V@Aq}@A+-search_resultDimwnw@@;@@e@г1(t_module&Moduleo*o0@ o1o9@@@@@@4)3oooooooo@|K@A @@@" @@@4+@@гou$listoXo\@гS+t_exception)Exceptionp Bp K@ pLpW@@@@@@4,' @@@ @@@4.,@@@.@@4/ @@401<"@@@p!%@n ? A function to search all the exceptions in a list of modules. p.p/@@@@@@@pG@@5@npB@@@@@@P%typesipEpF@б@гoɠ$listpPpQ@г2m(t_module&Modulep^p_@ pbpc@@@@@@413pepepepepepepepe@|K@A @@@" @@@43@@гo$listpwpx@гQ&t_type$Typepp@ pp@@@@@@44' @@@ @@@46,@@@.@@47 @@481<"@@@p%@n : A function to search all the types in a list of modules. p^dp^@@@@@@@p@@5@np@@@@@@P*attributesjp1;p1E@б@гpD$listp1Xp1\@г2(t_module&Modulep1Hp1N@ p1Op1W@@@@@@493pppppppp@|K@A @@@" @@@4;@@гpk$listp1rp1v@гI0+t_attribute%Valueq1`q1e@ q1fq1q@@@@@@4<' @@@ @@@4>,@@@.@@4? @@4@1<"@@@q17%@o E A function to search all the class attributes in a list of modules. q$q%0@@@@@@@q=@@5@oq8@@@@@@P'methodskq;q<@б@гp$listqFqG@г3c(t_module&ModuleqTqU@ qXqY@@@@@@4A3q[q[q[q[q[q[q[q[@|K@A @@@" @@@4C@@гp栐$listqmqn@гI(t_method%Valueq{q|@ qq@@@@@@4D' @@@ @@@4F,@@@.@@4G @@4H1<"@@@q%@o} B A function to search all the class methods in a list of modules. qx~qx@@@@@@@q@@5@oq@@@@@@P'classeslqOYqO`@б@гq:$listqOsqOw@г3(t_module&ModuleqOcqOi@ qOjqOr@@@@@@4I3qqqqqqqq@|K@A @@@" @@@4K@@гqa$listqOqO@гE+'t_class%ClassqO{qO@ qOqO@@@@@@4L' @@@ @@@4N,@@@.@@4O @@4P1<"@@@r OU%@o < A function to search all the classes in a list of modules. r rN@@@@@@@r3@@5@pr.@@@@@@P+class_typesmr1r2@б@гq$listr<r=@г4Y(t_module&ModulerJrK@ rNrO@@@@@@4Q3rQrQrQrQrQrQrQrQ@|K@A @@@" @@@4S@@гqܠ$listrcrd"@гE,t_class_type%Classrq rr@ rurv@@@@@@4T' @@@ @@@4V,@@@.@@4W @@4X1<"@@@r%@ps @ A function to search all the class types in a list of modules. rr@@@@@@@r@@5@pr@@@@@@P'modulesnrlvrl}@б@гr0$listrlrl@г4(t_module&Modulerlrl@ rlrl@@@@@@4Y3rrrrrrrr@|K@A @@@" @@@4[@@гrW$listrlrl@г4(t_module&Modulerlrl@ rlrl@@@@@@4\' @@@ @@@4^,@@@.@@4_ @@4`1<"@@@slr%@p < A function to search all the modules in a list of modules. s$*s$k@@@@@@@s)@@5@ps$@@@@@@P,module_typesos's(@б@гr$lists2$s3(@г5O(t_module&Modules@sA@ sDsE#@@@@@@4a3sGsGsGsGsGsGsGsG@|K@A @@@" @@@4c@@гrҠ$listsYAsZE@г5v-t_module_type&Modulesg,sh2@ sk3sl@@@@@@@4d' @@@ @@@4f,@@@.@@4g @@4h1<"@@@s~%@qi A A function to search all the module types in a list of modules. ss@@@@@@@s@@5@qys@@@@@@P@ A@A@R@y@Y@@g@@u@@*@ @8@@3ssssssss@k:@A3ssssssss@@AsfsGN@@qsː6 Research in elements sdsd@@@@@@@se@@$Scantjsysy@s@@Б/A@'scannerss@skrkqkБ@*scan_valueA@L:'t_value@@@5@@5s@@@5@@5@@5m@4x-scan_type_preA@U7&t_type@@@5 @@5s@@@5@@5@@5m@4}/scan_type_constA@UN&t_type@@@50@@5/@UX3variant_constructor@@@5.@@5-s@@@5,@@5+@@5*@@5)m@42scan_type_recfieldA@Uo&t_type@@@5@@@5?@Uy,record_field@@@5>@@5=t@@@5<@@5;@@5:@@59m@4)scan_typeA@U&t_type@@@5J@@5It&@@@5H@@5G@@5Fm@4:scan_extension_constructorA@]7t_extension_constructor@@@5T@@5St=@@@5R@@5Q@@5Pm@4.scan_exceptionA@X+t_exception@@@5^@@5]tT@@@5\@@5[@@5Zm@4.scan_attributeA@L+t_attribute@@@5h@@5gtk@@@5f@@5e@@5dm@4+scan_methodA@M(t_method@@@5r@@5qt@@@5p@@5o@@5nm@44scan_included_moduleA@6/included_module@@@5|@@5{t@@@5z@@5y@@5xm@47scan_type_extension_preA@^0t_type_extension@@@5@@5t@@@5@@5@@5m@4 scan_type_extension_constructorsA@^0t_type_extension@@@5@@5t@@@5@@5@@5m@43scan_type_extensionA@^30t_type_extension@@@5@@5t@@@5@@5@@5m@42scan_class_commentA@sO@@@5@@5t@@@5@@5@@5m@4.scan_class_preA@H't_class@@@5@@5u@@@5@@5@@5m@43scan_class_elementsA@H't_class@@@5@@5u!@@@5@@5@@5m@4*scan_classA@H't_class@@@5@@5u8@@@5@@5@@5m@47scan_class_type_commentA@s@@@5@@5uM@@@5@@5@@5m@43scan_class_type_preA@H,t_class_type@@@5@@5uu@@@5@@5@@5m@48scan_class_type_elementsA@I,t_class_type@@@5@@5u{@@@5@@5@@5m@4/scan_class_typeA@I,t_class_type@@@5@@5u@@@5@@5@@5m@43scan_module_commentA@t@@@5@@5u@@@5@@5@@5m@4/scan_module_preA@8!(t_module@@@5@@5u@@@5@@5@@5m@44scan_module_elementsA@88(t_module@@@6@@6u@@@6@@6@@6m@4+scan_moduleA@8O(t_module@@@6@@6u@@@6@@6@@6m@48scan_module_type_commentA@t]@@@6@@6v@@@6@@6@@6m@44scan_module_type_preA@8{-t_module_type@@@6&@@6%v)@@@6$@@6#@@6"m@49scan_module_type_elementsA@8-t_module_type@@@60@@6/v/@@@6.@@6-@@6,m@40scan_module_typeA@8-t_module_type@@@6:@@69vF@@@68@@67@@66m@50scan_module_listA@v&8(t_module@@@6G@@@6F@@6Evb@@@6D@@6C@@6Bm@5 @@5 @5 m@5@5m@5@5m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4@4m@4~@4m@4y@4zm@4pҠ@@4qm@4v3vvvvvvvv@ " ?@ 3 -A@A@{@@)@ @7@@E@%@S@3@a@@tǐ! @  @@@ @ @ ^;@@@AEADzAyAAA(A'mAlCAB\A[nAmA-A,FAEA#A"AsArAAAAAAAAA4A3AA4A3@@6il@6H@6k@6l@6m@6n@6o@6p@6q@6r@6s@6t@6u@6v@6w@6x@6y@6z@6{@6|@6}@6~@6@6@6@6@6@6@6@6@6@6l@4i@@4j@@@@w/w0nw@@@@wH@K#@E@@@Am@4@Ű@Am@4@AB @A m@4@@Am@4@A@Am@4@v@Avm@4@ABC@Am@4@@Am@4@A@Am@4@B@Am@4@CDذ@Am@4@@Am@4@A@Am@4@3@A3m@4@ABx@Axm@4@P@APm@4@˰@Am@5@ABl@Alm@4@@Am@5@A-@A-m@4@@Am@4@A@Am@4@BCDEF@Am@4@Y@AYm@4@b@Abm@4@AB{@A{m@4@@Am@4@ACz@Azm@4|@F@AFm@4@A@Am@4w@BDG'*undef*C@@@6hl@4m@w@h#@@@4n@@4o@@;@@AA3A2xAwNAMgAfA&A%AA'A&@A?AAAAA,A+AGAFAbAa{AzoAnAAAAAAA@@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6l@4k.@@4l@@@@@@@@w@@AwA@AAШ@б@г%Valueww@wx@@@@@@5 I @@г$unitx x @@ @@@5U@@V@@Wx@@@ AAШ@б@г$Typex%x&@x)x* @@@@@@5s @@г$boolx6x7@@@@@5@@,@@-x>@@@AAШ@б@г$TypexO6xP:@!xS;xTA@@@)@@@5! @@б@г%$TypexdExeI@,xhJxi]@@@4@@@5" @@г2$unitxuaxve@@:@@@5#@@@@@5$@@5%ð @@Yİ2 @@ZŰx @@@BAAШ@б@г=$Typexfxf@Dxfxf@@@L@@@51 @@б@гH$Typexfxf@Oxfxf@@@W@@@52 @@гU$unitxfxf@@]@@@53@@@@@54@@55 @@|2 @@} xfn @@@eAAШ@б@г`$Typexx@gxx@@@o@@@5A% @@гm$unitxx@@u@@@5B1@@2@@3x@@@xAAШ@б@гs)Extensionyy@zyy/@@@@@@5KO @@г$unity3y7@@@@@5L[@@\@@]y@@@AAШ@б@г)Exceptiony+8Xy,8a@y/8by08m@@@@@@5Uy @@г$unity<8qy=8u@@@@@5V@@@@yD8@@@@AAШ@б@г%ValueyUvyVv@yYvyZv@@@@@@5_ @@г$unityfvygv@@@@@5`@@@@ynv~@@@AAШ@б@г%Valueyy@yy@@@@@@5iͰ @@г$unityy@@@@@5jٰ@@ڰ@@۰y@@@AAШ@б@г&Moduley y@ưyy @@@@@@5s @@г̠$unity$y(@@@@@5t@@@@y@@@yyՐ: Scan of a type extension y*0y*O@@@@@@@AAШ@б@г㠡)ExtensionyYyY@yYyY@@@@@@5}2 @@г$boolyYyY@@@@@5~>@@?@@ @yYa@@wz 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.z QYz  X@@@@@@@ AAШ@б@г)Extensionz&z/@ z!0z"@@@@@@@5k @@г$unitz.Dz/H@@@@@5w@@*x@@+yz6@@x!zG A This method scans the constructors of the given type extension. zDzE@@@@@@@,AAШ@б@г')ExtensionzVAzWJ@.zZKz[[@@@6@@@5 @@г4$unitzg_zhc@@<@@@5@@L@@Mzo$@@xZz 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.z}JRz~@@@@@@@zz2 Scan of a class. zekze@@@@@@@_AAШ@б@гZ$textzz@@b@@@5@@гb$unitzz@@j@@@5@@x@@yz@@xzÐ # Scan of a comment inside a class. zz@@@@@@@|AAШ@б@гw%Classzz@~zz@@@@@@5  @@г$boolzz@@@@@5,@@-@@.z@@xz 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.zz@@@@@@@AAШ@б@г%Class{ 8]{ 8b@{8c{8j@@@@@@5Y @@г$unit{8n{8r@@@@@5e@@f@@g{$8@@@y{5 4 This method scans the elements of the given class. {2{37@@@@@@@AAШ@б@г%Class{D7{E<@°{H={ID@@@@@@5 @@гȠ$unit{UH{VL@@@@@5@@@@{]#@@yH{n 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.{kt{{l@@@@@@@{{7 Scan of a class type. {|NT{}Np@@@@@@@AAШ@б@г$text{{@@@@@5հ@@г$unit{{@@@@@5@@ @@ {@@y{ ( Scan of a comment inside a class type. {rz{r@@@@@@@AAШ@б@г %Class{{@{{@@@@@@5 @@г$bool{{@@ @@@5@@0@@1{@@y{ꐠ 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.{{@@@@@@@2AAШ@б@г-%Class{Pz{P@4{P{P@@@<@@@5G @@г:$unit| P| P@@B@@@5S@@RT@@SU|PX@@y|# 9 This method scans the elements of the given class type. |  |! O@@@@@@@TAAШ@б@гO%Class|2St|3Sy@V|6Sz|7S@@@^@@@5 @@г\$unit|CS|DS@@d@@@5@@t@@u|KS[@@z6|\ 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.|Y|ZR@@@@@@@|n|m2 Scan of modules. |j|k@@@@@@@AAШ@б@г$text|z|{ @@@@@5ð@@г$unit||@@@@@5ϰ@@а@@Ѱ|@@zy| $ Scan of a comment inside a module. ||@@@@@@@AAШ@б@г&Module||@||!@@@@@@5 @@г$bool|%|)@@@@@5@@ @@ |@@z|ؐ 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.||@@@@@@@AAШ@б@г&Module|n|n@Ȱ|n|n@@@@@@55 @@гΠ$unit|n|n@@@@@6A@@B@@C}nv@@z} 5 This method scans the elements of the given module. }+3}+m@@@@@@@AAШ@б@г㠡&Module} Xu}!X{@}$X|}%X@@@@@@6 n @@г$unit}1X}2X@@@@@6 z@@{@@ |}9X`@@{$}J 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.}G}HW@@@@@@@}\}[7 Scan of module types. }X}Y@@@@@@@AAШ@б@г$text}h}i@@@@@6@@г$unit}t}u@@&@@@6@@4@@5}|@@{g} ) Scan of a comment inside a module type. }}@@@@@@@8AAШ@б@г3&Module}4}:@:};}H@@@B@@@6 @@г@$bool}L}P@@H@@@6@@X@@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. }!)} @@@@@@@ZAAШ@б@гU&Module}}@\}}@@@d@@@6'# @@гb$unit}}@@j@@@6(/@@z0@@{1}@@{} : This method scans the elements of the given module type. }RZ}R@@@@@@@|AAШ@б@гw&Module~~@~~~@@@@@@61\ @@г$unit~~ @@@@@62h@@i@@j~'@@|~8 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.~5~6@@@@@@@@~J~I7 Main scanning method. ~F~G@@@@@@@AAШ@б@г$list~V/a~W/e@г&Module~a/Q~b/W@~e/X~f/`@@@@@@6; @@@Ơ@@@6=@@г$unit~w/i~x/m@@@@@6>@@@@°~/7@@|j~9 Scan a list of modules. ~~.@@@@@@@@[\Ӱ~a@@#@ A  A  xA w YA X :A 9 %A $ A  A  A  A  A  A  A  }A | jA i UA T @A ? +A * A  A AAAAAAtAs_A^JAI5A4@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6ɐ@@6@@ 1@A@ f@A@AB @A@ @A@A @A@ @A@ABC W@A@ /@A@A G@A@B X@A@CD p@A@ @A@A 0@A@Ȱ@A@AB @A@@A@]@A@AB@A@x@A@A@A@@A@A@A@BCDEF @A@ @A@ @A@AB @A@ @A@AC @A@ ̰@A@A @A@BDG +@@#@ .;@@0A 'A & A  A  A  A  A  A  A  kA j VA U AA @ ,A + A  A  A  A  A  A  A  A  sA r ^A ] KA J 6A 5 !A  A AAAAt@6@7@7@7@7@7@7@7@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6鐐 s@@6@@@@/@@@,@/@,/@@3ZZZZZZZZ@@A0/@@ z#@ON@4@1A@ |#@O;@@~AN@@@@8@@@5@8@5A@ ;@@A@@@@<@@@9A@@3gggggggg@ #@> @E@B #@A @G@D #@ A@  @@@7@@7 @@@7@@7@@7 ~A@ { z@@@7@@7 y@@@7@@7@@7 vA@ s r@@@7@@7@ q p@@@7@@7 o@@@7@@7~@@7}@@7| lA@ i h@@@7@@7@ g f@@@7@@7 e@@@7@@7@@7@@7 bA@ _ ^@@@7{@@7z ]@@@7y@@7x@@7w ZA@ W V@@@7>@@7= U@@@7<@@7;@@7: RA@ O N@@@79@@78 M@@@77@@76@@75 JA@ G F@@@7 @@7  E@@@7 @@7 @@7 BA@ ? >@@@7H@@7G =@@@7F@@7E@@7D :A@ 7 6@@@7C@@7B 5@@@7A@@7@@@7? 2A@ / .@@@7@@7 -@@@7@@7@@7 *A@ ' &@@@7@@7 %@@@7@@7@@7 "A@  @@@7@@7 @@@7@@7@@7 A@ @@@7@@7 @@@7@@7@@7 A@  @@@7 @@7 @@@7@@7@@7 A@  @@@7@@7 @@@7@@7@@7 A@  @@@7@@7 @@@7@@7@@7  A@ @@@7*@@7) @@@7(@@7'@@7& A@  @@@74@@73 @@@72@@71@@70 A@  @@@7/@@7. @@@7-@@7,@@7+ A@  @@@7%@@7$ @@@7#@@7"@@7! A@ @@@7R@@7Q @@@7P@@7O@@7N A@  @@@7b@@7a @@@7`@@7_@@7^ A@  @@@7W@@7V @@@7U@@7T@@7S A@  @@@7M@@7L @@@7K@@7J@@7I A@ @@@7l@@7k @@@7j@@7i@@7h A@  @@@7v@@7u @@@7t@@7s@@7r A@  @@@7q@@7p @@@7o@@7n@@7m A@  @@@7g@@7f @@@7e@@7d@@7c A@   @@@7]@@@7\@@7[ @@@7Z@@7Y@@7Xz@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7 ~@@7~@@ @Aa@ ߰@A@AB #@A @ @A@A @A@ @A@ABC а@A@ @A@A @A@B Ѱ@A@CD @A@ @AX@A @Ah@ A@A}@AB @A@ \@A@ ְ@A9@AB v@A@ @AL@A 5@Ay@ @A_@A $@Ao@BCDEF @A@ ]@A@ e@AD@AB }@AT@ @Ae@AC z@A@ E@A@A @A@BDGy @@@7@ b@ _ #@ A@  @@@8@@8~ @@@8}@@8|@@8{ A@  @@@8z@@8y @@@8x@@8w@@8v A@  @@@8u@@8t@  @@@8s@@8r @@@8q@@8p@@8o@@8n A@  @@@8m@@8l@  @@@8k@@8j @@@8i@@8h@@8g@@8f }A@ z y@@@8e@@8d x@@@8c@@8b@@8a uA@ r q@@@8`@@8_ p@@@8^@@8]@@8\ mA@ j i@@@8[@@8Z h@@@8Y@@8X@@8W eA@ b a@@@8V@@8U `@@@8T@@8S@@8R ]A@ Z Y@@@8Q@@8P X@@@8O@@8N@@8M UA@ R Q@@@8L@@8K P@@@8J@@8I@@8H MA@ J I@@@8G@@8F H@@@8E@@8D@@8C EA@ B A@@@8B@@8A @@@@8@@@8?@@8> =A@ : 9@@@8=@@8< 8@@@8;@@8:@@89 5A@ 2@@@88@@87 1@@@86@@85@@84 .A@ + *@@@83@@82 )@@@81@@80@@8/ &A@ # "@@@8.@@8- !@@@8,@@8+@@8* A@  @@@8)@@8( @@@8'@@8&@@8% A@ @@@8$@@8# @@@8"@@8!@@8  A@  @@@8@@8 @@@8@@8@@8 A@  @@@8@@8 @@@8@@8@@8 A@  @@@8@@8 @@@8@@8@@8 A@ @@@8@@8 @@@8@@8 @@8  A@  @@@8 @@8  @@@8 @@8@@8 A@  @@@8@@8 @@@8@@8@@8 A@  @@@8@@8 @@@7@@7@@7 A@ @@@7@@7 @@@7@@7@@7 A@  @@@7@@7 @@@7@@7@@7 A@  @@@7@@7 @@@7@@7@@7 A@  @@@7@@7 @@@7@@7@@7 A@   @@@7@@@7@@7 @@@7@@7@@7@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8 @@8@@Ű@Aa@ @A@AB>@A @@A@A-@A@ @A@ABC @A@ ð@A@A ۰@A@B@A@CD@A@@AX@Aİ@Ah@ \@A}@AB @A@ w@A@ @A9@AB @A@ @AL@A P@Ay@ '@A_@A ?@Ao@BCDEF2@A@x@A@@AD@AB@AT@@Ae@AC@A@`@A@A@A@BDG;@@@AAA AoAPA;A&AAAAAAxAkA^ARkAEVA8AA+.AAA A A A A A A uA `A KA@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7@7Ő@@7@@@@ @@@ @ @ ;@@@AHA@ED@@@9[@@9ZC@@@9Y@@9X@@9WA@@@@9V@@9U@@@9T@@9S@@9RA@@@@9Q@@9P@@@9O@@9N@@9MA@@@@9L@@9K@@@9J@@9I@@9HA@@@@9G@@9F@@@9E@@9D@@9CkA@hg@@@9B@@9Af@@@9@@@9?@@9>A@@@@9=@@9<@@@9;@@9:@@99A@@@@98@@97@@@96@@95@@94A@@@@93@@92@@@91@@90@@9/A@@@@9.@@9-@@@9,@@9+@@9* A@@@@9)@@9(@@@9'@@9&@@9%A@@@@9$@@9#@@@9"@@9!@@9 A@@@@9@@9@@@9@@9@@9A@@@@9@@9@@@9@@9@@9A@@@@9@@9@@@9@@9@@9A@@@@9@@9@@@9@@9 @@9 CA@@?>@@@9 @@@9 @@9 =@@@9@@9@@9A@@@@9@@9@@@9@@9@@9|A@yx@@@9@@8w@@@8@@8@@8A@@@@8@@8@@@8@@8@@8A@@@@8@@8@@@8@@8@@8A@@@@8@@8@@@8@@8@@8A@@@@8@@8@@@8@@8@@8(A@%$@@@8@@8@#"@@@8@@8!@@@8@@8@@8@@8EA@BA@@@8@@8@@@@8@@8@@8kA@hg@@@8@@8f@@@8@@8@@8A@@@@8@@8@@@8@@8@@8A@@@@8@@8~@@@8@@8@@8ZA@WV@@@8@@8@UT@@@8@@8S@@@8@@8@@8@@8A@@@@8@@8@@@8@@8@@8@@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@@8@@@@@@@@Ag3@@Ax}@@ڐ # Scanning of collected information PPPx@@@@@@@yy@@#Depwl  @@@Б6kernel_deps_of_modulesu -5 -K@б@гx$list -^ -b@гH(t_module&Module  -N -T@  -U -]@@@@@@9\3@YG@6A@7A@8A@@ VU@UU@@@U@U@RR@A@@@4@@@9^$1@@г⠐$unit8 -f9 -j@@ @@@9_&@@@@@9`@@9a+6 @@@E -1 @0 m Modify the module dependencies of the given list of modules, to get the minimum transitivity kernel. R S ,@@@@@@@k@@@@f@@@@@@J-deps_of_typesvizjz@б&kernelг1$boolvzwz@@ @@@9b3xxxxxxxx@e:@A@@б@г$listzz@гg&t_type$Typezz@ zz@@@@@@9c$ @@@ @@@9e)@@г%$listzz@В@гg&t_type$Typezz@ zz@@@@@@9fM @@@гK$listzz@гvE!t$Namezz@ zz@@@@@@9go @@@ @@@9it@@@@/@ @@9j{9z@@@S @@@9lzQ@@@b@@9m @@9nnV@@M@@@9p@@9q @@9r z`@@ @z~c@  Return the list of dependencies between the given types, in the form of a list [(type name, names of types it depends on)]. @param kernel indicates if we must keep only the transitivity kernel of the dependencies. Default is [false]. lpsy@@@@@@@5@@s@ 0@@@@@@@=@"@@3,,,,,,,,@$@A3////////@@A4 5@@ F> Computation of dependencies. CD@@@@@@@F @@[Z; {1 Some global variables} WX@@@@@@3VVVVVVVV@Cz@o@T@@K*)@))@@@)@)@&@A&Globalmu v@@@Б&errorsx!'@г #ref.1@гj#int*-@@ @@@9s3@B@A@@@@@@9u @@@@@@@@@ *warn_errory2:2D@г5#ref2L2O@г}$bool2G2K@@ @@@9v3@oJ'@A@@@ @@@9x @@@26@@@@@@ (out_filez@гb#ref@г&string@@ @@@9y3@.K'@A@@@ @@@9{ @@@@鐠 ; The file used by the generators outputting only one file.  QU Q@@@@@@@$@@)@@@@@@@&'verbose{""#"@г#ref+","@г$bool5"6"@@ @@@9|377777777@Gd@@A@@@ @@@9~ @@@D"@/6 Verbose mode or not. Q!R!@@@@@@@j@@)@?e@@@@@@&*target_dir|h%,4i%,>@г#refq%,Hr%,K@гE&string{%,A|%,G@@ @@@93}}}}}}}}@Gd@@A@@@ @@@9 @@@%,0@u 1 The directory where files have to be generated. $$+@@@@@@@@@)@@@@@@@&%title}((@г4#ref((@г&option((@г&string((@@ @@@93@QnJ@A@@@ @@@9 @@@(@@@9 %@@@((@ʐ ; The optional title to use in the generated documentation. 'MQ'M@@@@@@@@@8@@@@@@@+*intro_file~++ @г#ref + +!@гr&option++@гꠐ&string +!+@@ @@@93""""""""@V}J@A@@@ @@@9 @@@(@@@9 %@@@4+(@ < The optional file whose content can be used as intro text. A*B*@@@@@@@Z@@8@/U@@@@@@+(with_tocX.pxY.p@г#refa.pb.p@г&$boolk.pl.p@@ @@@93mmmmmmmm@Ls@@A@@@ @@@9 @@@z.pt@e C The flag which indicates if we must generate a table of contents. -#'-#o@@@@@@@@@)@u@@@@@@&*with_index11@г$#ref11@гl$bool11@@ @@@93@Gd@@A@@@ @@@9 @@@1@ 8 The flag which indicates if we must generate an index. 00@@@@@@@@@)@ᐠ@@@@@@&+with_header4/74/B@гj#ref4/J4/M@г$bool4/E4/I@@ @@@93@Gd@@A@@@ @@@9 @@@4/3@񐠠 7 The flag which indicates if we must generate a header.33.@@@@@@@,@@)@'@@@@@@&,with_trailer*7+7@г#ref3747@г$bool=7>7@@ @@@93????????@Gd@@A@@@ @@@9 @@@L7@7 8 The flag which indicates if we must generate a trailer.Y6OSZ6O@@@@@@@r@@)@Gm@@@@@@&@@@r@R.@@@wD@$@@x@X4@@3{{{{{{{{@=Z6@A(8@@@@-@-analyse_files=\`=\m@б-merge_optionsг$list>p>p@г,merge_option*Odoc_types>p>p@ >p>p@@@@@@93@\F@;@@@~@^:@@@tP@0 @@@@@JW@A% @@@:!@@@9*7@@б,include_dirsгX$list??@г&string??@@ @@@9:@@@@@@9? @@б3hidden_include_dirsгx$list@@@гӠ&string @ @@@ @@@9Z@@@@@@9_ @@б&labelsгڠ$boolA A@@ @@@9p@@б,sort_modulesг렐$bool0B &1B *@@ @@@9@@б'no_stopг$boolAC.EBC.I@@ @@@9@@б$initгˠ$listRDMySDM}@гLm(t_module+Odoc_module`DMdaDMo@ dDMpeDMx@@@@@@9 @@@ @@@9@@б@г$listyEzE@г+Odoc_global+source_file+Odoc_globalEE@ EE@@@@@@:<߰ @@@"@@@:>@@г$listFF@гM(t_module&ModuleFF@ FF@@@@@@:? @@@ @@@:A @@@.@@:B @@:C:"@@|R{_@@@:E@@:F @@:GDM],@@R@@@:I@@:J@@:K!C.<6@@R@@@:M@@:N@@:O+B @@@R@@@:Q@@:R@@:S5AJ@@R@@@:U@@:V@@:W?@T@@!R @@@:Y@@:Z@@:[I?^@@nR7@@@:]@@:^@@:_S>pth@@ @ =\\k@ 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. :<,[@@@@@@@1@@{@,@@@@@@s,dump_modules/J040J0@@б@г&string:J0C;J0I@@ @@@:`3<<<<<<<<@8@A@@б@гĠ$listKJ0bLJ0f@гMf(t_module+Odoc_moduleYJ0MZJ0X@ ]J0Y^J0a@@@@@@:a$ @@@ @@@:c)@@г$unitpJ0jqJ0n@@ @@@:d6@@@@@:e@@:f;" @@@C@@:g @@:h@F@@@J00@m M Dump of a list of modules into a file. @raise Failure if an error occurs.HI/@@@@@@@@@"@}@@@@@@_,load_modulesNN@б@г{&stringNN@@ @@@:i3@x8@A@@г9$listNN@гM(t_module+Odoc_moduleNN@ NN@@@@@@:j" @@@ @@@:l'@@@/@@:m @@:n,2"@@@N%@А M Load of a list of modules from a file. @raise Failure if an error occurs.LppM@@@@@@@ @@5@@@@@@@K@|vA@-B@BB@A@keB@ A@A@WQA@A@xrA@}}A@||@|@zCyz/|@@z)@vCuv/z#@@v)@q!pnq v#@@q@n^mnJq@@nD@e{dCegn>@@ea@``=`oe[@@`i@O`NOL`c@@OF@00e0O@@@0Y02@0/@//h@/H/@..@.f.4@.-@--@-a,@,,@,l,C@,#+@++@++G@+@+@**@**j@*J*@))@))l@)L) @((@((9@('@''@&&@&&h@&H&@%%@%%r@%R%)@% $@$$@$$#@$#@##r@#R#)@# "@""k@"K""@"@!@@@f@@@Y)E@@@ @ @@@f@@@3@@A@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml CC@ H DD3@ H Maxence Guesdon, projet Cristal, INRIA Rocquencourt E44E4@ H FF@ H Copyright 2001 Institut National de Recherche en Informatique et GG@ H en Automatique. HHg@ H IhhIh@ H All rights reserved. This file is distributed under the terms of JJ@ H the GNU Lesser General Public License version 2.1, with the KKN@ H special exception on linking described in the file LICENSE. LOOLO@ H MM@ H************************************************************************NN5@ :* Interface to the information collected in source files.  -* The different kinds of element references. ̠,* Raw text. =* The string is source code. 砠 +* The string is pre-formatted source code. Π2* String 'as is'. 6* Text in bold style. 2* Text in italic. 3* Emphasized text. j1* Centered text. Q2* Left alignment. 83* Right alignment. ** A list. 6* An enumerated list. 㠠9* To force a line break. Ϡ;* Like html's block quote.  ** Style number, optional label, and text. 6* A string for latex. u (* A reference string and the link text. W * A reference to an element. Complete name and kind. An optional text can be given to display this text instead of the element name.*0* Superscripts. .* Subscripts.  6* The table of the given modules with their abstract. ڠ 8* The links to the various indexes (values, types, ...) Ơ9* to extend \{foo syntax  ?* (target, code) : to specify code specific to a target format  9* A text is a list of [text_element]. The order matters.  3* The different forms of references in \@see tags.  _* Raised when parsing string to build a {!Odoc_info.text} structure. [(line, char, string)] { "* The information in a \@see tag. $ "* Parameter name and description. Ƞ )* Raised exception name and description. k V* Information in a special comment @before 3.12 \@before information was not present.  8* The description text.  (* The list of authors in \@author tags. s #* The string in the \@version tag. W:* The list of \@see tags. ; !* The string in the \@since tag.  .* the version number and text in \@before tag  0* The description text of the \@deprecated tag. ݠ &* The list of parameter descriptions.  !* The list of raised exceptions.  ,* The description text of the return value.  '* A text associated to a custom @-tag. c A* Alerts associated to the same item. Not from special comments. G >* Location of elements in implementation and interface files. ~:* implementation location ~㠠5* interface location ~Š4* A dummy location. } #* Representation of element names. {=* Access to the simple name. }| <* [concat t1 t2] returns the concatenation of [t1] and [t2].} z* Return the depth of the name, i.e. the number of levels to the root. Example : [depth "Toto.Tutu.name"] = [3]. |ؠ F* Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 or else n2. || Q* Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 and n1<>"" or else n2. | C* Return the name of the 'father' (like [dirname] for a file name).{ؠ S* Representation and manipulation of method / function / class / module parameters.w,* {1 Types} { ,* Representation of a simple parameter name { * Representation of parameter names. We need it to represent parameter names in tuples. The value [Tuple ([], t)] stands for an anonymous parameter.za #* A parameter is just a param_info.yܠ0* {1 Functions} y P* Access to the name as a string. For tuples, parentheses and commas are added. yp?* Access to the complete type. y _* Access to the list of names ; only one for a simple parameter, or a list for a tuple. xȠ {* Access to the description of a specific name. @raise Not_found if no description is associated to the given name. x] m* Access to the type of a specific name. @raise Not_found if no type is associated to the given name. w 1* Representation and manipulation of extensions. r k* Used when the extension is a rebind of another extension, when we have [extension Xt = Target_xt].v䠠 -* The complete name of the target extension. w! '* The target extension, if we found it.w ,* the optional return type of the extension v 1* the type extension containing this constructor u -* [None] when the extension is not a rebind. uࠠ<* optional user description u 8* Information found in the optional associated comment. t<* The type of the extension tq '* Access to the extensions in a group. r 1* Representation and manipulation of exceptions. o k* Used when the exception is a rebind of another exception, when we have [exception Ex = Target_ex].rP -* The complete name of the target exception. r '* The target exception, if we found it.rq 8* Information found in the optional associated comment. q -* The optional return type of the exception. q_ -* [None] when the exception is not a rebind. qC +* Representation and manipulation of types.g- &* Description of a record type field. n5* Name of the field. o|5* [true] if mutable. oe4* [true] if atomic. oN5* Type of the field. o5 1* Optional description in the associated comment.o -* Description of a variant type constructor. m蠠;* Name of the constructor. m^ 2* Optional description in the associated comment. m#?* The various kinds of a type. kР ** Type is abstract, for example [type t]. l`/* constructors lB)* fields l$/* Type is open l 1* Type is external, e.g. [type t = external "t"] k<* optional user description j頠 /* Type manifest directly taken from Typedtree. j<<* Representation of a type. hԠ=* Complete name of the type. i 8* Information found in the optional associated comment. i $* type parameters: (type, variance) iX-* Type kind. iA:* Private or public type. i* Q* Representation and manipulation of values, class attributes and class methods. bz=* Representation of a value. f>* Complete name of the value. g@ 8* Information found in the optional associated comment. g$5* Type of the value. g $* [true] if the value is recursive. f:* The parameters, if any. f֠ E* The code of the value, if we had the only the implementation file. f '* Representation of a class attribute. d䠠 >* an attribute has almost all the same information as a value e4 &* [true] if the attribute is mutable. e &* [true] if the attribute is virtual. e $* Representation of a class method. c :* a method has almost all the same information as a value dJ "* [true] if the method is private.d3 #* [true] if the method is virtual. d K* Return [true] if the value is a function, i.e. it has a functional type. cE C* Access to the description associated to the given parameter name.bڠ =* Representation and manipulation of classes and class types.Q,* {1 Types} b ,* To keep the order of elements in a class. b& :* Used when we can reference a t_class or a t_class_type. ad "* Class type and type parameters. a (* 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. ]- =* Application/alias of a class, used in implementation only. ] * 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] \ (* A class definition with a constraint. \ޠ=* Representation of a class. a>* Complete name of the class. \ 8* Information found in the optional associated comment. [5* Type of the class. [ߠ3* Type parameters. [ $* [true] when the class is virtual. [ * The way the class is defined. [?* The parameters of the class. [u ** Complete name of the target class type. Z 5* The target t_class or t_class_type, if we found it.Y ,* The type parameters. FIXME : use strings? YϠ 0* A class type eventually applied to type args. X "* Representation of a class type. a=* Complete name of the type. X 8* Information found in the optional associated comment. Xd3* Type parameters. X8 &* [true] if the class type is virtual X! %* The way the class type is defined. X 0* {1 Functions} V蠠 %* Access to the elements of a class. Vz ** Access to the list of class attributes. U J* Access to the description associated to the given class parameter name. U $* Access to the methods of a class. U %* Access to the comments of a class. T ** Access to the elements of a class type. T5 /* Access to the list of class type attributes. S O* Access to the description associated to the given class type parameter name. SO )* Access to the methods of a class type. RԠ ** Access to the comments of a class type. Rb ?* Representation and manipulation of modules and module types. 3,* {1 Types} Q -* To keep the order of elements in a module. Q 9* Used where we can reference t_module or t_module_type. PŠ (* Complete name of the included module. N 6* The included module or module type, if we found it. N 0* comment associated with the include directive N &* Complete name of the target module. M͠ ;* The real module or module type if we could associate it. M+* the name M-+* the type M4* the original code L "* the way the parameter was built Lᠠ?* Different kinds of a module. P?* A complete module structure. L 8* Complete name and corresponding module if we found it L ?* A functor, with its parameter and the rest of its definition K頠 0* A module defined by application of a functor. Kˠ )* A generative application of a functor. K o* A module whose type is a with ... constraint. Should appear in interface files only. K (* A module constraint by a module type. Kv 0* by now only the code of the module expression K] /* code of the expression and module type alias K@>* Representation of a module. P?* Complete name of the module. IϠ:* The type of the module. I 8* Information found in the optional associated comment. I /* [true] for modules read from interface files I %* The file the module is defined in. Il !* The way the module is defined. IU 5* The toplevels module names this module depends on. I+?* The whole code of the module I 0* The whole code of the interface of the module H .* [true] if the module comes from a text file Hܠ +* Complete name of the target module type. G 1* The real module type if we could associate it. G "* Different kinds of module type. P?* A complete module signature. F{ ?* A functor, with its parameter and the rest of its definition F] D* Complete alias name and corresponding module type if we found it. FD <* The module type kind and the code of the with constraint. F& 0* by now only the code of the module expression F #* Representation of a module type. P $* Complete name of the module type. E' 8* Information found in the optional associated comment. E 1* [None] means that the module type is abstract. D 0* [true] for modules read from interface files. D֠ ** The file the module type is defined in. D * 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. D<* {1 Functions for modules} Cs &* Access to the elements of a module. C (* Access to the submodules of a module. B ** Access to the module types of a module. B! .* Access to the included modules of a module. A -* Access to the type extensions of a module. A4 (* 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. ?H /* Access to non-functional values of a module. >͠ %* Access to the classes of a module. >R )* Access to the class types of a module. =נ R* The list of classes defined in this module and all its submodules and functors. =\ #* [true] if the module is functor. = @* The list of couples (module parameter, optional description). * {2 Miscellaneous functions} -k * 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]. -0 * 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.+n 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.*3 Z* Return the label name for the given label, i.e. removes the beginning '?' if present.)⠠ * Return the given name where the module name or part of it was removed, according to the list of modules which must be hidden (cf {!Odoc_args.hidden_modules})) ;* Print the given string if the verbose mode is activated. )@ y* Print a warning message to stderr. If warnings must be treated as errors, then the error counter is incremented. ( G* A flag to indicate whether ocamldoc warnings must be printed or not. ( * Increment this counter when an error is encountered. The ocamldoc tool will print the number of errors encountered exit with code 1 if this number is greater than 0. (r )* 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.' * [text_of_string s] returns the text structure from the given string. @raise Text_syntax if a syntax error is encountered. '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}.& * [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 & 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. &B M* [remove_ending_newline s] returns [s] without the optional ending newline. %7* Research in elements  ** The type representing a research result.#S 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. !L ;* A function to search all the types in a list of modules.  Ԡ F* A function to search all the class attributes in a list of modules.  \ C* A function to search all the class methods in a list of modules. 䠠 =* A function to search all the classes in a list of modules. l 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. | 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. W * 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.!3* Scan of a class.  $* 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. x * 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.B8* Scan of a class type. 4 )* 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.c3* Scan of modules. U %* Scan of a comment inside a module. & * 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. v ** Scan of a comment inside a module type. G * 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.  ;* 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. S?* Computation of dependencies.  n* Modify the module dependencies of the given list of modules, to get the minimum transitivity kernel.  * 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.  ^ <* 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. w 9* The flag which indicates if we must generate an index. 4 8* The flag which indicates if we must generate a header. 9* The flag which indicates if we must generate a trailer. * Analysis of the given source files. @param init is the list of modules already known from a previous analysis. @return the list of analysed top modules.  N* Dump of a list of modules into a file. @raise Failure if an error occurs.~ N* Load of a list of modules from a file. @raise Failure if an error occurs.@,./ocamlc.opt)-nostdlib"-I(./stdlib"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I(ocamldoc"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-I%tools"-I'runtime"-I1otherlibs/dynlink"-I-otherlibs/str"-I4otherlibs/systhreads"-I.otherlibs/unix"-I8otherlibs/runtime_events"-cHI S/home/teraram/ci/builds/workspace/parallel-build/flambda/true/label/ocaml-manycores <10/.-,+*)('&%$#"! @@0%LԇR@ Ҿ3cccccccc@b@@(Asttypes0eT$BbRM dc5Build_path_prefix_map0zd,J4z8CamlinternalFormatBasics0|.e1R$|o0CamlinternalLazy0zY# #4#-*Format_doc0uy@GmWUࠠ%Ident0>ЃzV)j⠠,Identifiable0]/*N (Location0nBɊOn?7~ؠ)Longident0wP q;ɡ$Misc0Kvor#2Dd0D:Lu0>@ӽX4Id{b0Lt.`?9:77 0=V0^@GD-0DAఙ/KMv㠠R0>r(e8=*)Odoc_name0 d L_,~ې0n6sApT$Ґ0|rCuanO{T)Odoc_type0~b:x_B0ϸf%,e8h0FJ]\fѬ+Outcometree0BuG^)= 9c )Parsetree0v o[pY Y$Path0k.tbGmᠠ)Primitive0dU=\I/}%Shape0 M``ll&Stdlib0t0VoS%{<F:.Stdlib__Buffer0,I[?z.Stdlib__Digest0#z25I*.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Either0HD ?|>.Stdlib__Format00FClW/Stdlib__Hashtbl0(L%bԠ,Stdlib__Lazy0$1mlࠠ.Stdlib__Lexing0^m|e+Stdlib__Map0*4ɇ2ɠ#Str0y]q4KN.Type_immediacy00$ jbv\"k&0"|Vȷ`X )Unit_info0'T Χ@aR(Warnings0Ef{&@0DAఙ/KMvA[[ @ e '<&!NMR QİbӕbPj@} }iU@7v7ܰzz@++xx@gJg@@@uŕu@  K&%XY@*ؐ+?Ґ@_^Ӱrxr8@@@pp/@'&y9q9UVRzly@ r QEQmqlZ N@_^Űss@;-@I4Hggopo@C?CGݕG@8А9 ppm}Ɛ~@?k?eAaw@nn{5z@ * $%m00^@n8mmpp @HmGŰRZR @ ߖ ))@PP@JJb2uD@yRx@  =\^[@44\eA^Jkj@f˓f@,},°DyDdldfe@%@ F n$8$vu@**F~L@kfjYtgs@]O]+hhU@ _89QP@UmSn2m]@"h"԰ij@`y_@S:S$@ebаwŕw@T-HГ@E/ETzM˰@@@Bʰq@LKfTQ^@yǕyI@!!<<u@@oPo1@TےR@(&ٰed@Q4PڰX Xz@--@MKݰuDu/v@-=-w|w)@`-_<@]]Vxmx@/ /@J IMʕL@(&@@33@@@ZZrvܕv=@@oC@@e]Bg;f@'a@;_;ΰ{{:@^Õ^zbb{z@U=Sg[g]@n]m6dΓ@)) @9:lO$@6[6}d}@@?T?@@@s@UPppW@1M1͒3`@X@@HH*ON԰UZS~z yS@fYd@fe@`^_M@@jbj@v@  U@))@@x/x@uu@@ss@Y~Y}Ė}@  Ȱ23ȕ(@uu}}@('Г'@pps@@,~,SS@@PӓOҰVcT@AAVT`@ba@pp@7Y7İ/@?5?dd6h"h,@VUuu@@@NMiQҕQd@hа ) RcWc@lktszyR@GGk<@@bb@J@ Ȑ )(@@@@ ޖ {z@G̐H0]\Ȱhhbؕ@Gi@^]@ss7@&-&bb&@S R@ b 8rfO@wv@@ &j@^]v@@@Q<P8@]\@onuu"@$c$ϰ)('UKŰf5e@[~@585BC(N͕M@161rr}ƒ~%@@G(G||}}|@oo#@ssVww,C@kkA@@IƕHNgMNϕM@@)) @@r}s*@*K*K͓KK>g@N>Lڰ{1z@88W֖W@@11Y@?/?WgU__|@mlsq@@LyLL@@6Ð7eveT@@%&@@)_*Uon@-ݐ.JvI@ϐA6AtIs@ttn@?̐@2QP@JIvu@@CDWyUa`@*,)--$-[jj~}@WeUӰ.W@'(1@@cqbmzlQ@ZaZ@WW@##44Y}Y@%x%W?Uv{u@TTH@VyM @@"T"^++LKuxxe@ t@34.q;qW@vAv@R!Qxx^@@Y%Y@WU@@dd@Q͓P@ 5 ư`]`f*e@@DuDWV,k@k.j@ba߰~G|?}|߰ð@?K?@ONQmPZ@JٕJ%˕@FFzy_@@@4Ő5 gҒ_@33@N"22^ϕ^ @dQ@,$,`k)k@5v5@ON:@mْnpCq1T@&v@mwӔ@**@$$R=Q5@ONl@hbg@44H@@P@@