Caml1999I031:"~)Odoc_info(ref_kind\8@@)RK_module@@-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]8@@#Raw-&stringO@@@@@cc@@P$Code.@@@@@dd@@Q'CodePre/@@@@@e#%e#8@@R(Verbatim0,@@@@@fikfi@@S$Bold1n@@@@@gg@@T&Italic2{@@@@@hh@@U)Emphasize3@@@@@ii@@V&Center4@@@@@jj-@@W$Left5@@@@@kDFkDT@@X%Right6@@@@@llnll}@@Y$List7$listI@@@@@@@@"m#m@@2Z$Enum8@@@@@@@@4n5n@@D['Newline9@@=o>o@@M\%Block:@@@@@JpKp)@@Z]%Title;#intA@@@&optionJ@@@@@@ @@@@@jqJLkqJq@@z^%Latex<@@@@@xsys@@_$Link=@@@+@@@@@tt@@`#Ref>@@@>@@@@@@HK@@@@@@@@u $ &u $ U@@a+Superscript?Y@@@@@y  y  @@b)Subscript@f@@@@@z # %z # 8@@c+Module_listAC@@@@@@@@{ L N{ L j@@d*Index_listB@@}  }  @@e&CustomC[@@@@@@@@~  ~  @@f&TargetDm@@@ߠr@@@@@ 3 5 3 P@@g@@A,text_element@@@@@@@b @@@@ AB@8@@@A@@@@@@@@@@!B  "B  @@@@1BB@'see_ref_8@@'See_urlF@@@@@5F N R6F N c@@Ei(See_fileG@@@@@CG d fDG d z@@Sj'See_docH@@@@@QH { }RH { @@ak@@A'see_ref@@@@@@@\E * * @@@@khA@ +Text_syntax` #exnG@@@@ @@@ @@@@@A&_none_@@A@lB@#seea8@@@A`@@@ -@@@ @@ @@@@O J JO J c@@@@mA@%paramb8@@@A @@@B@@@@@@@@@R  R  @@@@nA@0raised_exceptionc8@@@A@@@W@@@@@@@@@U  U  @@@@oA@$infod8@@&i_descN@il@@@,@@@-[~[~@@q)i_authorsO@H@@@*@@@+\\@@r)i_versionP@Y@@@(@@@)]]@@s&i_seesQ@ޠ@@@&@@@'^FJ^F\@@t'i_sinceR@{@@@$@@@%_|_|@@ u(i_beforeS@@@@!@@@ @@"@@@#(`)`@@8v,i_deprecatedT@ՠ@@@@@@8a9a7@@Hw(i_paramsU@(@@@@@@IbmqJbm@@Yx3i_raised_exceptionsV@9@@@@@@Zc[c@@jy.i_return_valueW@ @@@@@@jd kd +@@zz(i_customX@Z@@@"@@@@@@@@e]ae]@@{@@A$info@@@.@@@@Z^^f@@@@pA@(locatione8@@(loc_impl@@(Location!t@@@1@@@2j#jA@@})loc_inter@U!t@@@/@@@0kaeka@@~@@AG(location@@@3@@@@il@@@@|A@)dummy_locf?@@@4@oo@@@Ӡ$Nameg@!t8@@@AS@@@@@@@tt*@@@@@A@&simple@@@@@@@@@@wTZwTm@@ A@&concat@@@@@@@@@@@@@@@@zz@@B@%depth@(@@@@@@@@@!~[a"~[u@@1C@,get_relative@:@@@@?@@@B@@@@@@@@78@@GD@0get_relative_opt@P@@@@U@@@X@@@@@@@@MJPNJr@@]E@&father@f@@@i@@@@@@^_@@nF@@@brc@rG@@Ӡ)Parameterh@+simple_name8@@'sn_name@@@@z{@@J'sn_type@%Types)type_expr@@@"@@K'sn_textA7:@@@@@@#-#L@@L@@A.Odoc_parameter+simple_name@@@@@@@MV@@@@HA@*param_info8@@+Simple_nameL@@@@@.6.P@@N%Tuple@@@@@@M)type_expr@@@@@QWQ@@O@@A;*param_info@@@@@@@ @@@@MA@)parameter8@@@A @@@@@@@@@@@PA@-complete_name@@@@k@@@@@@EIEp@@Q@#typ@@@@)type_expr@@@@@@@@#R@%names@'@@@ @@@@@@@@@*.2+.V@@:S@,desc_by_name@>@@@@@@@@@@@@@@@@@@FG@@VT@,type_by_name@Z@@@@@@@)type_expr@@@@@@@@`a@@pU@@@d>>e@tV@@Ӡ)Extensioni@,private_flag8@@'Private%@@yW]zWd@@X&Public&@@WeWm@@Y@@A.Odoc_extension,private_flag@@@@@@@!% @@A@WA@/extension_alias8@@'xa_name=@!t@@@)3)E@@]%xa_xt>AO7t_extension_constructor@@@@@@xx@@^@@A3/extension_alias@@@@@@@@@@@ZA@8@@'xt_name?@0!t@@@?I?[@@_'xt_argsI@)Odoc_type0constructor_args@@@\f\@@`&xt_retJ@k)type_expr@@@@@@@@a1xt_type_extensionK@0t_type_extension@@@@@b(xt_aliasL@}@@@@@@MWMy@@#c&xt_locMA(location@@@!"@@1d'xt_textNAΠ$info@@@@@@45 @@De@@A7t_extension_constructor@@@@@@@?@ 1 :@@@@O[B@F8@@'te_infoOA@@@@@@T  U  @@df,te_type_nameP@!t@@@a  b ! @@qg2te_type_parametersQ@Q)type_expr@@@@@@t!-!7u!-!a@@h*te_privateR@@@@!b!l!b!@@i/te_constructorsSAp@@@@@@!!!!@@j&te_locTA@@@!!!!@@k'te_codeUAH@@@@@@!!!"@@l@@A*0t_type_extension@@@@@@@ < @""$@@@@\B@6extension_constructors@@@@@@@@@@@@@"V"Z"V"@@m@@@""@n@@Ӡ)Exceptionj@/exception_alias8@@'ea_namen@I!t@@@u####@@q%ea_exoA+t_exception@@@s@@@t$$$$6@@ r@@A.Odoc_exception/exception_alias@@@v@@@@ #s#w $c$l@@@@oA@8@@'ex_names@z!t@@@$$$$@@+s'ex_infotAȠ@@@@@@+$$,$$@@;t'ex_argsu@Z0constructor_args@@@~9%/%9:%/%^@@Iu&ex_retv@)type_expr@@@|@@@}L%_%iM%_%@@\v(ex_aliasw@~@@@z@@@{]%%^%%@@mw&ex_locxA@@@yh&&'i&&B@@xx'ex_codeyA@@@w@@@xy&C&Mz&C&n@@y@@A|+t_exception@@@@@@@$n$r&o&x@@@@pB@@@""&y&~@z@@Ӡ$Typek@,private_flag8@@'Private|@@&&&'@@|&Public}@@&'&' @@}@@A,private_flag@@@B@@@@&& @@A@{A@,record_field8@@'rf_name@.@@@G'w''w'@@*rf_mutable@$boolE@@@F''''@@'rf_type@V)type_expr@@@E'''( @@'rf_textA@@@C@@@D(&(0(&(O@@@@A,record_field@@@H@@@@'<'@((@@@@ ~A@0constructor_args8@@+Cstr_recordZ@@@K@@@L@@))))(@@"*Cstr_tuple)type_expr@@@I@@@J@@')))/()))S@@7@@AS0constructor_args@@@M@@@@2(( @@@@AA@3variant_constructor8@@'vc_name@@@@SC ))D ))@@S'vc_args@O@@@RO ))P )*@@_&vc_ret@)type_expr@@@P@@@Qb** c**,@@r'vc_textA@@@N@@@Or*-*7s*-*V@@@@A3variant_constructor@@@T@@@@} )U)Y~**@@@@A@)type_kind8@@-Type_abstract@@***+@@,Type_variant~f@@@W@@@X@@+1+7+1+a@@+Type_record@@@U@@@V@@++++@@)Type_open@@++++@@@@A)type_kind@@@Y@@@@** @@@@A@,object_field8@@'of_name@B@@@],-,3,-,E@@'of_type@\)type_expr@@@\,F,L,F,g@@'of_textAw$info@@@Z@@@[,h,n,h,@@ @@A#,object_field@@@^@@@@ ++ ,,@@@@ A@-type_manifest8@@%Other)type_expr@@@a@@ ",, ",-@@ (+Object_type _@@@_@@@`@@ +#-I-O ,#-I-q@@ ;@@AW-type_manifest@@@b@@@@ 6!,, @@@@ EA@&t_type8@@'ty_name@!t@@@q H(-- I(--@@ X'ty_infoA@@@o@@@p X).. Y)../@@ h-ty_parameters@H)type_expr@@@l@@@k@@@j@@m@@@n x*.m.w y*.m.@@ 'ty_kind@@@@i ,./ ,./@@ *ty_private@@@@h -/,/6 -/,/P@@ +ty_manifest@=@@@f@@@g ./p/z ./p/@@ &ty_locA@@@e /// ///@@ 'ty_codeAY (@@@c@@@d 0// 0//@@ @@A&t_type@@@r@@@@ &-- 1//@@@@ A@@@ && 3/0@ @@Ӡ%Valuel@'t_value8@@(val_name@D!t@@@/ ;00 ;00@@ (val_infoA@@@-@@@. <11 <110@@ (val_type@{)type_expr@@@, =1n1x =1n1@@ -val_recursive@A@@@+ >11 >11@@ .val_parametersA|)parameter@@@)@@@* "?12 #?12;@@ 2(val_codeAϠ @@@'@@@( 3@2[2e 4@2[2@@ C'val_locAl@@@& >A22 ?A22@@ N@@A*Odoc_value't_value@@@0@@@@ K900 LB23@@@@ [A@+t_attribute8@@)att_value@@@@3 ]G3n3x ^G3n3@@ m+att_mutable@@@@2 iH33 jH33@@ y+att_virtual@@@@1 uI44& vI44:@@ @@A7+t_attribute@@@4@@@@ E3438 J4g4p@@@@ A@(t_method8@@)met_value@5@@@7 O44 O44@@ +met_private@@@@6 P525< P525P@@ +met_virtual@@@@5 Q5y5 Q5y5@@ @@Ak(t_method@@@8@@@@ M44 R55@@@@ A@+is_function@f@@@9@@@:@@;@ U6 6$ U6 6E@@ @@@@?@@@@@A@ X66 X66@@ @@@ 60X0X Y66@ @@Ӡ%Classm@-class_element8@@/Class_attribute.+t_attribute@@@@@ b77 b77@@ ,Class_method(t_method@@@@@ c77 c78 @@ !-Class_comment @@@@@ d8 8 d8 8)@@ .@@A*Odoc_class-class_element@@@@@@@ +a77 @@@@ :A@#cct8@@"Cl't_class@@@@@ @h88 Ah88@@ P&Cltypeᐠ,t_class_type@@@ 9)type_expr@@@@@@@@ \i88 ]i88@@ l@@A>#cct@@@@@@@ gg8n8r @@@@ vA@/inherited_class8@@'ic_name@!t@@@ ym9C9M zm9C9_@@ à(ic_classA &X@@@@@@ n99 n99@@ Ġ'ic_text@ 7 :@@@@@@ o99 o9:@@ @@A|/inherited_class@@@@@@@ k99 p:4:=@@@@ B@+class_apply8@@)capp_name@!t@@@ t:x: t:x:@@ Ơ*capp_classA e@@@@@@ u:: u::@@ Ǡ+capp_params@ R)type_expr@@@@@@ v;$;. v;$;Q@@ Ƞ0capp_params_code@ ˠ W@@@@@@ w;; w;;@@ @@A+class_apply@@@@@@@ r:?:C x;;@@@@ B@,class_constr8@@(cco_name@i!t@@@ |@@ ʠ)cco_classA @@@@@@ }> j>>;@@ yΠ,Class_constry@@@@@ w>> x>>@@ Ϡ0Class_constraintF@@@/class_type_kind@@@@@ ?? ??@@ @@An*class_kind@@@@@@@ =U=Y @@@@ B@_8@@'cl_name@!t@@@ʰ @@ @@@@ Ѡ'cl_infoA Td@@@@@@ɰ @@ @@@@ Ҡ'cl_type@=*class_type@@@ǰ A4A> A4AZ@@ Ӡ2cl_type_parameters@ O)type_expr@@@@@@ư AuA AuA@@ Ԡ*cl_virtual@@@@İ AA AA@@ ՠ'cl_kindAk@@@ð B B B B2@@ ֠-cl_parametersA ߠ)parameter@@@@@@° BXBb BXB@@ נ&cl_locA ;@@@ BB BB@@ @@A't_class@@@@@@@ @\@` BB@@@@ (B@0class_type_alias8@@(cta_name@!t@@@а +C-C7 ,C-CJ@@ ;٠)cta_classA ؠ@@@@@@ϰ ;CzC <CzC@@ Kڠ3cta_type_parameters@ +)type_expr@@@@@@Ͱ NCC OCD@@ ^@@A00class_type_alias@@@@@@@ YBB ZDHDQ@@@@ iB@8@@/Class_signature O@@@@@@֠ X@@@@@@@@ xDD yDD@@ ܠ*Class_typeg@@@@@ DD DD@@ @@Ah/class_type_kind@@@@@@@ DSDW @@@@ B@I8@@(clt_name@!t@@@ EE EE@@ ޠ(clt_infoA N^@@@@@@߰ EE EE@@ ߠ(clt_type@ 7*class_type@@@ݰ F:FD F:Fa@@ 3clt_type_parameters@  I)type_expr@@@@@@ܰ FbFl FbF@@ +clt_virtual@@@@ڰ FF FF@@ (clt_kindA`@@@ٰ FG FG)@@ 'clt_locA "@@@ذ GTG^ GTGz@@@@A,t_class_type@@@@@@@ EWE[G{G@@@@B@.class_elements%trans F@@@@@@@@@@ @@@@@@@@@@@"GG#GH@@2@0class_attributes%trans#h@@@@@@@@@@ $D+t_attribute@@@@@@@@@@@FHHHLGHHH@@V@@3class_type_comments%trans/t@@@@@@ @@@@!0@@@"@@@#@@$@@%@PLLQLL@@`@@@T\7$7$ULL@d@@Ӡ&Modulen@.module_element8@@.Element_module(t_module@@@w@@pMMqMM@@3Element_module_type-t_module_type@@@v@@MMMM@@7Element_included_module/included_module@@@u@@NNNN2@@-Element_class't_class@@@t@@N3N9N3NY@@2Element_class_type,t_class_type@@@s@@NZN`NZN@@-Element_value't_value@@@r@@NNNN@@6Element_type_extension b0t_type_extension@@@q@@NNNN@@1Element_exception  +t_exception@@@p@@NNNO!@@,Element_type!^&t_type@@@o@@O"O(O"OE@@6Element_module_comment"@@@n@@OFOLOFOl@@ @@A+Odoc_module.module_element@@@x@@@@MyM} @@@@A@#mmt8@@#ModZ@@@z@@OOOO@@*'Modtype[@@@y@@'OO(OP@@7@@A,#mmt@@@{@@@@2OO @@@@AB@8@@'im_name\@ !t@@@BPLPVCPLPh@@R)im_module]AD@@@~@@@SPPTPP@@c'im_info^A$info@@@|@@@}fPQgPQ0@@v@@Ak/included_module@@@@@@@qP PrQfQo@@@@B@,module_alias8@@'ma_name_@ !t@@@QQQQ@@ )ma_module`A1B@@@@@@QQQR@@ @@A,module_alias@@@@@@@QqQuR`Ri@@@@B@0module_parameter8@@'mp_namea@@@@RRRR@@ 'mp_typeb@^ ;+module_type@@@@@@RRRR@@ ,mp_type_codec@<@@@SSSS.@@ 'mp_kindd@0module_type_kind@@@SHSPSHSl@@@@A0module_parameter@@@@@@@RkRoSS@@@@B@+module_kind8@@-Module_structe@@@@@@@@SSST!@@,Module_aliasf@@@@@TFTLTFTj@@ .Module_functorgx@@@3@@@@@#TT$TT@@3,Module_applyh@@@@@@@@4U:U@5U:Uk@@D+Module_withif@@@@@@@@FUUGUU@@V1Module_constraintj1@@@|@@@@@W VpVvX VpV@@g-Module_typeofk@@@@@e VVf VW @@u-Module_unpackl@@@1module_type_alias@@@@@zWCWI{WCWv@@@@A+module_kind@@@@@@@SS @@@@B@8@@&m_namem@ !t@@@XXXX"@@&m_typenA +module_type@@@XGXQXGXu@@&m_infooAP `@@@@@@XXXX@@.m_is_interfacep@ @@@XYXY@@&m_fileq@7@@@YQY[YQYl@@&m_kindrA@@@YYYY@@%m_locsA@@@YYYZ @@*m_top_depstAѠ Q!t@@@@@@Z ZZ Z7@@&m_codeuAo@@@@@@ZrZ|ZrZ@@+m_code_intfvA@@@@@@ZZZZ@@% +m_text_onlyw@ S@@@![&[0"[&[D@@1!@@A&(t_module@@@@@@@,WW-[x[@@@@<B@8@@(mta_namex@ !t@@@="[[>"[[@@M"*mta_moduleyA@@@@@@M#\\!N#\\L@@]#@@AR1module_type_alias@@@@@@@X [[Y$\\@@@@hB@8@@2Module_type_structzNm@@@@@@@@n(\\o(\]$@@~$3Module_type_functor{^@@@@@@@@)]I]O)]I]@@%1Module_type_alias|@@@@@+]]+]^ @@&0Module_type_with}@@@ @@@@@-^`^f-^`^@@'2Module_type_typeof~@@@@@/^^/^_@@(@@A0module_type_kind@@@@@@@'\\ @@@@B@?8@@'mt_name@ &!t@@@5__5__@@)'mt_infoAt @@@@@@6_`6_`#@@*'mt_typeAa+module_type@@@@@@7`a`k7`a`@@+/mt_is_interface@ (@@@8``8``@@,'mt_file@n@@@9a&a09a&aB@@-'mt_kindA6@@@@@@:ara|:ara@@".&mt_locAK@@@>bb>bb@@-/@@A"-t_module_type@@@@@@@(3_v_z)?bb@@@@8B@/module_elements%trans) n@@@@@@@@@@*I@@@@@@@@@@@JDcBcFKDcBc@@Z0@.module_modules%transK @@@@@@@@@@L@@@@@@@@@@@lGccmGcc@@|1@3module_module_types%transm @@@@@@@@@@n@@@@@@@@@@@Jd3d7Jd3d~@@2@7module_included_modules%trans @@@@@@@;@@@"@@@@@@@@@@@MddMde@@3@6module_type_extensions%trans @@@@@@@]@@@0t_type_extension@@@@@@@@@@@Pe?eCPe?e@@4@1module_exceptions%transՠ @@@@@@@@@@֠+t_exception@@@@@@@@@@@SeeSef@@5@,module_types%trans >@@@@@@@@@@.&t_type@@@@@@@@@@@VfJfNVfJf@@,6@-module_values%trans b@@@@@@@@@@ >'t_value@@@@@@@@@@@@YffAYff@@P7@0module_functions%transA @@@@@@@@@@B b't_value@@@@@@@@@@@d\g5g9e\g5g|@@t8@4module_simple_values%transe @@@@@@@@@@f 't_value@@@@@@@@@@@_gg_gh@@9@.module_classes%trans @@@ @@@ @5@@@  't_class@@@ @@@ @@@@@bh1h5bh1hv@@:@2module_class_types%trans @@@@@@@Y@@@0,t_class_type@@@@@@@@@@@ehhehh@@;@2module_all_classes%transѠ @@@@@@@}@@@ҠT't_class@@@@@@@@@@@hiUiYhiUi@@<@1module_is_functor@@@@ 8@@@@@ @kiikii@@=@1module_parameters%trans L@@@!@@@"@@@@# @@@&Р@@@$@@@%@@'@@@(@@)@@*@4njCjG5njCj@@D>@/module_comments%trans5 z@@@+@@@,@@@@-6@@@.@@@/@@0@@1@VqjjWqjk@@f?@4module_type_elements%transW @@@2@@@3@@@@4Xw@@@5@@@6@@7@@8@xvkfkjyvkfk@@@@3module_type_modules%transy @@@9@@@:@@@@;z,@@@<@@@=@@>@@?@ykkykl9@@A@8module_type_module_types%trans @@@@@@@A@7@@@B>@@@C@@@D@@E@@F@|lslw|lsl@@B@rr?rr@@NM@4module_type_comments%trans ?@@@@@@@@@@@@@@@@@@@@@@`ss"asse@@pN@@@dMMesfsk@tO@@0reset_type_nameso@$unitF@@@5@@@6@@7@yttztt@@P@2string_of_variancep@&t_type@@@8@@@@:@@@9@@;@@@<@@=@@>@uuuv @@Q@3string_of_type_exprq@$)type_expr@@@?@@@@@@A@vhvhvhv@@R@6string_of_class_paramsr@!'t_class@@@B0@@@C@@D@wwww<@@S@3string_of_type_lists#par Š @@@E@@@F@K@@@G@ɠc)type_expr@@@H@@@I\@@@J@@K@@L@@M@wwww@@T@9string_of_type_param_listt@&t_type@@@Np@@@O@@P@x]x]x]x@@U@ #string_of_type_extension_param_listu@G0t_type_extension@@@Q@@@R@@S@yyyyR@@(V@?string_of_class_type_param_listv@ )type_expr@@@T@@@U@@@V@@W@2yy3yz%@@BW@5string_of_module_typew$code 3@@@X@@@Y(complete ?@@@Z@@@[@+module_type@@@\@@@]@@^@@_@@`@_{i{i`{i{@@oX@4string_of_class_typex(complete `@@@a@@@b@*class_type@@@c@@@d@@e@@f@|~|~|~|@@Y@.string_of_texty@/@@@g@@@h@@i@|||} @@Z@.string_of_infoz@N@@@j@@@k@@l@};};};}^@@[@.string_of_type{@&t_type@@@m$@@@n@@o@}}}}@@\@0string_of_record|@,record_field@@@p@@@q=@@@r@@s@}}}}@@]@8string_of_type_extension}@ 0t_type_extension@@@tQ@@@u@@v@~7~7~7~z@@^@3string_of_exception~@ +t_exception@@@we@@@x@@y@~~~~@@ _@/string_of_value@'t_value@@@zy@@@{@@|@ %%%R@@`@3string_of_attribute@+t_attribute@@@}@@@~@@@!"@@1a@0string_of_method@0(t_method@@@@@@@@@56)@@Eb@6first_sentence_of_text@@@@@@@@@@FGGGGp@@Vc@?first_sentence_and_rest_of_text@@@@@@@@@@@@@@@^_@@nd@5text_no_title_no_list@ @@@@@@@@@op$@@e@+text_concat@$text@@@@j $text@@@@@@$text@@@@@@@@@@f@2get_titles_in_text@B@@@T@@@R!@@@@@@[@@@@@@@@@@@ == =@@g@2create_index_lists@!a@@@@@@ C@@@@@à@@@@@@@@@@@@@h@-remove_option@j)type_expr@@@p)type_expr@@@@@@@@i@+is_optional@(Asttypes)arg_label@@@A@@@@@@;@@j@*label_name@)arg_label@@@@@@@@@$%@@4k@2use_hidden_modules@!t@@@!t@@@@@@9#uu:#u@@Il@'verbose@@@@@@@@@@L&M&@@\m@'warning@@@@@@@@@@_+||`+|@@on@.print_warnings&Stdlib#ref@@@@@@@u.v.@@o@&errors#ref/@@@@@@@44@@p@)apply_opt@@!a@!b@@@@D@@@I@@@@@@@@773@@q@.apply_if_equal@@!a@@@@@@@@@@@@<<@@r@.text_of_string@9@@@q@@@@@@AA@@s@3text_string_of_text@@@@N@@@@@@FDDFDl@@t@.info_of_string@]@@@@@@@@@M>>M>a@@u@3info_string_of_info@@@@r@@@@@@RR)@@v@4info_of_comment_file@ (t_module@@@@@@@@@@@@@@@@@@%[ss&[s@@5w@5remove_ending_newline@@@@@@@@@@8^9^4@@Hx@Ӡ&Search@.result_element8@@*Res_moduleА9(t_module@@@2@@SdTd@@cz/Res_module_typeѐH-t_module_type@@@1@@bece@@r{)Res_classҐ 't_class@@@0@@qfrf!@@|.Res_class_typeӐ ,t_class_type@@@/@@g"*g"P@@})Res_valueԐ't_value@@@.@@hQYhQu@@~(Res_typeՐ &t_type@@@-@@iv~iv@@-Res_extension֐ 7t_extension_constructor@@@,@@jj@@-Res_exceptionא +t_exception@@@+@@kk@@-Res_attributeؐ+t_attribute@@@*@@ll2@@*Res_methodِ(t_method@@@)@@m3;m3Y@@+Res_sectionڐT@@@(@@@'@@nZbnZ@@,Res_recfieldې &t_type@@@& ,record_field@@@%@@oo@@)Res_constܐ #&t_type@@@$ )3variant_constructor@@@#@@pp@@&@@A+Odoc_search.result_element@@@3@@@@#cjp @@@@2yA@-search_result8@@@A@@@4@@@5@@@@5s066s0^@@@@EA@.search_by_name@(/(t_module@@@6@@@7@#Str®exp@@@8/@@@9@@:@@;@XvYv@@h@&values@KR(t_module@@@<@@@=Uu't_value@@@>@@@?@@@@wyMSxyM@@@*extensions@jq(t_module@@@A@@@Bt 7t_extension_constructor@@@C@@@D@@E@||,@@@*exceptions@(t_module@@@F@@@G +t_exception@@@H@@@I@@J@yy@@@%types@(t_module@@@K@@@L &t_type@@@M@@@N@@O@  D@@@*attributes@Ǡ(t_module@@@P@@@QѠ+t_attribute@@@R@@@S@@T@@@@'methods@(t_module@@@U@@@V(t_method@@@W@@@X@@Y@,2,k@@"@'classes@ (t_module@@@Z@@@[ 't_class@@@\@@@]@@^@12@@A@+class_types @$+(t_module@@@_@@@`. ,t_class_type@@@a@@@b@@c@PAGQA@@`@'modules @CJ(t_module@@@d@@@eMT(t_module@@@f@@@g@@h@op@@@,module_types @bi(t_module@@@i@@@jls-t_module_type@@@k@@@l@@m@aga@@@@@aRR@@@Ӡ$Scan@Š'scanner  @*scan_valueA@'t_value@@@B@@@@@@@-scan_type_preA@ &t_type@@@@@@@@@@/scan_type_constA@ &t_type@@@@ 3variant_constructor@@@i@@@@@@@@@2scan_type_recfieldA@ &t_type@@@@,record_field@@@@@@@@@@@@)scan_typeA@&t_type@@@@@@@@@@:scan_extension_constructorA@B7t_extension_constructor@@@@@@@@@@.scan_exceptionA@B+t_exception@@@@@@@@@@.scan_attributeA@.+t_attribute@@@@@@@@@@+scan_methodA@>(t_method@@@@@@@@@@4scan_included_moduleA@5/included_module@@@@@@@@@@7scan_type_extension_preA@0t_type_extension@@@@@@@@@@ scan_type_extension_constructorsA@0t_type_extension@@@@@@@@@@3scan_type_extensionA@0t_type_extension@@@@@@@@@@2scan_class_commentA@.@@@@@@@@@@.scan_class_preA@'t_class@@@@@@@@@@3scan_class_elementsA@'t_class@@@>@@@@@@@*scan_classA@'t_class@@@N@@@@@@@7scan_class_type_commentA@l@@@\@@@@@@@3scan_class_type_preA@<,t_class_type@@@@@@@@@@8scan_class_type_elementsA@L,t_class_type@@@|@@@@@@@/scan_class_typeA@\,t_class_type@@@@@@@@@@3scan_module_commentA@@@@@@@@@@@/scan_module_preA@(t_module@@@O@@@@@@@4scan_module_elementsA@(t_module@@@@@@@@@@+scan_moduleA@(t_module@@@@@@@@@@8scan_module_type_commentA@@@@@@@@@@@4scan_module_type_preA@=-t_module_type@@@@@@@@@@9scan_module_type_elementsA@M-t_module_type@@@@@@@@@@0scan_module_typeA@]-t_module_type@@@@@@@@@@0scan_module_listA@jq(t_module@@@@@@@@@@@@@@@e@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@[@\@]@^@_@`@a@b@c@@d@@x@Ax@@A@AB@A@@A@A@A@@A@ABC@A@ʰ@A@A۰@A@B@A@CD@A@m@Am@A~@A~@@A@AB@A@@A@>@A>@AB@A@R@AR@A@A@f@Af@Aw@Aw@BCDEFа@A@@A@V@AV@ABg@Ag@y@Ay@AC@A@@A@A,@A,@BDG?B@@@E@@@A@Ơ@ @?R@@°@A@6@A6@ABe@Ae@J@AJ@A[@A[@@A@ABC.@A.@@A@A%@A%@B@A@CD@A@@A@AȰ@A@а@A@AB@A@@A@@A@AB@A@@A@A˰@A@@A@A@A@BCDEF@A@L@AL@@A@AB@A@ð@A@ACb@Ab@>@A>@Av@Av@BDG@F@CA@8@@@AAuAtAAA?A>oAnSAReAd#A"5A4A AAAA@%A$A9A8A A AA]A\AAAAAAA@@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@{@|@}@~@@@@@@@@@@@@@@@A@(#scanner8@@@AAAAAA~qApcAbUATGAF9A8+A*AAAAAAAAAAAA{AzmAl_A^SAREAD7A6)A(@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@@@@ @!@@"@@@@@@@A@@@  @ @@Ӡ#Dep@6kernel_deps_of_modules@(t_module@@@6@@@7 W@@@8@@9@    @@ @-deps_of_types&kernelˠ@@@:@@@;@ɠ&t_type@@@<@@@=Ӡ &t_type@@@@`!t@@@>@@@?@@A@@@B@@C@@D@!!?@@!@@@!  !@E@!@@Ӡ&Global@&errors#ref@@@@@@@! !!@@!0@*warn_error#refd@@@ @@@!@!3!4@@!C@(out_file#ref @@@"@@@#@!F!G@@!V@'verbose#ref@@@$@@@%@!Y;?!Z;U@@!i@*target_dir#ref @@@&@@@'@!l!!m!@@!|@%title #ref  @@@(@@@)@@@*@!$!$@@!@*intro_file%#ref 7!@@@+@@@,@@@-@!'ae!'a@@!@(with_toc=#ref@@@.@@@/@!*!*@@!@*with_indexP#ref@@@0@@@1@!-59!-5R@@!@+with_headerc#ref@@@2@@@3@!0!0@@!@,with_trailerv#ref@@@4@@@5@!3!3@@!@@@!ii!4@!@@-analyse_files-merge_options !,merge_option@@@@@@@@@,include_dirs !@@@@@@@@@&labelsV@@@@@@,sort_modulesb@@@@@@'no_stop)n@@@@@@$init5!,H(t_module@@@@@@@@@@!:+Odoc_global+source_file@@@@@@!GN(t_module@@@@@@@@@@@@@@@@@@@@@"i9"jA @@"y@,dump_modules@!@@@@!b~(t_module@@@@@@ @@@@@@@@"E^^"E^@@"@,load_modules@"@@@!(t_module@@@@@@@@@"I"I'@@"@@:)Odoc_info0R,^9!(Warnings0zdͦkUe$%Types0lm?ƈ.Type_immediacy0dV^25b)̓ԆSj#Str0QLceL`y--Stdlib__Uchar0*Ujmyc6]]W.Stdlib__String0I3UK# +Stdlib__Set0.z9FX+Stdlib__Seq05"g1<)b+Stdlib__Map0kZ,ҷ'V,Stdlib__List0"%BTAT;9d.Stdlib__Lexing01'jh,-k4,Stdlib__Lazy0C 4 "$p1tU/Stdlib__Hashtbl04$*uկdD.Stdlib__Format0{hXsHW#ȼ.Stdlib__Either0&]XF.Stdlib__Digest0aI]2t*x4%".Stdlib__Buffer0K ɦb+Z8)#KH"&Stdlib0yӶ~*%Shape0H[DTċwToe@Q)Primitive0յ_9|br$Path0L%SsN|#Ɣj)Parsetree0`ⰧkRE+Outcometree0gCtrS?S@@8@@)RK_module@@HTIT@@`C.RK_module_type@@QURU@@iD(RK_class@@ZV[V@@rE-RK_class_type@@cWdW@@{F(RK_value@@lXmX@@G'RK_type@@uYvY'@@H,RK_extension@@~Z(*Z(8@@I,RK_exception@@[9;[9I@@J,RK_attribute@@\JL\JZ@@K)RK_method@@][]][h@@L*RK_section$text A@@@@@^ik^i@@M+RK_recfield@@__@@N(RK_const@@``@@O@@A*Odoc_types(ref_kind@@@d@@@@S @)ocaml.docِ , The different kinds of element references. RwwRw@@@@@@@@@@@@@@@@U@@@@@V@@@@@W@@@@@X@@@@@Y @@@@@Z(,@@@@@[9=@@@@@ \JN}@@@@@||][_z@@@@}@yy^im^iw@@г{$text#^i{z@@0!  !!!!!@"8@@@A@@B@B@@@@@ig@@X,text_element A8@@@A @@B@B@@@@@;b< 3 P@@@@SA8@@@A@@B@B@@@@@GB  HB  @ 8 A text is a list of [text_element]. The order matters. TA  UA  @@@@@@@@@lB@A5@@@@@\_@@@@@b`@@@@@@Aг*Odoc_typeslSmS@@J@@(AAsbtb@@8@@#Raw-@@@e@@cc@+ Raw text. cc@@@@@@@P$Code.@@@f@@dd@֐< The string is source code. dd"@@@@@@@Q'CodePre/@@@g@@e#%e#8@񐠠 * The string is pre-formatted source code. e#9e#h@@@@@@@R(Verbatim02@@@h@@fikfi@ 1 String 'as is'. fifi@@@@@@@S$Bold1G@@@i@@gg@'5 Text in bold style. gg@@@@@@@T&Italic2b@@@j@@ h h@B1 Text in italic. hh@@@@@@@.U)Emphasize3}@@@k@@$i%i@]2 Emphasized text. 1i2i@@@@@@@IV&Center4@@@l@@?j@j-@x0 Centered text. Lj.MjC@@@@@@@dW$Left5@@@m@@ZkDF[kDT@1 Left alignment. gkDUhkDk@@@@@@@X%Right6@@@n@@ullnvll}@2 Right alignment. ll~ll@@@@@@@Y$List7'@@@o@@@q@@mm@ΐ) A list. mm@@@@@@@Z$Enum8G @@@r@@@t@@nn@5 An enumerated list. nn@@@@@@@['Newline9@@oo@8 To force a line break. oo@@@@@@@\%Block:?@@@u@@pp)@: Like html's block quote. p*pI@@@@@@@ ]%Title;@@@v|i@@@w@@@yi@@@z@@qJLqJq@I ) Style number, optional label, and text. rrrr@@@@@@@5^%Latex<@@@{@@+s,s@d5 A string for latex. 8s9s@@@@@@@P_$Link=@@@|@@@}@@KtLt@ ' A reference string and the link text. XtYt #@@@@@@@p`#Ref>@@@~3@@@@@@@@@@@@@@zu $ &{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+Superscript?@@@@@y  y  @ΐ/ Superscripts. y  y  "@@@@@@@b)Subscript@ @@@@@z # %z # 8@鐠- Subscripts. z # 9z # K@@@@@@@c+Module_listAb.@@@@@@@@{ L N{ L j@ 5 The table of the given modules with their abstract. | k r| k @@@@@@@d*Index_listB@@}  }  @ 7 The links to the various indexes (values, types, ...) }  }  @@@@@@@ e&CustomC`@@@_@@@@@~  ~  @?8 to extend \{foo syntax ~  ~  2@@@@@@@+f&TargetD@@@@@@@@& 3 5@^ > (target, code) : to specify code specific to a target format 2 3 Q3 3 @@@@@@@Jg@@Aw,text_element@@@@@@@@@@@ƠưAcBc@@гȠ&stringKc@@(@@@@ɠQdRd@@г&string[d@@8@@@@ae#'be#.@@г&stringke#2@@H@@@@qfimrfiu@@г&string{fiy@@X@@@@gg@@г$textg@@h@@@@hh@@г$texth@@x@@@@ii@@г$texti@@@@@@yyjj%@@г{$textj)|@@}@@@@|nnkDHkDL@@гp$textkDPq@@wr@@@@tqccllpllu@@гe$textllyf@@lg@@@@ifXXmm@@гZ$listmV@г^$textmm@@fѰ@@@kҰa@@@@c`RRnn@@гT$listnP@гX$text nn@@`@@@e[@@@@]ZLLoJ@@@@MJ<<pp!@@г>$text%p%?@@E@@@@@B?11+qJN,qJS@@г3#int5qJW6qJZ@@;@@г8&option?qJd@qJj@г=&stringHqJ]IqJc@@E&@@@J' @@гB$textSqJmC@@I0D@@@@FC55YsZs@@г7&stringcs8@@>@9@@@@;8**itjt@@г,&stringsttt@@4Q@@г1$text}t2@@8Z3@@@@52$$u $ (u $ +@@г&&stringu $ /u $ 5@@.k@@г+&optionu $ Au $ G@г0(ref_kindu $ 8u $ @@@8~@@@= @@г5&optionu $ O1@г9$textu $ Ju $ N@@A@@@F<@@@@>;--y  y  @@г/$texty  0@@61@@@@30""z # 'z # 0@@г$$textz # 4%@@+&@@@@(%{ L P{ L [@@г$list{ L f@г&string{ L _{ L e@@%˰@@@*̰ @@@@"}  @@@@~  ~  @@г&string~  ~  @@ @@г$text~   @@ @@@@   3 7 3 =@@г&string 3 A  3 G@@@@г&string) 3 J@@ @@@@@Aг*Odoc_types3b4b@@@@@(:B  ;B  @@8@@@Aڠ@@@@@@@@@@@@@@Aг $listNB  @г,text_elementVB  WB  @@4@@@5@@@W@A('see_refEBdE * /eE * 6@@8@@'See_urlF@@@@@sF N RtF N c@@i(See_fileG@@@@@G d fG d z@@j'See_docH@@@@@H { }H { @@k@@A'see_ref@@@ @@@@E * * @Ґ 2 The different forms of references in \@see tags. D  D  )@@@@@@@@@h@BB;F N Y@@гC&stringF N ]D@@J0@H}]8@@@Ad@@C@ C@@@@@,*@@@AR@@@@T@PPG d hG d p@@гR&stringG d tS@@YT@@@@V@RRH { H { @@гT&stringH { U@@[-V@@@@X@@AгT*Odoc_typesVE * 9E * K@@]8@@XV@0@8@AYc@+Text_syntaxICL  L  @ N@@@@#@@@$o@@@%@@AL  L  !@I ^ Raised when parsing string to build a {!Odoc_info.text} structure. [(line, char, string)] J  K  @@@@@@@5l@г"#int)L  *L  @@*0(''(((((@s@A@@г)#int5L  6L  @@1 @@г.&string?L  /@@50@@@@2/M@21@A(#seeJDKO J OLO J R@@8@@@A@@@(@@@)@@*@@@@\O J J]O J c@ ! The information in a \@see tag. iN # #jN # I@@@@@@@@@m@@AВг'see_refvO J UwO J \@@&0uttuuuuu@O}48@@@A;@@E@+E@'@@@@(%@@@A @@г.$textO J _/@@50@@@>1@@30@0@@A43@A(%paramKER  R  @@8@@@A@@@8@@@9@@:@@@@R  R  @㐠 ! Parameter name and description. Q e eQ e @@@@@@@@@n@@AВг&stringR  R  @@&0@O|48@@@A;@@F@;F@7@@@@(%@@@A @@г.$textR  R  @@6@@@?@@41@0@@A54@A(0raised_exceptionLFU  U  @@8@@@AS@@@HR@@@I@@J@@@@U  U  @2 ( Raised exception name and description.  T   T  @@@@@@@@@ o@@AВг&string U   U  @@&0        @P}48@@@A;@@G@KG@G@@@@(%@@@A @@г.$text (U   )U  @@6@@@?@@41@0 ) ( ( ) ) ) ) )@@A54@A($infoMG 7Z^c 8Z^g@@8@@&i_descN@@@@X@@@Z I[~ J[~@7 The description text.  V[~ W[~@@@@@@@ nq)i_authorsO@@@@]@@@_ g\ h\@ ' The list of authors in \@author tags.  t\ u\@@@@@@@ r)i_versionP@@@@b@@@d ] ]@ " The string in the \@version tag.  ] ]E@@@@@@@ s&i_seesQ@ 5Y@@@g@@@i ^FJ ^F\@ܐ9 The list of \@see tags.  ^F] ^F{@@@@@@@ t'i_sinceR@ 2 @@@l@@@n _| _|@ The string in the \@since tag.  _| _|@@@@@@@ u(i_beforeS@ q @@@@q?@@@r@@s@@@u ` `@ - the version number and text in \@before tag  ` `@@@@@@@ v,i_deprecatedT@ v]@@@x@@@z a a7@> / The description text of the \@deprecated tag.  a8 al@@@@@@@ *w(i_paramsU@ @@@}@@@ #bmq $bm@\ % The list of parameter descriptions.  0bm 1bm@@@@@@@ Hx3i_raised_exceptionsV@ ӠZ@@@@@@ Ac Bc@z The list of raised exceptions.  Nc Oc @@@@@@@ fy.i_return_valueW@ Р@@@@@@ _d  `d +@ + The description text of the return value.  ld , md \@@@@@@@ z(i_customX@  @@@@@@@@@@@ e]a e]@ & A text associated to a custom @-tag.  e] e]@@@@@@@ {@@A$info@@@@@@@ Z^^ f@֐ W Information in a special comment @before 3.12.0 \@before information was not present.  W Y[]@@@@@@@@@ p@ssi [~@@Ш@гv&option [~ [~@г{$text [~ [~@@0        @8@@@A@@H@H@W@@@@52@@%@A @@@ @@@I@[@||r \@@Ш@г$list \ \@г&string \ \@@'@@@( @@@I@`+@zzp ] @@Ш@г}&option ] ]@г&string ] ]@@C@@@D @@@I@eG@xxn ^FP@@Ш@г{$list ^FW ^F[@г#see #^FS $^FV@@_@@@` @@@I@jc@vvl -_|@@Ш@гy&option 6_| 7_|@г~&string ?_| @_|@@{@@@| @@@I@o@ttb I`@@Ш@гw$list R` S`@Вг|&string ^` _`@@@@г$text h` i`@@@@@@@@ m`@@@I@v@yyo ta(@@Ш@г|&option }a0 ~a6@г$text a+ a/@@°@@@ð @@@I@{@wwm bmy@@Ш@гz$list bm bm@г%param bm| bm@@ް@@@߰ @@@I@@uuk c@@Ш@гx$list c c@г}0raised_exception c c@@@@@ @@@I@@ssi d @@Ш@гv&option d $ d *@г{$text d  d #@@@@@ @@@I@@qq_ e]i@@Ш@гt$list e]| e]@Вгy&string e]m e]s@@5@@г~$text e]v e]z@@?@@@@@@@A e]l@@@I@E@@Aгv*Odoc_typesx Z^j Z^y@@O@@zw@0        @O@A{z@A((locationYH !i "i@@8@@(loc_impl@ (Location!t@@@ F@@@ H 7j# 8jA@ p9 implementation location  DjB Ej`@@@@@@@ \})loc_inter@ Ơ"!t@@@ K@@@ M Wkae Xka@ 4 interface location  dka eka@@@@@@@ |~@@A (location@@@ P@@@@ oi pl@ = Location of elements in implementation and interface files.  |h }h@@@@@@@@@ |@[[M j+@@Ш@г^&option j9 j?@гc(Locationc j. j8@@l0        @ic8@@@A@@I@ RI@ U@@@@63@@&@A @@@| @@@J@ I@roaaU kan@@Ш@гd&option ka| ka@гi(Locationk kaq ka{@@r(@@@w) @@z@J@ N,@ol@Aг^*Odoc_types` i i@@g6@@b_@0        @6@Acb@)dummy_loc o o@г (location o o@@ @@@ o0        @O@A@@@ o @ %3 A dummy location.  n n@@@@@@@ @@$NameI r r @@БA(!tJ t  t!@@8@@@A }@@@ q@@@@ t t*@@@@ 6@@@Aг &string (t$ @@0 & % % & & & & &@CVA8@@@A"@@K@ rK@ p@@@@@@@@A @@@@0 2 1 1 2 2 2 2 2@ @A@&simple ?wT^ @wTd@б@г5!t JwTg KwTh@@ @@@ y0 L K K L L L L L@&@:@A@@гD!t YwTl ZwTm@@ @@@ z@@@@@ {@@@ dwTZ @ < Access to the simple name.  pv,2 qv,S@@@@@@@ A@@%&concat |z }z@б@гr!t z z@@ @@@ |0        @>S,@A@@б@г!t z z@@ @@@ }@@г!t z z@@ @@@ ~@@@@@ !@@@'@@ $* @@@ z@ 될 ; [concat t1 t2] returns the concatenation of [t1] and [t2]. you yo@@@@@@@ B@@7%depth ~[e ~[j@б@г!t ~[m ~[n@@ @@@ 0        @Pe,@A@@г #int ~[r ~[u@@ @@@ @@@@@ @@@ ~[a @ ( y Return the depth of the name, i.e. the number of levels to the root. Example : [depth "Toto.Tutu.name"] = [3].  | }%Z@@@@@@@C@@%,get_relative @б@г!t@@ @@@ 0@>S,@A@@б@г!t$%@@ @@@ @@г!t12@@ @@@ @@@@@ !@@@'@@ $* @@@?@ w E Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 or else n2. Kw}Lw@@@@@@@cD@@70get_relative_optWJTXJd@б@гM!tbJgcJh@@ @@@ 0dccddddd@Pe,@A@@б@г^!tsJltJm@@ @@@ @@гk!tJqJr@@ @@@ @@@@@ !@@@'@@ $* @@@JP@ Ɛ P Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 and n1<>"" or else n2. I@@@@@@@E@@7&father@б@г!t@@ @@@ 0@Pe,@A@@г!t@@ @@@ @@@@@ @@@ @  B Return the name of the 'father' (like [dirname] for a file name).u{u@@@@@@@F@@%@A@}@i0@@@[@G @@0@4I"@A0@@As @@ ' " Representation of element names. qq@@@@@@@r@@)Parameter#K >E >N@@Б!+ {1 Types} W[Wk@@@@@@0@@ A@@w@c<@(@@g@@@3FG@AA(+simple_nameL:;@@8@@'sn_name@@@@ GH@@_J'sn_type@%Types)type_expr@@@WX"@@oK'sn_textA٠ @@@@@@h#-i#L@@L@@A.Odoc_parameter+simple_name@@@X@@@@uvMV@ + Representation of a simple parameter name mqm@@@@@@@@@H@HHC@@Ш@гK&string@@S0@xa8@@@Ah@@M@ZM@ @@@@+(@@@A  @@`@N@  @\@XXO@@Ш@г[%Types[ @@d@@g@N@ @_@[[#5#<@AШ@г_&option#D#J@гd$text#?#C@@l9@@@q: @@t@N@=@k@@Aгg.Odoc_parameterg@@pG@@if@ih@A(*param_infoM@@8@@+Simple_name@@@@@.6.P@@N%Tuple#@@@@@@)type_expr@@@@@QWQ@@(O@@A*param_info@@@@@@@ @S Representation of parameter names. We need it to represent parameter names in tuples. The value [Tuple ([], t)] stands for an anonymous parameter.'X\(@@@@@@@@@?M@@@9/.A@@гA+simple_name8.EB@@H065566666@Y8@@@A`@@N@N@~@@@@*(@@@A N@@@@P@LLIQYJQ^@@гN$listSQmTQq@гS*param_info\Qb]Ql@@[%@@@`& @@гX%TypesZhQtX@@`0Y@@@@[@@AгW.Odoc_parameterYrs+@@`;@@[Y@0rqqrrrrr@;@A\f@A()parameterN@@8@@@A@@@@@@@@ " A parameter is just a param_info.@@@@@@@@@P@@Aг*param_info@@0@i(8@@@A/@@O@O@@@@@$!@@@A #@@%"@0@ @A&%@/ {1 Functions} @@@@@@0@D>@A-complete_nameEMEZ@б@гS)parameterE]Ef@@ @@@@@г=&stringEjEp@@ @@@'@@@@@*@@@EI @# O Access to the name as a string. For tuples, parentheses and commas are added. D@@@@@@@Q@@=#typ@б@г)parameter@@ @@@0@VQ,@A@@г)type_expr%Types !@@ @@@@@@@@@@@+ @c> Access to the complete type. 7rv8r@@@@@@@OR@@(%names C.6D.;@б@гΠ)parameterN.>O.G@@ @@@0POOPPPPP@AV,@A@@г$list].R^.V@гĠ&stringg.Kh.Q@@ @@@@@@@@@ @@@$@@!'@@@w.2@ ^ Access to the list of names ; only one for a simple parameter, or a list for a tuple. -@@@@@@@S@)@4,desc_by_name!@б@г)parameter@@ @@@0@Mb,@A@@б@г&string@@ @@@@@г,&option@г$text @@ @@@(@@@@@@- @@@"@@0%@@@6@@39@@@@ z Access to the description of a specific name. @raise Not_found if no description is associated to the given name. X\@@@@@@@T@,@F,type_by_name"@б@гx)parameter@@ @@@0@_t,@A@@б@гf&string  @@ @@@@@г)type_expr%Types@@ @@@!@@@@@$@@@*@@'- @@@'@_ l Access to the type of a specific name. @raise Not_found if no type is associated to the given name. 34F@@@@@@@KU@@:@A@XRA@A@{V@B@@r@^"@@0DCCDDDDD@K`$@A0GFFGGGGG@,@ALQSM@@ R Representation and manipulation of method / function / class / module parameters.YZ=@@@@@@@\>>@@)ExtensionkOhi@@БA(,private_flag$Pv!*w!6@@8@@'Private%@@W]Wd@@X&Public&@@WeWm@@Y@@A.Odoc_extension,private_flag@@@@@@@!% @@A@W@@@@@@Wg@@@@@@Aг.Odoc_extension!9!T@@!0@@yA@A@=7A@@@J@6@@@uhVR8@@@AY@@Q@Q@@@@@7@@@5@A! @@8@@0@@A9E@A(/extension_alias:Q@@8@@'xa_name=@!t@@@])3)E@ , The complete name of the target extension. )F)w@@@@@@@ ]%xa_xt>Av7t_extension_constructor;Q@@@`@@@bxx@@ & The target extension, if we found it.xx@@@@@@@,^@@A/extension_alias@@@g@@@@ @X j Used when the extension is a rebind of another extension, when we have [extension Xt = Target_xt].,os-@@@@@@@@@DZ@TTM4):@@Ш@гW$NameY>)=?)C@@`0=<<=====@q8@@@Ax@@R@R@A@@@@/,@@K8@@@AR@@R@R@B@@@@VW 1 :@@@@n[0t_type_extension < v@@@@@@0=<<=====@@A#@6extension_constructorsjJ"V"^K"V"t@б@г0t_type_extensionU"V"wV"V"@@ @@@20WVVWWWWW@e\@A  @@г$listf"V"g"V"@гj7t_extension_constructorp"V"q"V"@@ @@@3@@@@@@5  @@@&@@6#)@@@"V"Z@ & Access to the extensions in a group. "&"*"&"U@@@@@@@m@)@6@ A@A@B@?B@T@@0@AV@A 0@@A""@@ؐ 0 Representation and manipulation of extensions. @@@@@@@@@)ExceptionzR""""@@БA(/exception_aliaslS#s#|#s#@@8@@'ea_namen@ !t@@@9####@ , The complete name of the target exception. ###$@@@@@@@q%ea_exoAg+t_exceptionmS@@@<@@@>$$$$6@1 & The target exception, if we found it.$$7$$b@@@@@@@r@@A.Odoc_exception/exception_alias@@@a@@@@#s#w$c$l@K j Used when the exception is a rebind of another exception, when we have [exception Ex = Target_ex]."# #A#r@@@@@@@@@7o@VVO'##@@Ш@гY$Name[1##2##@@b00//00000@@A@icA@=B@HB@@@Yn8@@@A@@T@T@7@@@@;8@@+Y8@@@A`@@T@T@8@@@@U$n$rV&o&x@@@@mp@A('@@@U@:(@ss_$$`$$@AШ@гw&optioni$$.j$$4@г|+t_exceptionr$$"s$$-@@A@@@B @@@U@?E@~@Aгp.Odoc_exceptionp#s##s#@@yO@@ro($n$v$n$@@8@@'ex_names@ !t@@@b$$$$@@s'ex_infotAq@@@e@@@g$$$$@ 7 Information found in the optional associated comment. $$$%.@@@@@@@t'ex_argsu@0constructor_args@@@j%/%9%/%^@@u&ex_retv@D)type_expr@@@m@@@o%_%i%_%@ , The optional return type of the exception. %_%%_%@@@@@@@v(ex_aliasw@d+@@@r@@@t%%%%@, , [None] when the exception is not a rebind. %%%&@@@@@@@w&ex_locxA @@@w &&' &&B@@$x'ex_codeyA{@@@z@@@|&C&M&C&n@@5y@@A+t_exception@@@@@@@@@@@,$$@@Ш@г$Name6$$7$$@@@@@U@c@@?$$@$$@AШ@г&optionI$$J$$@г$infoR$$S$$@@!@@@" @@@U@h%@\%/%@@@Ш@г)Odoc_typef%/%Cg%/%]@@5@@@U@k8@@o%_%o@@Ш@г&optionx%_%y%_%@г%Types%_%r%_%@@Q@@@R @@@U@pU@%%@@Ш@г&option%%%%@г/exception_alias%%%%@@m@@@n @@@U@uq@&&/&&5@AШ@г(location&&8&&@@@@@@U@x@@&C&U&C&\@AШ@г&option&C&f&C&l@г&string&C&_&C&e@@@@@ @@@U@}@@@Aг.Odoc_exception$n$$n$@@@@@@0@@A@@A@\B@@0@_#@A0@@A""&y&~@@$ 0 Representation and manipulation of exceptions. """"@@@@@@@""@@$TypeT&&&&@@БA(,private_flag{U&&&&@@8@@'Private|@@&& &'@@7|&Public}@@(&')&' @@@}@@A,private_flag@@@,@@@@3&& @@A@J{@@@@@@?&'@@@@@@Aг)Odoc_typeI&&J&&@@0HGGHHHHH@@A@aB@@gZjzD8@@@AK@@V@.V@+@@@@+@@@)@A@@,@@0[ZZ[[[[[@@A-7@A(,record_field~Vi'<'Ej'<'Q@@8@@'rf_name@@@@>v'w'w'w'@4 Name of the field. 'w''w'@@@@@@@*rf_mutable@`@@@A''''@Ȑ4 [true] if mutable. ''''@@@@@@@'rf_type@ U)type_expr@@@D'''( @㐠4 Type of the field. '( '(%@@@@@@@'rf_textA9@@@G@@@I(&(0(&(O@ 0 Optional description in the associated comment.(&(P(&(@@@@@@@@@A-,record_field@@@L@@@@'<'@((@ % Description of a record type field. ' '' ';@@@@@@@@@~@'w'@@Ш@г&string'w''w'@@0@8@@@A@@W@NW@=@@@@,)@@@A @@@X@?@''@@Ш@г$bool''''@@@@@X@B @z$''@@Ш@г%Types.''/'( @@0@@@X@E3@yy7(&(88(&(?@AШ@г}&optionA(&(GB(&(M@г$infoJ(&(BK(&(F@@L@@@M @@@X@JP@@Aгx)Odoc_typezX'<'TY'<'j@@Z@@|y@0XWWXXXXX@Z@A}|@A(0constructor_argsWf((g((@@8@@+Cstr_record @@@p@@@r@@z)){))(@@*Cstr_tuple 9)type_expr@@@s@@@u@@)))/)))S@@@@A0constructor_args@@@v@@@@(( @Ґ , Description of a variant type constructor. ((((@@@@@@@@@@@@))))@@гB$list))$>@гF,record_field))))#@@N0@`Zc8@@@Aj@@X@xX@o@@@@42@@%@A @@@^ T@@@@V@RR)))1)));@@гT$list)))ON@гX%TypesZ)))?)))N@@a&@@@f'Z@@@@\@@AгX)Odoc_typeZ((((@@a2@@\Z@0@2@A]g@A(3variant_constructorX )U)^ )U)q@@8@@'vc_name@l@@@  )) ))@F: Name of the constructor.  )) ))@@@@@@@2'vc_args@@@@& ))' )*@@>&vc_ret@ )type_expr@@@@@@9** :**,@@Q'vc_textA@@@@@@J*-*7K*-*V@ 1 Optional description in the associated comment. W*-*WX*-*@@@@@@@o@@A3variant_constructor@@@@@@@b )U)Yc**@@@@z@bb]j ))@@Ш@гe&strings ))t ))@@m0rqqrrrrr@|8@@@A@@Y@Y@@@@@@@@@A @@{@Z@@wtffa ))@@Ш@гi0constructor_args )) ))@@q@@t@Z@ @p@ll`**@@Ш@гo&option**$***@гt%Typesv****#@@}9@@@: @@@Z@=@z@vv*-*?*-*F@AШ@гz&option*-*N*-*T@г$info*-*I*-*M@@V@@@W @@@Z@Z@@Aгu)Odoc_typew )U)t )U)@@~d@@y@@0@d@Azy@A()type_kindY****@@8@@-Type_abstract@@***+@( ) Type is abstract, for example [type t]. *+*+0@@@@@@@,Type_variant@@@@@@@@+1+7+1+a@H. constructors +b+u+b+@@@@@@@4+Type_record@@@@@@@@/++0++@h( fields <++=++@@@@@@@T)Type_open@@E++F++@~. Type is open R++S++@@@@@@@j@@A)type_kind@@@@@@@]**@> The various kinds of a type. i**j**@@@@@@@@@@@@@@ssv+1+9w+1+E@@гu$list+1+]q@гy3variant_constructor+1+I+1+\@@0@8@@@A@@Z@Z@@@@@97@@*@A @@@ @@@@xx++++@@гz$list++v@г~,record_field++++@@%@@@&@@@@rr++p@@@@sp@Aгb)Odoc_typed****@@k7@@fd@0@7@Ag~@A(,object_fieldZ+,+,@@8@@'of_name@9@@@,-,3,-,E@@'of_type@ )type_expr@@@,F,L,F,g@@'of_textAj4$info@@@@@@,h,n,h,@4; optional user description ,h, ,h,@@@@@@@ @@A `,object_field@@@@@@@++,,@@@@+@FFA,-,:@@Ш@гI&string$,-,=%,-,C@@Q0#""#####@HB`8@@@Ag@@[@ [@@@@@@@@@A @@_@\@@[@WWP8,F,S@@Ш@гZ%Types\B,F,VC,F,e@@c@@f@\@!@`@\\K,h,vL,h,}@AШ@г`&optionU,h,V,h,@гe*Odoc_typesg_,h,`,h,@@n;@@@s< @@v@\@?@kh@AгZ)Odoc_type\m+,n+,(@@cI@@^@@0mllmmmmm@I@A_^@A(-type_manifest[{!,,|!,,@@8@@%Other7)type_expr@@@&@@",,",-@Ő . Type manifest directly taken from Typedtree. ",-",-H@@@@@@@+Object_type>@@@'@@@)@@#-I-O#-I-q@@@@A -type_manifest@@@*@@@@!,, @@@@@;;",,",-@@г=%Types?",-=@@E0@V8@@@A]@@\@,\@%@@@@@@@@A I@@@@KH::#-I-Q#-I-\@@г<$list#-I-m8@г@,object_field#-I-`#-I-l@@H$@@@M%C@@@@E@@AгA)Odoc_typeC!,,!,,@@J0@@E@@0@0@AFP@A(&t_type\&--&--@@8@@'ty_name@!t@@@H(--(--@N< Complete name of the type. "(--#(-.@@@@@@@:'ty_infoA@@@K@@@M3)..4)../@l 7 Information found in the optional associated comment. @)..0A)..l@@@@@@@X-ty_parameters@)type_expr@@@P+@@@Q0@@@R@@S@@@U`*.m.wa*.m.@ 3 type parameters: (type, covariant, contravariant) m+..n+..@@@@@@@'ty_kind@@@@Xy,./z,./@, Type kind. ,./,./+@@@@@@@*ty_private@@@@[-/,/6-/,/P@ː9 Private or public type. -/,/Q-/,/o@@@@@@@+ty_manifest@!6@@@^@@@`./p/z./p/@@&ty_locA@@@c//////@@'ty_codeA>+@@@f@@@h0//0//@@@@A %&t_type@@@m@@@@&--1//@; Representation of a type. %-s-w%-s-@@@@@@@@@@ߠ߰(--@@Ш@г⠡$Name(--(--@@0@08@@@A@@]@o]@G@@@@-*@@@A @@@^@I@ ).. )..@AШ@г栐&option)..')..-@г렐$info)..")..&@@'@@@( @@@^@N+@(*.m.@@Ш@г䠐$list1*.m.2*.m.@Вг頡%Types>*.m.?*.m.@@G@@г$boolH*.m.I*.m.@@Q@@г$boolR*.m.S*.m.@@[@@@ \@@@]W*.m.&@@@^@Va@^,./ @@Ш@г)type_kindg,./h,./@@p@@@^@Ys@p-/,/@@@Ш@г栐,private_flagy-/,/Cz-/,/O@@@@@^@\@ܠܰ./p/@@Ш@гߠ&option./p/./p/@г䠐-type_manifest./p/./p/@@@@@ @@@^@a@@//////@AШ@г렐(location//////@@@@@^@d@@0//0//@AШ@г&option0//0//@г&string0//0//@@Ͱ@@@ΰ @@@^@i@@@Aг)Odoc_type&--&--@@۰@@@0@@A@@A@vpA@{uA@A@A@A@nhA@A@@0@@A0@@A&&3/0@@% * Representation and manipulation of types.&&&&@@@@@@@&&@@%Value] 60X0_ 60X0d@@БA('t_value^ 900 900@@8@@(val_name@ !t@@@ %;00 &;00@^= Complete name of the value.  2;00 3;01@@@@@@@ J(val_infoA @@@ @@@  C<11 D<110@| 7 Information found in the optional associated comment.  P<111 Q<11m@@@@@@@ h(val_type@ )type_expr@@@ ^=1n1x _=1n1@4 Type of the value.  k=1n1 l=1n1@@@@@@@ -val_recursive@ H@@@ w>11 x>11@ # [true] if the value is recursive.  >11 >11@@@@@@@ .val_parametersA '#)parameter@@@@@@ ?12 ?12;@А9 The parameters, if any.  ?12< ?12Z@@@@@@@ (val_codeA & @@@@@@ @2[2e @2[2@ D The code of the value, if we had the only the implementation file.  @2[2 @2[2@@@@@@@ 'val_locA@@@ A22 A22@@ @@A*Odoc_value't_value@@@s@@@@ 900 B23@< Representation of a value.  80m0q 80m0@@@@@@@@@!@ҠҰ ;00@@Ш@гՠ$Nameװ ;00 ;00@@0        @@A@A@A@ A@*$A@D>A@A@ A@@#!'8@@@A@@_@u_@@@@@@=@@0@A! @@@`@!@!!<11!"<11 @AШ@г점&option!+<11(!,<11.@г$info!4<11#!5<11'@@:@@@; @@@`@ >@!>=1n1@@Ш@гꠡ%Types!H=1n1!I=1n1@@N@@@`@Q@ߠ߰!Q>11@@Ш@г⠐$bool!Z>11![>11@@`@@@`@c@ؠذ!c?12 !d?12@AШ@гܠ$list!m?125!n?129@гᠡ.Odoc_parameter!w?12!x?124@@}@@@~ @@@`@@ְ֠!@2[2m!@2[2u@AШ@гڠ&option!@2[2!@2[2@гߠ&string!@2[2x!@2[2~@@@@@ @@@`@@ՠհ!A22!A22@AШ@г٠(location!A22!A22@@@@@`@ @@@Aгܠ*Odoc_valueܰ!900!900@@@@@0!!!!!!!!@@A@A(+t_attribute_!E343=!E343H@@8@@)att_value@@@@!G3n3x!G3n3@ = an attribute has almost all the same information as a value !G3n3!G3n3@@@@@@@!+att_mutable@!@@@!H33!H33@ " % [true] if the attribute is mutable. !H33!H34@@@@@@@"+att_virtual@!@@@"I44&"I44:@ ; % [true] if the attribute is virtual. "I44<"I44f@@@@@@@"'@@AA+t_attribute@@@@@@@"E3438"J4g4p@ S & Representation of a class attribute. "'D33"(D333@@@@@@@@@"?@dd_"/G3n3@@Ш@гg't_value"8G3n3"9G3n3@@o0"7"6"6"7"7"7"7"7@?+%~8@@@A@@`@`@@@@@,)@@@A @@}@a@@yvhhc"LH33@@Ш@гk$bool"UH33"VH33@@s@@v@a@ @roaa\"^I441@@Ш@гd$bool"gI444"hI448@@l/@@o@a@2@kh@AгZ*Odoc_value\"tE343K"uE343a@@c<@@^[@0"t"s"s"t"t"t"t"t@<@A_^@A((t_method`"M44"M44@@8@@)met_value@{@@@"O44"O44@ Ȑ 9 a method has almost all the same information as a value "O44"O451@@@@@@@"+met_private@"y@@@"P525<"P525P@ ᐠ ! [true] if the method is private."P525R"P525x@@@@@@@"+met_virtual@"@@@""Q5y5"Q5y5@ " [true] if the method is virtual. "Q5y5"Q5y5@@@@@@@"@@A(t_method@@@'@@@@"M44"R55@! # Representation of a class method. "L4r4v"L4r4@@@@@@@@@"@dd_"O44@@Ш@гg't_value"O44"O44@@o0""""""""@=7~8@@@A@@a@)a@@@@@,)@@@A @@}@b@@yvhhc# P525G@@Ш@гk$bool#P525J#P525N@@s@@v@b@  @roaa\#Q5y5@@Ш@гd$bool#&Q5y5#'Q5y5@@l/@@o@b@#2@kh@AгZ*Odoc_value\#3M44#4M44@@c<@@^[@0#3#2#2#3#3#3#3#3@<@A_^@+is_function#@U6 6(#AU6 63@б@г5't_value#KU6 66#LU6 6=@@ @@@C0#M#L#L#M#M#M#M#M@W@A@@г#)$bool#ZU6 6A#[U6 6E@@ @@@D@@@@@E@@@#eU6 6$ @! J Return [true] if the value is a function, i.e. it has a functional type. #qT55#rT56@@@@@@@#@@%S,@A@@б@г"&string#X66#X66@@ @@@G@@г#&option#X66#X66@г"$text#X66#X66@@ @@@H(@@@@@@J- @@@"@@K0%@@@6@@L39@@@#X66@! B Access to the description associated to the given parameter name.#W6G6K#W6G6@@@@@@@#@,@F@A@A@[UA@x@d@@0########@Qf@A 0########@@A#70g0i#Y66@@" P Representation and manipulation of values, class attributes and class methods. #500#500W@@@@@@@#60X0X@@%Classa#\7$7+#\7$70@@Б$+ {1 Types} $^797=$^797M@@@@@@0$$$$$$$$@@A@[UA@A@@_@@</$6@AA(-class_elementb$*a77$+a77@@8@@/Class_attribute5+t_attribute@@@m@@$;b77$<b77@@$S,Class_methodE(t_method@@@n@@$Kc77$Lc78 @@$c-Class_comment"@@@o@@$Yd8 8$Zd8 8)@@$q@@A*Odoc_class-class_element@@@@@@@$fa77 @" + To keep the order of elements in a class. $r`7O7S$s`7O7@@@@@@@@@$@HH?$zb77@@гI%ValueK$b77I@@Q0$$$$$$$$@ta8@@@Ah@@c@c@M@@@@*(@@@A T@@@@V@RR$c77$c77@@гT%ValueV$c77T@@\U@@@@W@SS$d8 8$d8 8!@@гU$text$d8 8%V@@\+W@@@@Y@@AгU*Odoc_classU$a77$a77@@^6@@WU@Wc@A(#cctc$g8n8w$g8n8z@@8@@"Cl't_classc@@@@@$h88$h88@@$&Cltypeᐠ,t_class_typec@@@$)type_expr@@@@@@@@$i88$i88@#, ! Class type and type parameters. %i88%i89@@@@@@@%@@A#cct@@@@@@@% g8n8r@#C 9 Used when we can reference a t_class or a t_class_type. %f8+8/%f8+8m@@@@@@@@@%/@QQH%h88@@гR't_class%(h88Q@@Y0%&%%%%%&%&%&%&%&@!r8@@@Ay@@d@vd@@@@@20@@#/inherited_classc8@@@A @@d@wd@@@@@%Gk99%Hp:4:=@@@@%_+class_applyc8@@@A @@d@xd@@@@@%Ur:?:C%Vx;;@@@@%m,class_constrc8@@@A @@d@yd@@@@@%cz;;%d=J=S@@@@%{*class_kindc8@@@A @@d@zd@@@@@%q=U=Y%r??@@@@%8@@@A@@d@{d@@@@@%}@\@`%~BB@#< Representation of a class. %@6@:%@6@[@@@@@@@@@%0class_type_aliasc8@@@A @@d@|d@@@@@%BB%DHDQ@@@@%/class_type_kindc8@@@A @@d@}d@@@@@%DSDW%DD@@@@%8@@@A@@d@~d@@@@@%EWE[%G{G@#될 ! Representation of a class type. %E,E0%E,EV@@@@@@@@@%@A@@@@@%i88%i88@@г렐,t_class_type%i88%i88@@@@г$list%i88@г򠡐%Types%i88%i88@@@@@@@@@@Aг堡*Odoc_class%g8n8}%g8n8@@ɰ@@(%k99 %k99@@8@@'ic_name@!t@@@&m9C9M&m9C9_@$? ' Complete name of the inherited class. &m9C9`&m9C9@@@@@@@&+à(ic_classA%_@@@@@@&$n99&%n99@$] ) The associated t_class or t_class_type. &1n99&2n99@@@@@@@&IĠ'ic_text@%$@@@@@@&Bo99&Co9:@${ & The inheritance description, if any. &Oo9:&Po9:3@@@@@@@&g@@A/inherited_class@@@@@@@@@@@__X&^m9C9T@@Ш@гb$Named&hm9C9W&im9C9]@@kA@@n@e@D@heWW&qn99&rn99@AШ@г[&option&{n99&|n99@г`#cct&n99&n99@@h]@@@m^ @@p@e@a@gdVVL&o99@@Ш@гY&option&o99&o9:@г^$text&o99&o99@@fy@@@kz @@n@e@}@eb@AгT*Odoc_classV&k99&k996@@]@@k@(ii&r:?:G&r:?:R@@8@@)capp_name@!t@@@ư&t:x:&t:x:@$ ) The complete name of the applied class. &t:x:&t:x:@@@@@@@&Ơ*capp_classA&S @@@@@@˰&u::&u::@% ( The associated t_class if we found it. &u::&u:;#@@@@@@@'Ǡ+capp_params@&)type_expr@@@@@@а'v;$;.'v;$;Q@%; 2 The type of expressions the class is applied to. 'v;$;R'v;$;@@@@@@@''Ƞ0capp_params_code@&&~@@@@@@հ' w;;'!w;;@%Y The code of these expressions. '-w;;'.w;;@@@@@@@'E@@A+class_apply@@@@@@@@@@@x'<t:x:@@Ш@г$Name'Ft:x:'Gt:x:@@@@@e@"@ww'Ou::'Pu::@AШ@г{&option'Yu::'Zu::@г't_class'bu::'cu::@@;@@@< @@@e@?@vvj'lv;$;9@@Ш@гy$list'uv;$;L'vv;$;P@г~%Types'v;$;<'v;$;K@@X@@@Y @@@e@\@ssi'w;;@@Ш@гv$list'w;;'w;;@г{&string'w;;'w;;@@t@@@u @@@e@x@@Aгq*Odoc_classs'r:?:U'r:?:k@@z@@X@(VV'z;;'z;;@@8@@(cco_name@!t@@@۰'|@% ) The complete name of the applied class. '|@@@@@@@(͠+Class_apply퐠^@@@@@(>>(>>;@&㐠 < Application/alias of a class, used in implementation only. (><>D(><>@@@@@@@(Π,Class_constrk@@@@@(>>(>>@&  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] (>>(??@@@@@@@(Ϡ0Class_constraintx@@@H@@@@@(??t@' ' A class definition with a constraint. (@@(@@4@@@@@@@) @@A*class_kind@@@@@@@@@@@q)==@@г$list) ==) ==@г/inherited_class)==)==@@@@@ @@г$list)==@г-class_element)%==)&==@@@@@@@@@)->>!).>>,@@г+class_apply)7>>0@@@@@@)=>>)>>>@@г,class_constr)G>>@@@@@@tt)M??)N??@@гv*class_kind)W??)X??@@~0@@г{/class_type_kind)a??@@9@@@@}@Aгo*Odoc_classq)k=U=j)l=U=@@xD@@@()r@\@d)s@\@k@@8@@'cl_name@|!t@@@)@@)@@@'= Complete name of the class. )@@)@@@@@@@@@)Ѡ'cl_infoA) i@@@@@@)@@)@@@'ؐ 7 Information found in the optional associated comment. )@@)@A3@@@@@@@)Ҡ'cl_type@e*class_type@@@)A4A>)A4AZ@'󐠠4 Type of the class. )A4A[)A4At@@@@@@@)Ӡ2cl_type_parameters@)j)type_expr@@@@@@)AuA)AuA@(2 Type parameters. )AuA)AuA@@@@@@@)Ԡ*cl_virtual@)@@@)AA)AA@(, # [true] when the class is virtual. *AA*AB @@@@@@@*ՠ'cl_kindA@@@ * B B* B B2@(E? The way the class is defined. *B B3*B BW@@@@@@@*1֠-cl_parametersA)#)parameter@@@.@@@0*,BXBb*-BXB@(e> The parameters of the class. *9BXB*:BXB@@@@@@@*Qנ&cl_locA&@@@3*EBB*FBB@@*]@@A't_class@@@8@@@@@@@ڠڰ*T@@@@Ш@гݠ$Name߰*^@@*_@@@@7@@@e@:@ҠҰ*g@@*h@@@AШ@г֠&option*q@@*r@@@г۠$info*z@@*{@@@@S@@@T @@@e@W@ߠѠѰ*A4AE@@Ш@гԠ%Typesְ*A4AH*A4AX@@g@@@e@j@נɠɰ*AuA@@Ш@г̠$list*AuA*AuA@гѠ%TypesӰ*AuA*AuA@@@@@ @@@e@@ԠƠư*AA@@Ш@гɠ$bool*AA*AA@@@@@e@@͠*B B*B B#@AШ@гà*class_kind*B B&*B B0@@@@@e@ @Ǡ*BXBj*BXBw@AШ@г$list*BXB*BXB@г )Parameterİ*BXBz*BXB@@ư@@@ǰ @@@e@1@Š*BB*BB@AШ@г(location+BB+BB@@ڰ@@@e@4@@@Aг*Odoc_class+@\@n+@\@@@@@(+BB+BC@@8@@(cta_name@!t@@@9+$C-C7+%C-CJ@)] ) Complete name of the target class type. +1C-CK+2C-Cy@@@@@@@+I٠)cta_classA*}@@@<@@@>+BCzC+CCzC@){ 4 The target t_class or t_class_type, if we found it.+OCzC+PCzC@@@@@@@+gڠ3cta_type_parameters@* )type_expr@@@A@@@C+bCC+cCD@) + The type parameters. FIXME : use strings? +oCD+pCDG@@@@@@@+@@A0class_type_alias@@@H@@@@@@@@aaZ+~C-C?@@Ш@гd$Namef+C-CB+C-CH@@ma@@p@e@:d@jgYY+CzC+CzC@AШ@г]&option+CzC+CzC@гb#cct+CzC+CzC@@j}@@@o~ @@r@e@?@ifXXL+CC@@Ш@г[$list+CD+CD@г`%Typesb+CD+CD@@i@@@n @@q@e@D@fc@AгU*Odoc_classW+BC+BC @@^@@;@(99+DSD[+DSDj@@8@@/Class_signature+|@@@I@@@K+@@@L@@@N@@+DD+DD@@, ܠ*Class_types@@@O@@,DD\@*: / A class type eventually applied to type args. ,DD,DE*@@@@@@@,&@@A/class_type_kind@@@P@@@@s@@@p@??),DD@@г@$list,&DD,'DD@гE/inherited_class,/DD,0DD@@M@@@R  @@гJ$list,:DDF@гN-class_element,BDD,CDD@@V@@@[Q@@@@S@OO,JDD,KDD@@гQ0class_type_alias,TDD@@X,@@@@US@AгE*Odoc_classG,^DSDm,_DSD@@N7@@@(,eEWE_,fEWEk@@8@@(clt_name@o!t@@@Q,tEE,uEE@*< Complete name of the type. ,EE,EE@@@@@@@,ޠ(clt_infoA,#\@@@T@@@V,EE,EE@*ː 7 Information found in the optional associated comment. ,EE,EF9@@@@@@@,ߠ(clt_type@X*class_type@@@Y,F:FD,F:Fa@@,3clt_type_parameters@,Pj)type_expr@@@\@@@^,FbFl,FbF@*2 Type parameters. ,FbF,FbF@@@@@@@,+clt_virtual@,@@@a,FF,FF@+ % [true] if the class type is virtual ,FF,FF@@@@@@@,(clt_kindAU@@@d,FG,FG)@++ $ The way the class type is defined. ,FG*-FGS@@@@@@@-'clt_locA @@@g- GTG^- GTGz@@-#@@A,t_class_type@@@l@@@@da@@T@-EE@@Ш@г$Name-$EE-%EE@@@@@e@R@--EE-.EE@AШ@г&option-7EE-8EE@г$info-@EE-AEE@@@@@ @@@e@W@-JF:FL@@Ш@г%Types-TF:FO-UF:F_@@-@@@e@Z0@@-]FbF@@Ш@г$list-fFbF-gFbF@г%Types-pFbF-qFbF@@I@@@J @@@e@_M@-zFF@@Ш@г$bool-FF-FF@@\@@@e@b_@-FG -FG@AШ@г/class_type_kind-FG-FG'@@o@@@e@er@-GTGf-GTGm@AШ@г(location-GTGp-GTGx@@@@@e@h@@@Aг*Odoc_class-EWEn-EWE@@@@@0--------@@A@-͐/ {1 Functions} -GG-GG@@@@@@0--------@m9G `na|"  @A .class_elements-GG-GG@б%transг-$bool-GG-GG@@ @@@s$@@б@г !'t_class-GG-GG@@ @@@t3@@г-$list.GH.GH@г 堐-class_element.GH.GH@@ @@@uJ@@@@@@wO @@@"@@xR%@@?-8@@@y @@zZ.%GG @@ @.(GG#@,` $ Access to the elements of a class. .4GG.5GG@@@@@@@.L@2@n0class_attributes.@HHHP.AHHH`@б%transг.$bool.MHHHj.NHHHn@@ @@@{0.O.N.N.O.O.O.O.O@|.@A@@б@г 't_class.^HHHr._HHHy@@ @@@|@@г.$list.kHHH.lHHH@гo+t_attribute%Value.xHHH}.yHHH@@ @@@}+@@@@@@0 @@@%@@3(@@Di<@@@ @@:.HHHc"@@ @.HHHL%@,Ȑ ) Access to the list of class attributes. .HH.HHG@@@@@@@.@4@NI^I/?I^I@@ @@@+@@@@@@0 @@@%@@3(@@D/<@@@ @@:/SI^Iv"@@ @/VI^Ib%@- # Access to the methods of a class. /bI1I5/cI1I]@@@@@@@/z@4@N.class_comments/nII/oII@б%transг/J$bool/{II/|II@@ @@@0/}/|/|/}/}/}/}/}@i.@A@@б@г 't_class/II/IJ@@ @@@@@г/.$list/IJ /IJ@г-$text/IJ/IJ @@ @@@(@@@@@@- @@@"@@0%@@A9@@@ @@7/II@@ @/II"@-󐠠 $ Access to the comments of a class. /II/II@@@@@@@/@1@K3class_type_elements /JDJL/JDJ_@б%transг/$bool/JDJi/JDJm@@ @@@0////////@f}.@A@@б@г ,t_class_type/JDJq/JDJ}@@ @@@@@г/$list/JDJ/JDJ@г ޠ-class_element0JDJ0 JDJ@@ @@@(@@@@@@- @@@"@@0%@@A9@@@ @@70JDJb@@ @0 JDJH"@.X ) Access to the elements of a class type. 0,JJ0-JJC@@@@@@@0D@1@K5class_type_attributes 08JJ09JJ@б%transг0$bool0EJJ0FJJ@@ @@@00G0F0F0G0G0G0G0G@f}.@A@@б@г o,t_class_type0VJJ0WJK@@ @@@@@г/$list0cJK0dJK"@гg+t_attribute%Value0pJK 0qJK@@ @@@+@@@@@@0 @@@%@@3(@@Da<@@@ @@:0JJ"@@ @0JJ%@. . Access to the list of class type attributes. 0JJ0JJ@@@@@@@0@4@N !class_type_parameter_text_by_name 0K|K0K|K@б@г Ġ,t_class_type0K|K0K|K@@ @@@000000000@g~,@A@@б@г0&string0K|K0K|K@@ @@@@@г0=&option0K|K0K|K@г/*$text0K|K0K|K@@ @@@(@@@@@@- @@@"@@0%@@@6@@39@@@0K|K@/ N Access to the description associated to the given class type parameter name. 0K$K(0K$K{@@@@@@@1 @,@F2class_type_methods 0LL 0LL@б%transг0ڠ$bool1 LL%1 LL)@@ @@@01 1 1 1 1 1 1 1 @av.@A@@б@г 5,t_class_type1LL-1LL9@@ @@@@@г0$list1)LLL1*LLP@г-(t_method%Value16LL=17LLK@@ @@@+@@@@@@0 @@@%@@3(@@D'<@@@ @@:1KLL"@@ @1NLL%@/ ( Access to the methods of a class type. 1ZKK1[KL@@@@@@@1r@4@N3class_type_comments 1fLL1gLL@б%transг1B$bool1sLL1tLL@@ @@@01u1t1t1u1u1u1u1u@i.@A@@б@г ,t_class_type1LL1LL@@ @@@@@г1&$list1LL1LL@г/$text1LL1LL@@ @@@(@@@@@@- @@@"@@0%@@A9@@@ @@71LL@@ @1LL"@/될 ) Access to the comments of a class type. 1LRLV1LRL@@@@@@@1@1@K@  A@  A@  B@  B@ u B@ i \B@ ]B@ FB@ :B@ pB@@M@9@@w(@@_@K@@:@@011111111@t<@A+011111111@ @A1]73751LL@@0) < Representation and manipulation of classes and class types.1[661[67#@@@@@@@2\7$7$@@&Moduled2 MM2 MM$@@Б2#+ {1 Types} 2M-M12M-MA@@@@@@022222222@)@ A@ f `A@  1B@  uB@  |B@  B@ _B@ B@ ^B@ UB@b@@R@>@@u&@@d@P@@@ZM2b@A0A(.module_elemente2VMyM2WMyM@@8@@.Element_module(t_modulee@@@@@2gMM2hMM@@23Element_module_type-t_module_typee@@@@@2wMM2xMM@@27Element_included_module/included_modulee@@@@@2NN2NN2@@2-Element_class't_class@@@d@@2N3N92N3NY@@22Element_class_type,t_class_type@@@e@@2NZN`2NZN@@2-Element_value't_value@@@f@@2NN2NN@@26Element_type_extension a0t_type_extension@@@@@2NN2NN@@21Element_exception +t_exception@@@@@2NN2NO!@@2,Element_type!&t_type@@@@@2O"O(2O"OE@@26Element_module_comment"1N@@@@@2OFOL2OFOl@@3 @@A+Odoc_module.module_element@@@ @@@@3MyM} @1: , To keep the order of elements in a module. 3MCMG3MCMx@@@@@@@@@3&@3MM@@г(t_module3MM@@033333333@ 8@@@A@@f@!Gf@@@@@20@@##mmte8@@@A @@f@!Hf@@@@@3>OO3?OP@1w 8 Used where we can reference t_module or t_module_type. 3KOnOr3LOnO@@@@@@@@@3c8@@@A@@f@!If@@@@@3WP P3XQfQo@@@@3o,module_aliase8@@@A @@f@!Jf@@@@@3eQqQu3fR`Ri@@@@3}0module_parametere8@@@A @@f@!Kf@@@@@3sRkRo3tSS@@@@3+module_kinde8@@@A @@f@!Lf@@@@@3SS3WCWv@1> Different kinds of a module. 3SS3SS@@@@@@@@@3.8@@@A5@@f@!Mf@@@@@3WW3[x[@1Ӑ= Representation of a module. 3WW3WW@@@@@@@@@31module_type_aliase8@@@A @@f@!Nf@@@@@3 [[3$\\@@@@30module_type_kinde8@@@A @@f@!Of@@@@@3'\\3/^_@1 ! Different kinds of module type. 3&\\3&\\@@@@@@@@@3`8@@@Ag@@f@!Pf@@@@@33_v_z3?bb@2 " Representation of a module type. 32_J_N32_J_u@@@@@@@@@4@A@@@@@3MM3MM@@г-t_module_type3MM@@ܰ@@@@@4NN4NN@@г/included_module4 NN#@@@@@@@4N3N;4N3NH@@г%Class4N3NL@@@@@@@4"NZNb4#NZNt@@г%Class4-NZNx@@@@@@@43NN44NN@@г%Value4>NN@@@@@@@4DNN4ENN@@г)Extension4ONN@@0@@@@@4UNN4VNO@@г)Exception4`NO @@A@@@@@4fO"O*4gO"O6@@г$Type4qO"O:@@R@@@@@4wOFON4xOFOd@@г$text4OFOh@@b@@@@@@Aг+Odoc_module4MyM4MyM@@m@@(]]4OO4OO@@8@@#ModZ<@@@ @@4OO4OO@@4'Modtype[:@@@ @@4OOq@@4@@A#mmt@@@ @@@@{x@@k@##4OO4OO@@г%(t_module4OO&@@,'@@@@)@%%4OO4OO@@г'-t_module_type4OO@@.@@@@+@@Aг(+Odoc_module*4OO4OO@@1ð@@(cc4P P4P P!@@8@@'im_name\@'!t@@@ 4PLPV4PLPh@30 ' Complete name of the included module. 5PLPi5PLP@@@@@@@5)im_module]A4@@@ @@@ 5PP5PP@3N 5 The included module or module type, if we found it. 5"PP5#PP@@@@@@@5:'im_info^A43n$info@@@ @@@ 55PQ56PQ0@3n / comment associated with the include directive 5BPQ15CPQe@@@@@@@5Z@@AM/included_module@@@ @@@@@@@@aaZ5QPLP]@@Ш@гd$Namef5[PLP`5\PLPf@@m=@@p@g@ @@jgYY5dPP5ePP@AШ@г]&option5nPP5oPP@гb#mmt5wPP5xPP@@jY@@@oZ @@r@g@ ]@ifXX5PQ5PQ@AШ@г\&option5PQ(5PQ.@гa*Odoc_typesc5PQ5PQ'@@jw@@@ox @@r@g@ {@gd@AгV+Odoc_moduleX5P P$5P P?@@_@@P@(NN5QqQy5QqQ@@8@@'ma_name_@(!t@@@ 5QQ5QQ@3򐠠 % Complete name of the target module. 5QQ5QQ@@@@@@@5 )ma_module`A5H@@@ @@@ 5QQ5QR@4 : The real module or module type if we could associate it. 5QR 5QR_@@@@@@@5 @@A,module_alias@@@ @@@@@@@@AA:5QQ@@Ш@гD$NameF5QQ5QQ@@M߰@@P@g@ @JG996QR6QR@AШ@г=&option6QR6QR@гB#mmt6QR6QR@@J@@@O @@R@g@ @IF@Aг8+Odoc_module:6'QqQ6(QqQ@@A @@@(Ġİ6.RkRs6/RkR@@8@@'mp_namea@5@@@ 6;RR6<RR@4t* the name 6HRR6IRR@@@@@@@6` 'mp_typeb@5ʠ'+module_type@@@ @@@ İ6[RR6\RR@4* the type 6hRR6iRS@@@@@@@6 ,mp_type_codec@5@@@ ǰ6tSS6uSS.@43 the original code 6SS/6SSG@@@@@@@6 'mp_kindd@@@@ ʰ6SHSP6SHSl@4Ɛ ! the way the parameter was built 6SHSm6SHS@@@@@@@6@@A0module_parameter@@@ @@@@2@@@/@ssn6RR@@Ш@гv&string6RR6RR@@~@@@g@ @}zll`6RR@@Ш@гo&option6RR6RR@гt%Typesv6RR6RR@@}@@@ @@@g@ @zwiid6SS#@@Ш@гl&string6SS&6SS,@@tð@@w@g@ @spbb]6SHSW@@Ш@гe0module_type_kind6SHSZ6SHSj@@mհ@@p@g@ @li@Aг[+Odoc_module]7RkR7RkR@@d@@@(7SS7SS@@8@@-Module_structe6@@@ @@@ @@7SS7ST!@5T> A complete module structure. 7(ST"7)STE@@@@@@@7@,Module_aliasf@@@ @@76TFTL77TFTj@5o 7 Complete name and corresponding module if we found it 7CTFTk7DTFT@@@@@@@7[.Module_functorg@@@ Ҡ@@@ @@7VTT7WTT@5 > A functor, with its parameter and the rest of its definition 7cTT7dTU9@@@@@@@7{,Module_applyh@@@ Ԡ@@@ @@7vU:U@7wU:Uk@5 / A module defined by application of a functor. 7UlU7UlU@@@@@@@7+Module_withi@@@ ֠6@@@ @@7UU7UU@5ϐ n A module whose type is a with ... constraint. Should appear in interface files only. 7 UU7 V.Vo@@@@@@@71Module_constraintj9@@@ ؠ@@@ @@7 VpVv7 VpV@5 ' A module constraint by a module type. 7 VV7 VV@@@@@@@7-Module_typeofk70@@@ @@7 VV7 VW @6 / by now only the code of the module expression 7 VW7 VWB@@@@@@@7-Module_unpackl7K@@@ ۠E@@@ @@7WCWIp@6) . code of the expression and module type alias 7WCWw7WCW@@@@@@@8@@A+module_kind@@@ @@@@@@w@8 SS8 ST @@г$list8ST@г.module_element8ST8ST@@ @@@@@@@8&TFTN8'TFTZ@@г,module_alias80TFT^@@@@@@86TT87TT@@г0module_parameter8@TT8ATT@@"@@г+module_kind8JTT@@+@@@@8PU:UB8QU:UN@@г蠐+module_kind8ZU:UR8[U:U]@@<@@г+module_kind8dU:U`@@E@@@@8jUU8kUU@@г⠐0module_type_kind8tUU8uUU@@V@@г砐&string8~UU@@_@@@@ڠڰ8 VpVx8 VpV@@гܠ+module_kind8 VpV8 VpV@@p@@г᠐0module_type_kind8 VpV@@y@@@@Ԡ԰8 VV8 VW@@г֠&string8 VW@@@@@@נɠɰ8WCWK8WCWX@@гˠ&string8WCW\8WCWb@@@@гР1module_type_alias8WCWeA@@B@@@@@AгĠ+Odoc_moduleư8SS8SS@@@@OL(nn8WW8WW@@8@@&m_namem@+!t@@@ ް8XX8XX"@7> Complete name of the module. 8XX#8XXF@@@@@@@9&m_typenA)+module_type@@@ 8XGXQ8XGXu@769 The type of the module. 9 XGXv9 XGX@@@@@@@9"&m_infooA8/@@@ @@@ 9XX9XX@7T 7 Information found in the optional associated comment. 9(XX9)XX@@@@@@@9@.m_is_interfacep@9@@@ 94XY95XY@7m . [true] for modules read from interface files 9AXY9BXYP@@@@@@@9Y&m_fileq@8@@@ 9MYQY[9NYQYl@7 $ The file the module is defined in. 9ZYQYm9[YQY@@@@@@@9r&m_kindrA@@@ 9fYY9gYY@7 The way the module is defined. 9sYY9tYY@@@@@@@9%m_locsA-`@@@ 9YY9YZ @@9*m_top_depstA9",!t@@@ @@@ 9Z Z9Z Z7@7ː 4 The toplevels module names this module depends on. 9Z Z89Z Zq@@@@@@@9&m_codeuA9!9@@@ @@@ 9ZrZ|9ZrZ@7鐠> The whole code of the module 9ZrZ9ZrZ@@@@@@@9+m_code_intfvA9?9,@@@ @@@!9ZZ9ZZ@8 / The whole code of the interface of the module 9ZZ9Z[%@@@@@@@9 +m_text_onlyw@9@@@!9[&[09[&[D@8 - [true] if the module comes from a text file 9[&[E9[&[w@@@@@@@: !@@A(t_module@@@! @@@@eb@@U@((!:XX@@Ш@г+$Name-: XX:XX @@4@@7@g@ @1.  :XGXY:XGX_@AШ@г$%Types&:!XGXb:"XGXs@@-@@0@g@ @*':*XX:+XX@AШ@г&option:4XX:5XX@г"$info:=XX:>XX@@*@@@/  @@2@g@ #@)&:GXY@@Ш@г$bool:PXY:QXY@@#2@@&@g@ 5@" :YYQYa@@Ш@г&string:bYQYd:cYQYj@@D@@@g@ G@  :kYY:lYY@AШ@г+module_kind:uYY:vYY@@W@@@g@ Z@:~YY:YY@AШ@г(location:YZ:YZ@@j@@@g@ m@@  :Z Z:Z Z'@AШ@г$list:Z Z1:Z Z5@г$Name:Z Z*:Z Z0@@@@@" @@%@g@ @  :ZrZ:ZrZ@AШ@г &option:ZrZ:ZrZ@г&string:ZrZ:ZrZ@@@@@ @@"@g@ @:ZZ:ZZ@AШ@г &option:ZZ:ZZ@г&string:ZZ:ZZ@@@@@° @@!@g@!@:[&[;@@Ш@г $bool:[&[>:[&[B@@԰@@@g@!@@Aг+Odoc_module:WW;WW@@ @@if(ZZ; [[; [[@@8@@(mta_namex@.!t@@@! ;"[[;"[[@9N * Complete name of the target module type. ;""[[;#"[\@@@@@@@;:"*mta_moduleyA:@@@! @@@!;3#\\!;4#\\L@9l 0 The real module type if we could associate it. ;@#\\M;A#\\@@@@@@@;X#@@AK1module_type_alias@@@!@@@@@@@@AA:;O"[[@@Ш@гD$NameF;Y"[[;Z"[[@@M;@@P@g@! >@JG99;b#\\);c#\\3@AШ@г=&option;l#\\D;m#\\J@гB-t_module_type;u#\\6;v#\\C@@JW@@@OX @@R@g@![@IF@Aг8+Odoc_module:; [[; [[@@Ae@@@(Ра;'\\;'\\@@8@@2Module_type_structz;0 I@@@!@@@!@@;(\\;(\]$@9א> A complete module signature. ;(\]%;(\]H@@@@@@@;$3Module_type_functor{O@@@!@@@!@@;)]I]O;)]I]@9 > A functor, with its parameter and the rest of its definition ;*]];*]]@@@@@@@;%1Module_type_alias|-@@@!@@;+]];+]^ @: C Complete alias name and corresponding module type if we found it. ;,^ ^;,^ ^_@@@@@@@;&0Module_type_with}:@@@!;X@@@!@@;-^`^f;-^`^@:2 ; The module type kind and the code of the with constraint. <.^^<.^^@@@@@@@<'2Module_type_typeof~;s@@@!@@</^^Q@:L / by now only the code of the module expression < 0__@@@@bb=_>bb@@=v/@@A i-t_module_type@@@!<@@@@  @@ }@=m5__@@Ш@г$Name°=w5__=x5__@@ Y@@@g@!  \@à=6_` =6_`@AШ@г&option=6_`=6_`!@г$info=6_`=6_`@@ u@@@ v @@@g@!% y@ =7`a`s=7`a`z@AШ@г&option=7`a`=7`a`@г%Types=7`a`}=7`a`@@ @@@  @@@g@!* @=8``@@Ш@г$bool=8``=8``@@ @@@g@!- @=9a&a7@@Ш@г&string=9a&a:=9a&a@@@ @@@g@!0 @=:ara=:ara@AШ@г&option=:ara=:ara@г0module_type_kind=:ara=:ara@@ ԰@@@ հ @@@g@!5 @=>bb=>bb@AШ@г(location>>bb>>bb@@ @@@g@!8 @@@Aг+Odoc_module>3_v_>3_v_@@ @@ ; 8@   :@>); {1 Functions for modules} >$Abb>%Abc@@@@@@0>#>">">#>#>#>#>#@   y ) \ (    G    @A/module_elements>9DcBcJ>:DcBcY@б%transг>$bool>FDcBcc>GDcBcg@@ @@@#%@@б@г (t_module>UDcBck>VDcBcs@@ @@@#4@@г=$list>bDcBc>cDcBc@г .module_element>lDcBcw>mDcBc@@ @@@#K@@@@@@#P @@@"@@#S%@@?]7@@@# @@#Z>DcBc\@@ @>DcBcF"@< % Access to the elements of a module. >Ccc>CccA@@@@@@@>0@1@n.module_modules>Gcc>Gcc@б%transг>x$bool>Gcc>Gcc@@ @@@#0>>>>>>>>@{.@A@@б@г S(t_module>Gcc>Gcc@@ @@@#@@г>\$list>Gcc>Gcc@г j(t_module>Gcc>Gcc@@ @@@#(@@@@@@#- @@@"@@#0%@@A 9@@@# @@#7>Gcc@@ @>Gcc"@=! ' Access to the submodules of a module. >Fcc>Fcc@@@@@@@? 1@1@K3module_module_types?Jd3d;?Jd3dN@б%transг>ݠ$bool?Jd3dX?Jd3d\@@ @@@#0????????@f}.@A@@б@г (t_module?Jd3d`? Jd3dh@@ @@@#@@г>$list?,Jd3dz?-Jd3d~@г -t_module_type?6Jd3dl?7Jd3dy@@ @@@#(@@@@@@#- @@@"@@#0%@@A'9@@@# @@#7?KJd3dQ@@ @?NJd3d7"@= ) Access to the module types of a module. ?ZIdd?[Idd2@@@@@@@?r2@1@K7module_included_modules?fMdd?gMdd@б%transг?B$bool?sMdd?tMdd@@ @@@#0?u?t?t?u?u?u?u?u@f}.@A@@б@г (t_module?Mdd?Mdd@@ @@@#@@г?&$list?Mde?Mde@г /included_module?Mdd?Mde@@ @@@#(@@@@@@#- @@@"@@#0%@@A9@@@# @@#7?Mdd@@ @?Mdd"@=될 - Access to the included modules of a module. ?Ldd?Ldd@@@@@@@?3@1@K6module_type_extensions?Pe?eG?Pe?e]@б%transг?$bool?Pe?eg?Pe?ek@@ @@@#0????????@f}.@A@@б@г (t_module?Pe?en?Pe?ev@@ @@@#@@г?$list?Pe?e?Pe?e@г-0t_type_extension)Extension@Pe?ez@Pe?e@@ @@@#+@@@@@@#0 @@@%@@#3(@@D<@@@# @@#:@Pe?e`"@@ @@Pe?eC%@>S , Access to the type extensions of a module. @'Oe e @(Oe e>@@@@@@@@?4@4@N1module_exceptions@3See@4See@б%transг@$bool@@See@ASee@@ @@@#0@B@A@A@B@B@B@B@B@i.@A@@б@г ꠐ(t_module@QSee@RSee@@ @@@#@@г?$list@^Sef@_Sef@г)+t_exception)Exception@kSef@lSef@@ @@@#+@@@@@@#0 @@@%@@#3(@@D\<@@@# @@#:@See"@@ @@See%@> ' Access to the exceptions of a module. @Ree@Ree@@@@@@@@5@4@N,module_types@VfJfR@VfJf^@б%transг@w$bool@VfJfh@VfJfl@@ @@@#0@@@@@@@@@i.@A@@б@гR(t_module@VfJfo@VfJfw@@ @@@#@@г@[$list@VfJf@VfJf@г'&t_type$Type@VfJf{@VfJf@@ @@@#+@@@@@@#0 @@@%@@#3(@@DĠ<@@@# @@#:@VfJfa"@@ @@VfJfN%@?# " Access to the types of a module. @Uff"@UffI@@@@@@@A6@4@N-module_valuesAYffAYff@б%transг@ߠ$boolAYffAYff@@ @@@#0AAAAAAAA@i.@A@@б@г(t_moduleA!YffA"Yff@@ @@@#@@г@à$listA.YffA/Yff@г!2't_value%ValueA;YffA<Yff@@ @@@#+@@@@@@#0 @@@%@@#3(@@D,<@@@# @@#:APYff"@@ @ASYff%@? # Access to the values of a module. A_XffA`Xff@@@@@@@Aw7@4@N0module_functionsAk\g5g=Al\g5gM@б%transгAG$boolAx\g5gWAy\g5g[@@ @@@#0AzAyAyAzAzAzAzAz@i.@A@@б@г"(t_moduleA\g5g^A\g5gf@@ @@@#@@гA+$listA\g5gxA\g5g|@г!'t_value%ValueA\g5gjA\g5gw@@ @@@#+@@@@@@#0 @@@%@@#3(@@D<@@@# @@#:A\g5gP"@@ @A\g5g9%@?󐠠 * Access to functional values of a module. A[ggA[gg4@@@@@@@A8@4@N4module_simple_valuesA_ggA_gg@б%transгA$boolA_ggA_gg@@ @@@#0AAAAAAAA@i.@A@@б@г(t_moduleA_ggA_gg@@ @@@#@@гA$listA_ggA_gh@г"'t_value%ValueB _ggB _gg@@ @@@#+@@@@@@#0 @@@%@@#3(@@D<@@@# @@#:B _gg"@@ @B#_gg%@@[ . Access to non-functional values of a module. B/^g~gB0^g~g@@@@@@@BG9@4@N.module_classesB;bh1h9B<bh1hG@б%transгB$boolBHbh1hQBIbh1hU@@ @@@#0BJBIBIBJBJBJBJBJ@i.@A@@б@г(t_moduleBYbh1hXBZbh1h`@@ @@@#@@гA$listBfbh1hrBgbh1hv@гt't_class%ClassBsbh1hdBtbh1hq@@ @@@#+@@@@@@#0 @@@%@@#3(@@Dd<@@@# @@#:Bbh1hJ"@@ @Bbh1h5%@@Ð $ Access to the classes of a module. BahhBahh0@@@@@@@B:@4@N2module_class_typesBehhBehh@б%transгB$boolBehhBehh@@ @@@#0BBBBBBBB@i.@A@@б@гZ(t_moduleBehhBehh@@ @@@#@@гBc$listBehhBehh@г,t_class_type%ClassBehhBehh@@ @@@#+@@@@@@#0 @@@%@@#3(@@D̠<@@@$ @@$:Behh"@@ @Behh%@A+ ( Access to the class types of a module. Bdhxh|Cdhxh@@@@@@@C;@4@N2module_all_classesC hiUi]C hiUio@б%transгB砐$boolChiUiyChiUi}@@ @@@$0CCCCCCCC@i.@A@@б@г (t_moduleC)hiUiC*hiUi@@ @@@$@@гBˠ$listC6hiUiC7hiUi@гD't_class%ClassCChiUiCDhiUi@@ @@@$+@@@@@@$0 @@@%@@$3(@@D4<@@@$ @@$ :CXhiUir"@@ @C[hiUiY%@A Q The list of classes defined in this module and all its submodules and functors. CgghhChghiT@@@@@@@C<@4@N1module_is_functorCskiiCtkii@б@г(t_moduleC~kiiCkii@@ @@@$ 0CCCCCCCC@g~,@A@@гC\$boolCkiiCkii@@ @@@$ @@@@@$ @@@Ckii @AА " [true] if the module is functor. CjiiCjii@@@@@@@C=@@%1module_parametersCnjCjKCnjCj\@б%transгC$boolCnjCjfCnjCjj@@ @@@$ 0CCCCCCCC@@U.@A@@б@гg(t_moduleCnjCjmCnjCju@@ @@@$@@гCp$listCnjCjCnjCj@Вг|0module_parameterCnjCjzCnjCj@@ @@@$+@@гCj&optionCnjCjCnjCj@гBW$textDnjCjDnjCj@@ @@@$C@@@@@@$H @@@$ @@$M(@@@<@@@$RDnjCjy:@@@H@@$VK=@@g_@@@$ @@$]D njCj_E@@ @D#njCjGH@B[ ? The list of couples (module parameter, optional description). D/miiD0mijB@@@@@@@DG>@W@q/module_commentsD;qjjD<qjj@б%transгD$boolDHqjjDIqjj@@ @@@$0DJDIDIDJDJDJDJDJ@.@A@@б@г(t_moduleDYqjjDZqjj@@ @@@$@@гC$listDfqjkDgqjk@гBǠ$textDpqjjDqqjk@@ @@@$(@@@@@@$- @@@"@@$0%@@Aa9@@@$ @@$ 7Dqjj@@ @Dqjj"@B> The list of module comments. DpjjDpjj@@@@@@@D?@1@KD {1 Functions for module types} Dskk Dskk0@@@@@@0DDDDDDDD@[r#@A4module_type_elementsDvkfknDvkfk@б%transгD$boolDvkfkDvkfk@@ @@@$!@@б@гV-t_module_typeDvkfkDvkfk@@ @@@$"+@@гDo$listDvkfkDvkfk@г.module_elementDvkfkDvkfk@@ @@@$#B@@@@@@$%G @@@"@@$&J%@@?ՠ7@@@$' @@$(QDvkfk@@ @Dvkfkj"@C4 * Access to the elements of a module type. Euk2k6E uk2ke@@@@@@@E @@1@e3module_type_modulesEykkEykl @б%transгD$boolE!yklE"ykl@@ @@@$)0E#E"E"E#E#E#E#E#@{.@A@@б@г-t_module_typeE2yklE3ykl(@@ @@@$*@@гDԠ$listE?ykl5E@ykl9@г⠐(t_moduleEIykl,EJykl4@@ @@@$+(@@@@@@$-- @@@"@@$.0%@@A:9@@@$/ @@$07E^ykl @@ @Eaykk"@C , Access to the submodules of a module type. EmxkkEnxkk@@@@@@@EA@1@K8module_type_module_typesEy|lsl{Ez|lsl@б%transгEU$boolE|lslE|lsl@@ @@@$10EEEEEEEE@f}.@A@@б@г -t_module_typeE|lslE|lsl@@ @@@$2@@гE9$listE|lslE|lsl@г7-t_module_typeE|lslE|lsl@@ @@@$3(@@@@@@$5- @@@"@@$60%@@A9@@@$7 @@$87E|lsl@@ @E|lslw"@C . Access to the module types of a module type. E{l;l?E{l;lr@@@@@@@EB@1@K0%@@A9@@@$? @@$@7F(mm,@@ @F+mm "@Dc 2 Access to the included modules of a module type. F7~llF8~lm@@@@@@@FOC@1@K6module_type_exceptionsFCmmFDmm@б%transгF$boolFPmmFQmm@@ @@@$A0FRFQFQFRFRFRFRFR@f}.@A@@б@гꠐ-t_module_typeFammFbmm@@ @@@$B@@гF$listFnmmFomm@г/+t_exception)ExceptionF{mmF|mm@@ @@@$C+@@@@@@$E0 @@@%@@$F3(@@Dl<@@@$G @@$H:Fmm"@@ @Fmm%@Dː , Access to the exceptions of a module type. FmameFmam@@@@@@@FD@4@N1module_type_typesFn$n,Fn$n=@б%transгF$boolFn$nGFn$nK@@ @@@$I0FFFFFFFF@i.@A@@б@гR-t_module_typeFn$nNFn$n[@@ @@@$J@@гFk$listFn$nkFn$no@г-&t_type$TypeFn$n_Fn$nj@@ @@@$K+@@@@@@$M0 @@@%@@$N3(@@DԠ<@@@$O @@$P:Fn$n@"@@ @Fn$n(%@E3 ' Access to the types of a module type. GmmGmn#@@@@@@@GE@4@N2module_type_valuesGnnGnn@б%transгF$boolG nnG!nn@@ @@@$Q0G"G!G!G"G"G"G"G"@i.@A@@б@г-t_module_typeG1nnG2nn@@ @@@$R@@гFӠ$listG>nnG?nn@г'B't_value%ValueGKnnGLnn@@ @@@$S+@@@@@@$U0 @@@%@@$V3(@@D<<@@@$W @@$X:G`nn"@@ @Gcnn%@E ( Access to the values of a module type. GonqnuGpnqn@@@@@@@GF@4@N5module_type_functionsG{o,o4G|o,oI@б%transгGW$boolGo,oSGo,oW@@ @@@$Y0GGGGGGGG@i.@A@@б@г"-t_module_typeGo,oZGo,og@@ @@@$Z@@гG;$listGo,oyGo,o}@г''t_value%ValueGo,okGo,ox@@ @@@$[+@@@@@@$]0 @@@%@@$^3(@@D<@@@$_ @@$`:Go,oL"@@ @Go,o0%@F / Access to functional values of a module type. GnnGno+@@@@@@@GG@4@N9module_type_simple_valuesGooGoo@б%transгG$boolGooGoo@@ @@@$a0GGGGGGGG@i.@A@@б@г-t_module_typeHooHoo@@ @@@$b@@гG$listHop Hop@г('t_value%ValueHooHop @@ @@@$c+@@@@@@$e0 @@@%@@$f3(@@D <@@@$g @@$h:H0oo"@@ @H3oo%@Fk 3 Access to non-functional values of a module type. H?ooH@oo@@@@@@@HWH@4@N3module_type_classesHKpFpNHLpFpa@б%transгH'$boolHXpFpkHYpFpo@@ @@@$i0HZHYHYHZHZHZHZHZ@i.@A@@б@г-t_module_typeHipFprHjpFp@@ @@@$j@@гH $listHvpFpHwpFp@г$'t_class%ClassHpFpHpFp@@ @@@$k+@@@@@@$m0 @@@%@@$n3(@@Dt<@@@$o @@$p:HpFpd"@@ @HpFpJ%@FӐ ) Access to the classes of a module type. HppHppE@@@@@@@HI@4@N7module_type_class_typesHppHpp@б%transгH$boolHppHpp@@ @@@$q0HHHHHHHH@i.@A@@б@гZ-t_module_typeHppHpq @@ @@@$r@@гHs$listHpq"Hpq&@г$,t_class_type%ClassHpqHpq!@@ @@@$s+@@@@@@$u0 @@@%@@$v3(@@Dܠ<@@@$w @@$x:Ipp"@@ @Ipp%@G; - Access to the class types of a module type. IppIpp@@@@@@@I'J@4@N7module_type_all_classesIqqIqq@б%transгH$boolI(qqI)qq@@ @@@$y0I*I)I)I*I*I*I*I*@i.@A@@б@г -t_module_typeI9qqI:qq@@ @@@$z@@гH۠$listIFqqIGqq@г%T't_class%ClassISqqITqq@@ @@@${+@@@@@@$}0 @@@%@@$~3(@@DD<@@@$ @@$:Ihqq"@@ @Ikqq%@G V The list of classes defined in this module type and all its submodules and functors. Iwq(q,Ixq(q@@@@@@@IK@4@N6module_type_is_functorIrrIrr,@б@г-t_module_typeIrr/Irr<@@ @@@$0IIIIIIII@g~,@A@@гIl$boolIrr@IrrD@@ @@@$@@@@@$@@@Irr @G ' [true] if the module type is functor. IqqIqr @@@@@@@IL@@%6module_type_parametersIrrIrr@б%transгI$boolIrrIrr@@ @@@$0IIIIIIII@@U.@A@@б@гg-t_module_typeIrrIrr@@ @@@$@@гI$listIrrIrr@Вг0module_parameterIrrIrr@@ @@@$+@@гIz&optionJrrJrr@гHg$textJrrJrr@@ @@@$C@@@@@@$H @@@$ @@$M(@@@<@@@$RJ%rr:@@@H@@$VK=@@g _@@@$ @@$]J0rrE@@ @J3rrH@Hk ? The list of couples (module parameter, optional description). J?rFrJJ@rFr@@@@@@@JWM@W@q4module_type_commentsJKss&JLss:@б%transгJ'$boolJXssDJYssH@@ @@@$0JZJYJYJZJZJZJZJZ@.@A@@б@г-t_module_typeJissKJjssX@@ @@@$@@гJ $listJvssaJwsse@гHנ$textJss\Jss`@@ @@@$(@@@@@@$- @@@"@@$0%@@Aq9@@@$ @@$7Jss=@@ @Jss""@HА> The list of module comments. JrrJrs@@@@@@@JN@1@K@XRA@yB@+B@VB@JB@>B@SB@B@.B@IB@  <@ ( @  v@ b @  @  G@ 3 @  {@ g @ @I@5@}@iB@.@V@1@@m@ @U@A@@u#@@W@C@@wP@<@d@@0JJJJJJJJ@f@AU0JJJJJJJJ@@AJM'M)Ksfsk@@I8 > Representation and manipulation of modules and module types. K LLK LM@@@@@@@KMM@@K# ! {2 Getting strings from values} KsnsnKsns@@@@@@0KKKKKKKK@@A@B@@B@B@B@'B@]B@,B@~B@B@  @  U@ A @  @ { )@  @  ]@ I @  @ } +@ @_@K@@5@!@`@L@@7@#@k@W@@9@%@m@Y@@C@/@@uhKO@AZ0reset_type_namesKttKtt@б@гJ㠐$unitKttKtt@@ @@@$o@@гJ$unitKttKtt@@ @@@$|@@@@@$@@@Ktt @Iڐ 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).KssKtUt@@@@@@@KP@@2string_of_varianceKuuKuu@б@г2&t_type$TypeKuuKuv@@ @@@$0KKKKKKKK@T/@A@@б@ВгK$boolKuv Kuv@@ @@@$@@гK$boolKuvKuv@@ @@@$"@@@@@$' @@гKY&stringKuvKuv @@ @@@$4@@@@@$7Luv  @@@>@@$;A @@@L uu@JC  [string_of_variance t (covariant, invariant)] returns ["+"] if the given information means "covariant", ["-"] if it means "contravariant", orelse [""], and always [""] if the given type is not an abstract type with no manifest (i.e. no need for the variance to be printed).LttLuu@@@@@@@L/Q@@N3string_of_type_exprL#vhvlL$vhv@б@г<)type_expr%TypesL1vhvL2vhv@@ @@@$0L3L2L2L3L3L3L3L3@j/@A@@гK&stringL@vhvLAvhv@@ @@@$@@@@@$@@@LKvhvh @J @ This function returns a string representing a Types.type_expr. LWv"v"LXv"vg@@@@@@@LoR@@%6string_of_class_paramsLcww Ldww"@б@г(r't_class%ClassLqww%Lrww2@@ @@@$0LsLrLrLsLsLsLsLs@AY/@A@@гKݠ&stringLww6Lww<@@ @@@$@@@@@$@@@Lww @JÐ e @return a string to display the parameters of the given class, in the same form as the compiler. LvvLvw@@@@@@@LS@@%3string_of_type_listLwwLww@б#parгL$boolLwwLww@@ @@@$0LLLLLLLL@@X.@A@@б@гL&stringLwwLww@@ @@@$@@б@гLe$listLwwLww@г=)type_expr%TypesLwwLww@@ @@@$-@@@@@@$2 @@гLL&stringLwwLww@@ @@@$?@@@@@$B@@@7@@$E: @@VޠN@@@$ @@$LMww@@ @Mww@K= a This function returns a string to represent the given list of types, with a given separator. Mw>w>Mww@@@@@@@M)T@%@`9string_of_type_param_listMx]xaMx]xz@б@г4#&t_type$TypeM+x]x}M,x]x@@ @@@$0M-M,M,M-M-M-M-M-@|/@A@@гL&stringM:x]xM;x]x@@ @@@$@@@@@$@@@MEx]x] @K} ` This function returns a string to represent the list of type parameters for the given type. MQwwMRxCx\@@@@@@@MiU@@% #string_of_type_extension_param_listM]yyM^yy+@б@г;0t_type_extension)ExtensionMkyy.MlyyH@@ @@@$0MmMlMlMmMmMmMmMm@AY/@A@@гLנ&stringMzyyLM{yyR@@ @@@$@@@@@$@@@Myy @K j This function returns a string to represent the list of type parameters for the given type extension. MxxMxy@@@@@@@MV@@%?string_of_class_type_param_listMyyMyz@б@гM=$listMyzMyz@г>])type_expr%TypesMyzMyz@@ @@@$0MMMMMMMM@Kc9@A@@@ @@@$ @@гM&&stringMyzMyz%@@ @@@$@@@@@$@@@Myy @L This function returns a string to represent the given list of type parameters of a class or class type, with a given separator. MyTyTMyy@@@@@@@MW@@*5string_of_module_typeM{i{mM{i{@б$codeгMV&stringM{i{M{i{@@ @@@$0MMMMMMMM@Eg.@A@@б(completeгM۠$boolN {i{N {i{@@ @@@$@@б@г>+module_type%TypesN{i{N{i{@@ @@@$%@@гM&stringN+{i{N,{i{@@ @@@$2@@@@@$5@@3 +@@@$ @@$<N;{i{@@N F@@@$@@$DNC{i{@@ @NF{i{i@L~ < 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. NRz'z'NS{f{h@@@@@@@NjX@*@X4string_of_class_typeN^|~|N_|~|@б(completeгN:$boolNk|~|Nl|~|@@ @@@$0NmNlNlNmNmNmNmNm@s.@A@@б@г?'*class_type%TypesN|~|N|~|@@ @@@$@@гM預&stringN|~|N|~|@@ @@@$!@@@@@$$@@5 x-@@@$ @@$+N|~|@@ @N|~|~@Lא 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]. N{{N|{|}@@@@@@@NY@"@?.string_of_textN||N||@б@гM$textN||N|}@@ @@@$0NNNNNNNN@Xo,@A@@гN.&stringN|}N|} @@ @@@$@@@@@$@@@N|| @M; Get a string from a text. N||N||@@@@@@@OZ@@%.string_of_infoN};}?N};}M@б@гEȠ$infoN};}PO};}T@@ @@@$0OOOOOOOO@>S,@A@@гNk&stringO};}XO};}^@@ @@@$@@@@@$@@@O};}; @MQ & Get a string from an info structure. O%}}O&}}:@@@@@@@O=[@@%.string_of_typeO1}}O2}}@б@г67&t_type$TypeO?}}O@}}@@ @@@$0OAO@O@OAOAOAOAOA@AV/@A@@гN&stringON}}OO}}@@ @@@$@@@@@$@@@OY}} @M . @return a string to describe the given type. Oe}`}`Of}`}@@@@@@@O}\@@%0string_of_recordOq}}Or}}@б@гO$listO|}}O}}}@г6,record_field$TypeO}}O}}@@ @@@$0OOOOOOOO@Kc9@A@@@ @@@$ @@гN&stringO}}O}}@@ @@@$@@@@@$@@@O}} @@O]@ @@8string_of_type_extensionO~7~;O~7~S@б@г=X0t_type_extension)ExtensionO~7~VO~7~p@@ @@@$0OOOOOOOO@9["@A@@гO-&stringO~7~tO~7~z@@ @@@$@@@@@$@@@O~7~7 @N 8 @return a string to describe the given type extension. O}}O}~6@@@@@@@O^@@%3string_of_exceptionO~~O~~@б@г9E+t_exception)ExceptionP~~P~~@@ @@@$0PPPPPPPP@AY/@A@@гOm&stringP~~P~~@@ @@@$@@@@@$@@@P~~ @NS 3 @return a string to describe the given exception. P'~|~|P(~|~@@@@@@@P?_@@%/string_of_valueP3%)P4%8@б@г08't_value%ValuePA%;PB%H@@ @@@$0PCPBPBPCPCPCPCPC@AY/@A@@гO&stringPP%LPQ%R@@ @@@$@@@@@$@@@P[%% @N / @return a string to describe the given value. Pg~~Ph~$@@@@@@@P`@@%3string_of_attributePsPt@б@г0x+t_attribute%ValuePP@@ @@@$0PPPPPPPP@AY/@A@@гO&stringPP@@ @@@$@@@@@$@@@P @NӐ 3 @return a string to describe the given attribute. PTTPT@@@@@@@Pa@@%0string_of_methodPP@б@г0(t_method%ValuePP@@ @@@$0PPPPPPPP@AY/@A@@гP-&stringP#P)@@ @@@$@@@@@$@@@P @O 0 @return a string to describe the given method. PP@@@@@@@Pb@@%P= {2 Miscellaneous functions} P++P+M@@@@@@0PPPPPPPP@5M#@A6first_sentence_of_textQGKQGa@б@гOf$textQGdQGh@@ @@@$@@гOs$textQGlQGp@@ @@@$'@@@@@$*@@@Q'GG @O_ 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]. Q3OOQ4 F@@@@@@@QKc@@=?first_sentence_and_rest_of_textQ?Q@@б@гO$textQJQK@@ @@@$0QLQKQKQLQLQLQLQL@VQ,@A@@ВгO$textQ\Q]@@ @@@$@@гO$textQjQk@@ @@@$ @@@@@$% @@@+@@$(. @@@Qz@O  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].QrrQL@@@@@@@Qd@@;5text_no_title_no_listQQ@б@гO$textQQ@@ @@@$0QQQQQQQQ@Ti,@A@@гP$textQ Q$@@ @@@$@@@@@$@@@Q @O 4 Return the given [text] without any title or list. QQ@@@@@@@Qe@@%+text_concatQQ@б@гP$text*Odoc_typesQQ@@ @@@$0QQQQQQQQ@AV/@A@@б@гQ$listQQ@гP2$text*Odoc_typesQQ@@ @@@$@@@@@@$# @@гPG$text*Odoc_typesRR@@ @@@$3@@@@@$6@@@<@@$9? @@@R@PV [ [concat sep l] concats the given list of text [l], each separated with the text [sep]. R*&&R+q@@@@@@@RBf@@L2get_titles_in_textR6 =AR7 =S@б@гP$textRA =VRB =Z@@ @@@$0RCRBRBRCRCRCRCRC@e},@A@@гQ堐$listRP ={RQ =@ВгR#intR] =_R^ =b@@ @@@$@@гQߠ&optionRk =lRl =r@гQҠ&stringRu =eRv =k@@ @@@$4@@@@@@$9 @@гPߠ$textR =uR =y@@ @@@%G@@@2 @@%M7 @@@K @@@%RR =^I@@@Y@@%V\L@@@R ==O@Pא b Return the list of titles in a [text]. A title is a title level, an optional label and a text.R R <@@@@@@@Rg@^@i2create_index_listsRR@б@гRW$listRR@А!a@%f@%0RRRRRRRR@2@ARR@@@ @@@% @@б@б@А!aRR@@гRE&stringRR@@ @@@% @@@(@@% #@@гR$listRR@гR$listSS@А!a@;S S @@@F@@@% B @@@@@@% G @@@)@@%JS @@@I@@%NL#@@@S&@QV 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.S* S+}@@@@@@@SBh@5@a-remove_optionS6S7@б@гC)type_expr%TypesSDSE@@ @@@%0SFSESESFSFSFSFSF@}/@A@@гC)type_expr%TypesSVSW@@ @@@%@@@@@%@@@Sa @Q 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.SmSn@@@@@@@Si@@(+is_optionalSySz@б@г(Asttypes)arg_label(AsttypesS!S3@@@@@%0SSSSSSSS@F^1@A@@гSg$boolS7S;@@ @@@%@@@@@%@@@S @Qې . Return [true] if the given label is optional.SS@@@@@@@Sj@@%*label_nameSS@б@гB)arg_label(AsttypesSS@@ @@@%0SSSSSSSS@A[/@A@@гS5&stringSS@@ @@@%@@@@@%@@@S @R Y Return the label name for the given label, i.e. removes the beginning '?' if present.S==Sl@@@@@@@Tk@@%2use_hidden_modules S#uyS#u@б@гG!t$NameT #uT #u@@ @@@%0T T T T T T T T @AY/@A@@гG!t$NameT#uT#u@@ @@@%@@@@@%@@@T&#uu @R^ 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})T2 T3":t@@@@@@@TJl@@('verboseàT>&T?&@б@гS&stringTI&TJ&@@ @@@%0TKTJTJTKTKTKTKTK@AY,@A@@гS$unitTX&TY&@@ @@@%@@@@@% @@@Tc& @R : Print the given string if the verbose mode is activated. To%Tp%@@@@@@@Tm@@%'warningĠT{+|T|+|@б@гS㠐&stringT+|T+|@@ @@@%!0TTTTTTTT@>S,@A@@гS$unitT+|T+|@@ @@@%"@@@@@%#@@@T+|| @Rؐ x Print a warning message to stderr. If warnings must be treated as errors, then the error counter is incremented. T(T*X{@@@@@@@Tn@@%.print_warningsŠT.T.@гS#refT.T.@гT$boolT.T.@@ @@@%$0TTTTTTTT@F[4@A@@@ @@@%& @@@T.@S F A flag to indicate whether ocamldoc warnings must be printed or not. T-T-@@@@@@@To@(@&errorsƠT4T4@гS#refT4T4@гT#intU4U4@@ @@@%'0UUUUUUUU@;X4@A@@@ @@@%) @@@U4@SL 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. U 0U!3@@@@@@@U8p@(@)apply_optǠU,7U-7 @б@б@А!a@%4f@%*0U7U6U6U7U7U7U7U7@1N*@AU=7U>7@@А!b@%6f@%+ UH7UI7@@@ @@%,@@б@гTʠ&optionUV7 UW7&@А!a'"U]7U^7@@@-@@@%.) @@гTߠ&optionUk7-Ul73@А!b/7Ur7*Us7,@@@5@@@%0> @@@@@%1A@@@4@@%2DU7@@@U7@S ( Apply a function to an optional value. U6U6@@@@@@@Uq@&@X.apply_if_equalȠU<U<@б@б@А!a@%=f@%70UUUUUUUU@o*@AU<U<@@А!a U<U<@@@@@%8  @@б@А!aU<U<@@б@А!a U<U<@@А!a&!U<U<@@@++@@%9& @@@.@@%:)@@@!@@%;,U< @@@U<@T 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.U955U;@@@@@@@Ur@@@.text_of_stringɠUAUA@б@гUX&stringUAUA@@ @@@%>0UUUUUUUU@Yl,@A@@гTa$textV AV A@@ @@@%?@@@@@%@@@@VA @TM [text_of_string s] returns the text structure from the given string. @raise Text_syntax if a syntax error is encountered. V!>V"@F@@@@@@@V9s@@%3text_string_of_textʠV-FDHV.FD[@б@гT$textV8FD^V9FDb@@ @@@%A0V:V9V9V:V:V:V:V:@>S,@A@@гU&stringVGFDfVHFDl@@ @@@%B@@@@@%C@@@VRFDD @T [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}.V^CV_EC@@@@@@@Vvt@@%.info_of_stringˠVjM>BVkM>P@б@гUҠ&stringVuM>SVvM>Y@@ @@@%D0VwVvVvVwVwVwVwVw@>S,@A@@гMM$infoVM>]VM>a@@ @@@%E@@@@@%F@@@VM>> @Tǐ [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 VHnnVL;=@@@@@@@Vu@@%3info_string_of_info̠VRVR@б@гM{$infoVRVR@@ @@@%G0VVVVVVVV@>S,@A@@гV&stringVR#VR)@@ @@@%H@@@@@%I@@@VR @U [info_string_of_info info] returns the string representing the given [info]. This string can then be parsed again by {!Odoc_info.info_of_string}.VOccVQ@@@@@@@Vv@@%4info_of_comment_file͠V[swV[s@б@гV$listV[sV[s@г$(t_module&ModuleV[sV[s@@ @@@&0VVVVVVVV@K`9@A@@@ @@@& @@б@гVo&stringW[sW[s@@ @@@&@@гM蠐$infoW[sW [s@@ @@@&#@@@@@&&@@@&@@&)/ @@@W-[ss@Ue 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. W9T++W:Zpr@@@@@@@WQw@@<5remove_ending_newlineΠWE^ WF^!@б@гV&stringWP^$WQ^*@@ @@@&0WRWQWQWRWRWRWRWR@Uw,@A@@гV&stringW_^.W`^4@@ @@@&@@@@@&@@@Wj^ @U L [remove_ending_newline s] returns [s] without the optional ending newline. Wv]Ww]@@@@@@@Wx@@%&Search&fWaRYWaR_@@БA(.result_elementgWcjuWcj@@8@@*Res_moduleА%(t_module@@@&@@WdWd@@Wz/Res_module_typeѐ%-t_module_type@@@&@@WeWe@@W{)Res_classҐ3't_class@@@&@@WfWf!@@W|.Res_class_typeӐ3,t_class_type@@@&@@Wg"*Wg"P@@W})Res_valueԐ7't_value@@@&@@WhQYWhQu@@W~(Res_typeՐ>&t_type@@@&@@Wiv~Wiv@@X -Res_extension֐E7t_extension_constructor@@@&@@XjXj@@X-Res_exceptionאAZ+t_exception@@@&@@XkXk@@X+-Res_attributeؐ8+t_attribute@@@&@@X#lX$l2@@X;*Res_methodِ8-(t_method@@@&@@X3m3;X4m3Y@@XK+Res_sectionڐW@@@&V@@@&@@XFnZbXGnZ@@X^,Res_recfieldې?Q&t_type@@@&?X,record_field@@@&@@X]oX^o@@Xu)Res_constܐ?h&t_type@@@&?o3variant_constructor@@@&@@XtpXup@@X@@A+Odoc_search.result_element@@@'@@@@Xcjp @@@@Xy@Xd@@г&ModuleXd@@0XXXXXXXX@@U.8@@@A@@h@'h@&@@@@@@@@A @@@@@XeXe@@г&ModuleXe@@@@@@@XfXf@@г%ClassXf@@-@@@@@Xg",Xg":@@г%ClassXg">@@>@@@@@XhQ[XhQd@@г%ValueXhQh@@O@@@@@XivXiv@@г$TypeXiv@@`@@@@@XjXj@@г)ExtensionYj@@q@@@@@Y kY k@@г)ExceptionYk@@ @@@@@YlYl@@г%ValueY%l!@@ @@@@@Y+m3=Y,m3G@@г%ValueY6m3K@@ @@@@@Y<nZdY=nZo@@г&stringYFnZsYGnZy@@ @@г $textYPnZ} @@ @@@@ @  YVoYWo@@г $Type YaoYbo@@а@@г$TypeYlo@@ڰ@@@@@YrpYsp@@г$TypeY}pY~p@@@@г$TypeYp@@@@@@@@Aг+Odoc_searchYcjYcj@@@@@@0YYYYYYYY@@A"@A(-search_resulthYs0;Ys0H@@8@@@AY@@@@(@@@(@@@@Ys06Ys0^@W琠 ) The type representing a research result.YrYr/@@@@@@@@@Y@@Aг$listYs0Z@г.result_elementYs0KYs0Y@@'0YYYYYYYY@=D>68@@@A=@@i@(i@( @@@@-*@@@A @@@7 -@@/,@0YYYYYYYY@ @A0/@.search_by_nameYvYv@б@гY$listYvYv@г'(t_module&ModuleYvYv@@ @@@(0ZYYZZZZZ@4ic@A@@@ @@@( @@б@г#Str®exp#StrZvZv@@@@@)h@@г-search_resultZ&vZ'v@@ @@@)i(@@@@@)j+@@@+@@)k.4 @@@Z4v@Xl J Research of the elements whose name matches the given regular expression.Z@u`fZAu`@@@@@@@ZX@@A&valuesZLyMWZMyM]@б@гY점$listZWyMpZXyMt@г(W(t_module&ModuleZdyM`ZeyMo@@ @@@)l0ZfZeZeZfZfZfZfZf@g9@A@@@ @@@)n @@гZ $listZxyMZyyM@г:|'t_value%ValueZyMxZyM@@ @@@)o!@@@@@@)q& @@@&@@)r)/@@@ZyMS@X͐ ; A function to search all the values in a list of modules. Zx ZxL@@@@@@@Z@,@<*extensionsZ|Z|@б@гZM$listZ|Z|@г((t_module&ModuleZ|Z|@@ @@@)s0ZZZZZZZZ@b9@A@@@ @@@)u @@гZn$listZ|(Z|,@гH}7t_extension_constructor)ExtensionZ|Z|'@@ @@@)v!@@@@@@)x& @@@&@@)y)/@@@Z|@Y. ? A function to search all the extensions in a list of modules. [{[{@@@@@@@[@,@<*exceptions[y[y@б@гZ$list[y[y@г)(t_module&Module[&y['y@@ @@@)z0[(['['[([([([([(@b9@A@@@ @@@)| @@гZϠ$list[:y[;y@гD+t_exception)Exception[Gy[Hy@@ @@@)}!@@@@@@)& @@@&@@))/@@@[Wy@Y ? A function to search all the exceptions in a list of modules. [c~.4[d~.x@@@@@@@[{@,@<%types[o [p @б@г[$list[z ,[{ 0@г)z(t_module&Module[ [ +@@ @@@)0[[[[[[[[@b9@A@@@ @@@) @@г[0$list[ @[ D@гB&t_type$Type[ 4[ ?@@ @@@)!@@@@@@)& @@@&@@))/@@@[ @Y𐠠 : A function to search all the types in a list of modules. [[ @@@@@@@[@,@<*attributes [[@б@г[p$list[[@г)(t_module&Module[[@@ @@@)0[[[[[[[[@b9@A@@@ @@@) @@г[$list[[@г<+t_attribute%Value\ \ @@ @@@)!@@@@@@)& @@@&@@))/@@@\@ZQ E A function to search all the class attributes in a list of modules. \%FL\&F@@@@@@@\=@,@<'methods!\1,6\2,=@б@г[Ѡ$list\<,P\=,T@г*<(t_module&Module\I,@\J,O@@ @@@)0\K\J\J\K\K\K\K\K@b9@A@@@ @@@) @@г[$list\],g\^,k@гq't_value@@@*]]@@@*\@@*[@@*Zl@)-scan_type_preA@E&t_type@@@*e^a@@@*d@@*c@@*bl@)/scan_type_constA@E&t_type@@@*q@E3variant_constructor@@@*p^@@@*o@@*n@@*m@@*ll@)2scan_type_recfieldA@E&t_type@@@*}@E,record_field@@@*|^%@@@*{@@*z@@*y@@*xl@))scan_typeA@E&t_type@@@*^:@@@*@@*@@*l@):scan_extension_constructorA@L7t_extension_constructor@@@*^O@@@*@@*@@*l@).scan_exceptionA@HL+t_exception@@@*^d@@@*@@*@@*l@).scan_attributeA@?+t_attribute@@@*^y@@@*@@*@@*l@)+scan_methodA@?)(t_method@@@*^@@@*@@*@@*l@)4scan_included_moduleA@-:/included_module@@@*^@@@*@@*@@*l@)7scan_type_extension_preA@L0t_type_extension@@@*_.@@@*@@*@@*l@) scan_type_extension_constructorsA@M0t_type_extension@@@*^@@@*@@*@@*l@)3scan_type_extensionA@M0t_type_extension@@@*^@@@*@@*@@*l@)2scan_class_commentA@]@@@*^@@@*@@*@@*l@*.scan_class_preA@;'t_class@@@*_@@@*@@*@@*l@*3scan_class_elementsA@;'t_class@@@*_@@@*@@*@@*l@* *scan_classA@;'t_class@@@*_4@@@*@@*@@*l@*7scan_class_type_commentA@^A@@@*_G@@@*@@*@@*l@*3scan_class_type_preA@<,t_class_type@@@*_@@@*@@*@@*l@*8scan_class_type_elementsA@<,t_class_type@@@*_q@@@*@@*@@*l@* /scan_class_typeA@<+,t_class_type@@@+_@@@+@@+@@+l@*%3scan_module_commentA@^@@@+ _@@@+ @@+ @@+ l@**/scan_module_preA@.E(t_module@@@+`$@@@+@@+@@+l@*/4scan_module_elementsA@.Z(t_module@@@+_@@@+@@+@@+l@*4+scan_moduleA@.o(t_module@@@+%_@@@+$@@+#@@+"l@*98scan_module_type_commentA@^@@@+-_@@@+,@@++@@+*l@*>4scan_module_type_preA@.-t_module_type@@@+5`v@@@+4@@+3@@+2l@*C9scan_module_type_elementsA@.-t_module_type@@@+=`@@@+<@@+;@@+:l@*H0scan_module_typeA@.-t_module_type@@@+E`*@@@+D@@+C@@+Bl@*M0scan_module_listA@`u.(t_module@@@+P@@@+O`D@@@+N@@+M@@+Ll@*R@@*S@*Tl@*N@*Ol@*I@*Jl@*D@*El@*?@*@l@*:@*;l@*5@*6l@*0@*1l@*+@*,l@*&@*'l@*!@*"l@*@*l@*@*l@*@*l@* @*l@*@* l@*@*l@)@)l@)@)l@)@)l@)@)l@)@)l@)@)l@)@)l@)@)l@)@)l@)@)l@)@)l@)@)l@)@)l@)@@)l@)0````````@` v@ k eA@_YA@@l@X @@O@;@@}2@@t@`@@աa'8@@@AA UATAnAmA A JAI$A#;A:5A4LAKAAAAAhAgAAAAAyAxAAAAAAA@@+rk@+Q@+t@+u@+v@+w@+x@+y@+z@+{@+|@+}@+~@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+k@)@@)@@@@aYaZ@@@@aq8@@@AXAWAAAAUATAnAmAA~ADAC[AZARAQ,A+AEADA A AAAAA6A5MALAA5A4@k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@+k@)@k@)@@@@L@@@IL @D@@@Al@)@@Al@*@AB'@A'l@*@@Al@* @A@Al@*@@Al@*$@ABC@Al@*@@Al@*@A԰@Al@*@Bΰ@Al@)@CD@Al@)@@Al@)@A@Al@)@f@Afl@*8@AB@Al@*)@@Al@*3@@Al@*Q@AB@Al@*.@#@A#l@*L@Ab@Abl@*=@>@A>l@*G@AU@AUl@*B@BCDEF@Al@)@\@A\l@)@}@A}l@)@AB@Al@)@@Al@)@AC{@A{l@)@M@AMl@)@A@Al@)@BDG'*undef*C@@@+qk@)@b@@@k@)@k@)@@@b@@Ab@@AAШ@б@г%Valueb$1b%>@@@@@*V:@@г$unitb0Bb1F@@@@@*WF@@G@@Hb8@@@AAШ@б@г$TypebHHgbIHr@@@@@*^^@@гà$boolbTHvbUHz@@@@@*_j@@k@@lb\HP@@@AAШ@б@гˠ$TypeͰbl{bm{@@@@@*f@@б@гҠ$Type԰b{{b|{@@@@@*g@@г٠$unitb{b{@@@@@*h@@@@@*i@@% @@b{ @@@AAШ@б@г䠡$Typebb@@@@@*r@@б@г렡$Typebb@@@@@*sǰ@@г$unitbb@@@@@*tӰ@@@@@*uְ@@װ% @@ذb @@@AAШ@б@г$Typeb4b?@@@@@*~@@г$unitbCbG@@ @@@*@@@@b!@@@AAШ@б@г )ExtensionbHtbH@@@@@*@@г$unitcHc H@@@@@*@@)@@* cHP@@@AAШ@б@г)Exceptionc c!@@$@@@*6@@г"$unitc,c-@@*@@@*B@@8C@@9Dc4@@@-AAШ@б@г*%Value,cDcE @@3@@@*Z@@г1$unitcPcQ@@9@@@*f@@Gg@@HhcX@@@?e?C@@Y@@@*T@@eU@@fVeF@@c~ ( Scan of a comment inside a class type. eReS @@@@@@@iAAШ@б@гf%Classhec.Sed.e@@o@@@*y@@гm$booleo.iep.m@@u@@@*@@@@ew.6@@c 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.eEMe-@@@@@@@AAШ@б@г%Classee@@@@@*@@г$unitee@@@@@*@@@@e@@c 9 This method scans the elements of the given class type. eoweo@@@@@@@AAШ@б@г%Classee@@@@@*۰@@г$unitee@@@@@*@@@@e@@d 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.eeW@@@@@@@e2 Scan of modules. ee@@@@@@@AAШ@б@гɠ$textfGlfGp@@@@@+@@гѠ$unitfGtfGx@@@@@+&@@'@@(fGO@@dP $ Scan of a comment inside a module. f$f%F@@@@@@@AAШ@б@г校&Modulef5Wxf6W@@@@@+K@@г$boolfAWfBW@@@@@+W@@X@@YfIW_@@d 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.fUzfVV@@@@@@@AAШ@б@г&Modulefffg @@ @@@+|@@г $unitfr fs@@@@@+@@@@ fz@@d 5 This method scans the elements of the given module. ff@@@@@@@!AAШ@б@г&Module ff@@'@@@+@@г%$unitff@@-@@@+@@;@@<f@@d㐠 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.ffe@@@@@@@fː7 Scan of module types. ff@@@@@@@LAAШ@б@гI$textfOyfO}@@Q@@@+&@@гQ$unitfOfO@@Y@@@+'@@e@@ffOW@@e" ) Scan of a comment inside a module type. f fN@@@@@@@iAAШ@б@гf&Modulehgtgt@@o@@@+.@@гm$boolgtgt@@u@@@+/)@@*@@+gt|@@eS 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. g'g(,s@@@@@@@AAШ@б@г&Moduleg8+g9?@@@@@+6N@@г$unitgDCgEG@@@@@+7Z@@[@@\gL@@e : This method scans the elements of the given module type. gXgY@@@@@@@AAШ@б@г&Modulegi ,gj @@@@@@+>@@г$unitgu Dgv H@@@@@+?@@@@g} @@e 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.gIQg @@@@@@@g7 Main scanning method. gJPgJl@@@@@@@AAШ@б@гɠ$listgg@гΠ&Moduleаgg@@@@@+FȰ@@@ߠ@@@+HͰ @@г٠$unitgg@@@@@+Iٰ@@ڰ@@۰g@@f9 Scan a list of modules. gnvgn@@@@@@@@34g @@ @ yA x fA e SA R 8A 7 A  A AAAAAAArAqaA`NAM;A:(A'AAAAAAAAApAo]A\JAI~@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+Ґ3@@+@@ @Az@a@Ay@AB@Ax@z@Aw@A@Av@@Au@ABCT@At@0@As@AF@Ar@B ?@Aq@CD U@Ap@ @Ao@A @An@Ӱ@Am@AB@Al@@Ak@r@Aj@AB@Ai@@Ah@Aɰ@Ag@@Af@A@Ae@BCDEF @Ad@ @Ac@߰@Ab@AB@Aa@ @A`@AC ڰ@A_@ @A^@A @A]@BDG Z@@@ @ @ @@0h^h]h]h^h^h^h^h^@n@A  @@  @ @@ A@ @ @@A@ 8@@@AY@@@@@@@A@ 8@@@A A  A  A  A  A  A  A  wA v dA c QA P >A = +A * A  A AAAAAAAqAp`A_MAL:A9'A&AAAA@+@,@,@, @, @, @, @, @,@,@,@,@,@,@,@,@,@+@+@+@+@+@+@+@+@+@+@+@+@+@+򐐠 Z@@+@@@@]@@@ZA@@0hhhhhhhh@ d @ d@g@d f@ g@i@f i @ _A@ \ [@@@, Z@@@,@@,@@, WA@ T S@@@, R@@@,@@,@@, OA@ L K@@@,t@ J I@@@,s H@@@,r@@,q@@,p@@,o EA@ B A@@@,@ @ ?@@@, >@@@,@@,@@,@@, ;A@ 8 7@@@,n 6@@@,m@@,l@@,k 3A@ 0 /@@@,= .@@@,<@@,;@@,: +A@ ( '@@@,9 &@@@,8@@,7@@,6 #A@  @@@, @@@,@@,@@, A@  @@@,E @@@,D@@,C@@,B A@  @@@,A @@@,@@@,?@@,> A@  @@@, @@@,@@,~@@,} A@  @@@,| @@@,{@@,z@@,y A@  @@@,x @@@,w@@,v@@,u A@ @@@, @@@,@@,@@, A@  @@@,% @@@,$@@,#@@," A@  @@@,! @@@, @@,@@, A@  @@@, @@@,@@,@@, A@ @@@,- @@@,,@@,+@@,* A@  @@@,5 @@@,4@@,3@@,2 A@  @@@,1 @@@,0@@,/@@,. A@  @@@,) @@@,(@@,'@@,& A@ @@@,M @@@,L@@,K@@,J A@  @@@,Z @@@,Y@@,X@@,W A@  @@@,Q @@@,P@@,O@@,N A@  @@@,I @@@,H@@,G@@,F A@ @@@,b @@@,a@@,`@@,_ A@  @@@,j @@@,i@@,h@@,g A@  @@@,f @@@,e@@,d@@,c A@ | {@@@,^ z@@@,]@@,\@@,[ wA@ t s r@@@,V@@@,U q@@@,T@@,S@@,R<@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@,@, n@@@,@@@ U@A3@ @A@AB ڰ@A@ @A@A ˰@A@ Q@A@ABC @A@ k@A@A @A@B z@AP@CD @A^@ @@A.@A V@A<@ @Aq@AB L@A@ '@A@ @A7@AB ?@A@ ư@AH@A @Ao@ ߰@AY@A @Ag@BCDEF @A@ @A@ @A @AB 0@A.@ G@A=@AC @A@ @A@A .@A@BDG;@@@,@ D@ A C@ :A@ 7 6@@@-* 5@@@-)@@-(@@-' 2A@ / .@@@-  -@@@-@@-@@- *A@ ' &@@@-@ % $@@@- #@@@-@@- @@- @@-  A@  @@@-&@  @@@-% @@@-$@@-#@@-"@@-! A@  @@@-  @@@- @@-@@- A@  @@@, @@@,@@,@@, A@  @@@, @@@,@@,@@, A@  @@@, @@@,@@,@@, A@  @@@, @@@,@@,@@, A@  @@@, @@@,@@,@@, A@  @@@- @@@-@@-@@- A@  @@@- @@@-@@-@@- A@  @@@- @@@-@@-@@- A@ @@@, @@@,@@,@@, A@  @@@, @@@,@@,@@, A@  @@@, @@@,@@,@@, A@  @@@, @@@,@@,@@, A@ @@@, @@@,@@,@@, A@  @@@, @@@,@@,@@, A@  @@@, @@@,@@,@@, A@  @@@, @@@,@@,@@, A@ @@@, @@@,@@,@@, A@  @@@, @@@,@@,@@, A@ ~ }@@@, |@@@,@@,@@, yA@ v u@@@, t@@@,@@,@@, qA@ n@@@, m@@@,@@,@@, jA@ g f@@@- e@@@-@@-@@- bA@ _ ^@@@- ]@@@-@@-@@, ZA@ W V@@@, U@@@,@@,@@, RA@ O N M@@@,@@@, L@@@,@@,@@,@-I@-H@-G@-F@-E@-D@-C@-B@-A@-@@-?@->@-=@-<@-;@-:@-9@-8@-7@-6@-5@-4@-3@-2@-1@-0@-/@-.@--@-, I@@-+@@ 0@A3@ w@A@AB @A@ @A@A @A@ ,@A@ABC j@A@ F@A@A \@A@B U@AP@CD k@A^@ @A.@A 1@A<@ @Aq@AB '@A@ @A@ @A7@AB @A@ @AH@A ߰@Ao@ @AY@A а@Ag@BCDEF @A@ հ@A@ @A @AB @A.@ "@A=@AC @A@ @A@A @A@BDG@ @ 8@@@AA@  @@@- @@@-@@-@@-A@@@@-@@@-@@-@@-A@  @@@-@  @@@- @@@-@@-@@-@@- A@  @@@-@  @@@- @@@-@@-@@-@@- A@  @@@- @@@-@@-@@- A@  @@@- @@@-@@-@@- A@  @@@- @@@-@@-@@- A@  @@@- @@@-@@-@@- A@  @@@- @@@-@@-@@- A@  @@@- @@@-@@-@@- A@  @@@- @@@-@@-@@- A@  @@@- @@@-@@-@@- A@  @@@- @@@-@@-@@- A@ @@@- @@@-@@-@@- A@  @@@- @@@-@@-@@- A@  @@@- @@@-@@-@@- A@  @@@- @@@-@@-@@- A@ @@@- @@@-@@-@@- ~A@ { z@@@- y@@@-@@-@@- vA@ s r@@@- q@@@-@@-@@- nA@ k j@@@- i@@@-@@-@@- fA@ c@@@- b@@@-@@-@@- _A@ \ [@@@- Z@@@-@@-@@- WA@ T S@@@- R@@@-@@-@@- OA@ L K@@@- J@@@-@@-@@-~ GA@ D@@@-} C@@@-|@@-{@@-z @A@ = <@@@-y ;@@@-x@@-w@@-v 8A@ 5 4@@@-u 3@@@-t@@-s@@-r 0A@ - ,@@@-q +@@@-p@@-o@@-n (A@ % $ #@@@-m@@@-l "@@@-k@@-j@@-iZ@-h@-g@-f@-e@-d@-c@-b@-a@-`@-_@-^@-]@-\@-[@-Z@-Y@-X@-W@-V@-U@-T@-S@-R@-Q@-P@-O@-N@-M@-L@-KY^@@-J@@@@ @@@ 8@@@AA@@@@.@@@.@@.@@.YA@VU@@@.~T@@@.}@@.|@@.{A@@@@.z@@@.y@@.x@@.wA@@@@.v@@@.u@@.t@@.sA@@@@.r@@@.q@@.p@@.o:A@76@@@.n5@@@.m@@.l@@.kA@@@@.j@@@.i@@.h@@.ghA@ed@@@.fc@@@.e@@.d@@.cA@@@@.b@@@.a@@.`@@._A@@@@.^@@@.]@@.\@@.[A@@@@.Z@@@.Y@@.X@@.WjA@gf@@@.Ve@@@.U@@.T@@.SA@@@@.R@@@.Q@@.P@@.OOA@LK@@@.NJ@@@.M@@.L@@.KA@@@@.J@@@.I@@.H@@.G}A@zy@@@.Fx@@@.E@@.D@@.CA@   @@@.B@@@.A@@@.@@@.?@@.>A@@@@.=@@@.<@@.;@@.:AA@>=@@@.9<@@@.8@@.7@@.6A@@@@.5@@@.4@@.3@@.2oA@lk@@@.1j@@@.0@@./@@..A@@@@.-@@@.,@@.+@@.*dA@a`@@@.)_@@@.(@@.'@@.&A@@@@.%@@@@.$@@@.#@@."@@.!@@. A@@@@.@@@.@@.@@.A@@@@.@@@.@@.@@. A@@@@.@@@.@@.@@.A@@@@.@@@.@@.@@.A@@@@.@@@@.@@@. @@. @@. @@. /A@,+@@@. *@@@.@@.@@.@@.@.@.@.@.@.@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@@-@@@@M@@@J@AC0oooooooo@@Aoo@@mᐠ # Scanning of collected information oo@@@@@@@o@@#Dep.ko o @@Б6kernel_deps_of_modules,o o @б@гoq$listo o @г=(t_module&Moduleo o @@ @@@.0oooooooo@@A@A@A@A@@PCp@A@@@'@@@.$@@гoa$unitp p  @@ @@@.@@@@@."(@@@p  @nK m Modify the module dependencies of the given list of modules, to get the minimum transitivity kernel. p p a@@@@@@@p7@@5-deps_of_types-p+p,@б&kernelгp$boolp8p9@@ @@@.0p:p9p9p:p:p:p:p:@Pr.@A@@б@гoޠ$listpIpJ@гWN&t_type$TypepV pW@@ @@@.@@@@@@.# @@гo$listph;pi?@ВгWp&t_type$Typepxpy)@@ @@@.@@@гp$listp4p8@гc!t$Namep-p3@@ @@@.[@@@@@@.` @@@' @@.e+p9@@@C @@@.kpA@@@P@@.oWD@@Bx@@@. @@.vpL@@ @pO@n  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]. p p@@@@@@@p@^@@@@@0pppppppp@@A0pppppppp@@App@E@@o > Computation of dependencies. pp@@@@@@@p  @@p; {1 Some global variables} pGGpGg@@@@@@0pppppppp@4@*@D@@'q@A &Global:lqipqiv@@Б&errors/qq@гo#refqq@гpΠ#intq$q%@@ @@@.0q&q%q%q&q&q&q&q&@8@A@@@@@@. @@@q2@@qI@@@ *warn_error0q=q>@гp#refqFqG@гq$boolqPqQ@@ @@@.0qRqQqQqRqRqRqRqR@eJ'@A@@@ @@@. @@@q_@@qv@@@ (out_file1qjqk @гp=#refqsqt@гpڠ&stringq}q~@@ @@@.0qq~q~qqqqq@.K'@A@@@ @@@. @@@q@oĐ ; The file used by the generators outputting only one file. qq@@@@@@@q@(@'verbose2q;Cq;J@гpw#refq;Rq;U@гq$boolq;Mq;Q@@ @@@.0qqqqqqqq@;X4@A@@@ @@@. @@@q;?@o6 Verbose mode or not. qq:@@@@@@@q@(@*target_dir3q!q!@гp#refq!q!@гqN&stringq!q!@@ @@@.0qqqqqqqq@;X4@A@@@ @@@. @@@r!@p8 1 The directory where files have to be generated. r  W[r  W@@@@@@@r$@(@%title4r$r$@гp#refr!$r"$@гq&optionr+$r,$@гq&stringr5$r6$@@ @@@.0r7r6r6r7r7r7r7r7@Eb>@A@@@ @@@. @@@(@@@. %@@@rI$(@p ; The optional title to use in the generated documentation. rU#rV#@@@@@@@rm@7@*intro_file5ra'airb'as@гq4#refrj'ark'a@гq蠐&optionrt'a}ru'a@гq۠&stringr~'avr'a|@@ @@@.0rrrrrrrr@Jq>@A@@@ @@@. @@@(@@@. %@@@r'ae(@pʐ < The optional file whose content can be used as intro text. r&r&`@@@@@@@r@7@(with_toc6r*r*@гq}#refr*r*@гr$boolr*r*@@ @@@.0rrrrrrrr@@g4@A@@@ @@@. @@@r*@q C The flag which indicates if we must generate a table of contents. r)r)@@@@@@@r@(@*with_index7r-5=r-5G@гq#refr-5Or-5R@гrƠ$boolr-5Jr-5N@@ @@@.0rrrrrrrr@;X4@A@@@ @@@. @@@s-59@q> 8 The flag which indicates if we must generate an index. s,s,4@@@@@@@s*@(@+with_header8s0s0@гq#refs'0s(0@гs$bools10s20@@ @@@.0s3s2s2s3s3s3s3s3@;X4@A@@@ @@@. @@@s@0@qx 7 The flag which indicates if we must generate a header.sL/TXsM/T@@@@@@@sd@(@,with_trailer9sX3sY3 @гr+#refsa3sb3@гs:$boolsk3sl3@@ @@@.0smslslsmsmsmsmsm@;X4@A@@@ @@@. @@@sz3@q 8 The flag which indicates if we must generate a trailer.s2s2@@@@@@@s@(@@\@U1@*@@@O@;@@@`@L(@@0ssssssss@1N*@Asy{s4@@@sii@@-analyse_filesYs9s9@б-merge_optionsгsS$lists:s:@гr,merge_option*Odoc_typess:s:@@ @@@.0ssssssss@@@{@tP@<@@@R@>@@@r@@@Dt@A! @@@5"@@@. &2@@б,include_dirsгs$lists; $s; (@гsc&stringt; t; #@@ @@@.;@@@@@@.@ @@б&labelsгs렐$boolt<,<t<,@@@ @@@.Q@@б,sort_modulesгs$boolt-=D\t.=D`@@ @@@.b@@б'no_stopгt $boolt>>dyt?>d}@@ @@@.s@@б$initгs䠐$listtO?tP?@гAY(t_module+Odoc_modulet\?t]?@@ @@@.@@@@@@. @@б@гt$listtp@tq@@г+Odoc_global+source_file+Odoc_globalt@t@@@@@@/T@@@@@@/V @@гt&$listtAtA @гB(t_module&ModuletAtA@@ @@@/WӰ@@@@@@/Yذ @@@&@@/Z۰-@@hFO@@@/[ @@/\t?"@@Fy@@@/]@@/^t>dp*@@F@@@/_@@/`t=DN2@@F@@@/a@@/bt<,4:@@F@@@/c@@/dt; B@@!F@@@/e@@/f t:J@@ @t9M@s 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. t6t8@@@@@@@u@\@,dump_modulesZtE^btE^n@б@гt^&stringuE^quE^w@@ @@@/g0uuuuuuuu@7[,@A@@б@гt$listuE^uE^@гB(t_module+Odoc_moduleuE^{u E^@@ @@@/h@@@@@@/j# @@гt$unitu1E^u2E^@@ @@@/k0@@@@@/l3@@@9@@/m6< @@@u?E^^@sw M Dump of a list of modules into a file. @raise Failure if an error occurs.uKC  uLD6]@@@@@@@uc@@I,load_modules[uWIuXI@б@гt&stringubIucI @@ @@@/n0uducucududududud@bw,@A@@гu$listuqI#urI'@гB{(t_module+Odoc_moduleu~IuI"@@ @@@/o@@@@@@/q! @@@'@@/r$*@@@uI@sƐ M Load of a list of modules from a file. @raise Failure if an error occurs.uGuH@@@@@@@u@,@7@tft`A@srs-B@snhB@nFn@A@mmB@mcm]A@mmA@llA@l}lwA@iiA@hh@h@ffff@@f@cqclc_b@@cY@_!__^z@@_ @\\\\l@@\@UUUT@@U@QQQQ@@Q@CCCC}@@C@****V@@*S*.@*)@))@)u)K@)7(@((@((W@(C( @''@''C@'/'@&&@&&@&{&B@&;&@%%@%%@%%W@%C%@$$@$$~@$j$C@$/#@##_@#K"@""@""a@"M"#@"!@!!@!!l@!X!4@!  @  @ | <@ ( @@@wP@<@@@@@@zm*@@g@ZUH.@@*@@@@@P@<@@@0v-v,v,v-v-v-v-v-@@A@ H************************************************************************v6A@@v7A@L@ H v* Location of elements in implementation and interface files. j:* implementation location j͠5* interface location j4* A dummy location. j #* Representation of element names. h=* Access to the simple name. i <* [concat t1 t2] returns the concatenation of [t1] and [t2].ia z* Return the depth of the name, i.e. the number of levels to the root. Example : [depth "Toto.Tutu.name"] = [3]. i' F* Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 or else n2. h۠ Q* Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 and n1<>"" or else n2. h C* Return the name of the 'father' (like [dirname] for a file name).hU S* Representation and manipulation of method / function / class / module parameters.d֠,* {1 Types} h ,* Representation of a simple parameter name g * Representation of parameter names. We need it to represent parameter names in tuples. The value [Tuple ([], t)] stands for an anonymous parameter.g #* A parameter is just a param_info.f0* {1 Functions} f P* Access to the name as a string. For tuples, parentheses and commas are added. fJ?* Access to the complete type. f _* Access to the list of names ; only one for a simple parameter, or a list for a tuple. eĠ {* Access to the description of a specific name. @raise Not_found if no description is associated to the given name. ei m* Access to the type of a specific name. @raise Not_found if no type is associated to the given name. e 1* Representation and manipulation of extensions. ` k* Used when the extension is a rebind of another extension, when we have [extension Xt = Target_xt].d' -* The complete name of the target extension. db '* The target extension, if we found it.dE ,* the optional return type of the extension c 1* the type extension containing this constructor cq -* [None] when the extension is not a rebind. cV<* optional user description c+ 8* Information found in the optional associated comment. bR<* The type of the extension b: '* Access to the extensions in a group. `⠠ 1* Representation and manipulation of exceptions. ^y k* Used when the exception is a rebind of another exception, when we have [exception Ex = Target_ex].`U -* The complete name of the target exception. ` '* The target exception, if we found it.`u 8* Information found in the optional associated comment. _ɠ -* The optional return type of the exception. _ -* [None] when the exception is not a rebind. _ +* Representation and manipulation of types.W &* Description of a record type field. ]5* Name of the field. ^ 5* [true] if mutable. ]5* Type of the field. ]۠ 1* Optional description in the associated comment.] -* Description of a variant type constructor. \;* Name of the constructor. \ 2* Optional description in the associated comment. \G?* The various kinds of a type. [8 ** Type is abstract, for example [type t]. [/* constructors [)* fields [n/* Type is open [[<* optional user description Z /* Type manifest directly taken from Typedtree. Z<* Representation of a type. XѠ=* Complete name of the type. Y 8* Information found in the optional associated comment. Y| 4* type parameters: (type, covariant, contravariant) YR-* Type kind. Y<:* Private or public type. Y& Q* Representation and manipulation of values, class attributes and class methods. S٠=* Representation of a value. V㠠>* Complete name of the value. W 8* Information found in the optional associated comment. W5* Type of the value. Wi $* [true] if the value is recursive. WS:* The parameters, if any. W6 E* The code of the value, if we had the only the implementation file. W '* Representation of a class attribute. U >* an attribute has almost all the same information as a value V &* [true] if the attribute is mutable. U &* [true] if the attribute is virtual. Uڠ $* Representation of a class method. U :* a method has almost all the same information as a value US "* [true] if the method is private.U= #* [true] if the method is virtual. U' K* Return [true] if the value is a function, i.e. it has a functional type. T C* Access to the description associated to the given parameter name.T, =* Representation and manipulation of classes and class types.F,* {1 Types} S ,* To keep the order of elements in a class. S :* Used when we can reference a t_class or a t_class_type. R "* Class type and type parameters. S (* Complete name of the inherited class. Q ** The associated t_class or t_class_type. Qߠ '* The inheritance description, if any. QĠ ** The complete name of the applied class. QE )* The associated t_class if we found it. Q* 3* The type of expressions the class is applied to. Q !* The code of these expressions. P ** The complete name of the applied class. PV 5* The associated class or class type if we found it. P; /* The type parameters of the class, if needed. P E* An explicit class structure, used in implementation and interface. O =* Application/alias of a class, used in implementation only. Ow * 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] O_ (* A class definition with a constraint. OC=* Representation of a class. R>* Complete name of the class. N 8* Information found in the optional associated comment. N5* Type of the class. Ny3* Type parameters. N\ $* [true] when the class is virtual. NF * The way the class is defined. N0?* The parameters of the class. N ** Complete name of the target class type. M 5* The target t_class or t_class_type, if we found it.M ,* The type parameters. FIXME : use strings? L栠 0* A class type eventually applied to type args. LJ "* Representation of a class type. R=* Complete name of the type. Kݠ 8* Information found in the optional associated comment. K 3* Type parameters. K &* [true] if the class type is virtual K %* The way the class type is defined. Kk0* {1 Functions} J %* Access to the elements of a class. J< ** Access to the list of class attributes. Iנ J* Access to the description associated to the given class parameter name. I| $* Access to the methods of a class. I %* Access to the comments of a class. H ** Access to the elements of a class type. HS /* Access to the list of class type attributes. G O* Access to the description associated to the given class type parameter name. G )* Access to the methods of a class type. G. ** Access to the comments of a class type. F̠ ?* Representation and manipulation of modules and module types. -,* {1 Types} Fs -* To keep the order of elements in a module. E 9* Used where we can reference t_module or t_module_type. EL (* Complete name of the included module. C 6* The included module or module type, if we found it. C{ 0* comment associated with the include directive C^ &* Complete name of the target module. Bݠ ;* The real module or module type if we could associate it. B +* the name Ba+* the type BD4* the original code B. "* the way the parameter was built B?* Different kinds of a module. E'?* A complete module structure. A 8* Complete name and corresponding module if we found it Ax ?* A functor, with its parameter and the rest of its definition A[ 0* A module defined by application of a functor. A> o* A module whose type is a with ... constraint. Should appear in interface files only. A! (* A module constraint by a module type. A 0* by now only the code of the module expression @젠 /* code of the expression and module type alias @Р>* Representation of a module. E)?* Complete name of the module. ?䠠:* The type of the module. ?̠ 8* Information found in the optional associated comment. ? /* [true] for modules read from interface files ? %* The file the module is defined in. ? !* The way the module is defined. ?o 5* The toplevels module names this module depends on. ?F?* The whole code of the module ?+ 0* The whole code of the interface of the module ? .* [true] if the module comes from a text file > +* Complete name of the target module type. =Ϡ 1* The real module type if we could associate it. = "* Different kinds of module type. E'?* A complete module signature. =O ?* A functor, with its parameter and the rest of its definition =2 D* Complete alias name and corresponding module type if we found it. = <* The module type kind and the code of the with constraint. < 0* by now only the code of the module expression <栠 #* Representation of a module type. E $* Complete name of the module type. * {2 Miscellaneous functions} (  * Return the first sentence (until the first dot followed by a blank or the first blank line) of a text. Don't stop in the middle of [Code], [CodePre], [Verbatim], [List], [Enum], [Latex], [Link], [Ref], [Subscript] or [Superscript]. ( * Return the first sentence (until the first dot followed by a blank or the first blank line) of a text, and the remaining text after. Don't stop in the middle of [Code], [CodePre], [Verbatim], [List], [Enum], [Latex], [Link], [Ref], [Subscript] or [Superscript].(: 5* Return the given [text] without any title or list. ( \* [concat sep l] concats the given list of text [l], each separated with the text [sep]. ' c* Return the list of titles in a [text]. A title is a title level, an optional label and a text.' 6* Take a sorted list of elements, a function to get the name of an element and return the list of list of elements, where each list group elements beginning by the same letter. Since the original list is sorted, elements whose name does not begin with a letter should be in the first returned list.& * Take a type and remove the option top constructor. This is useful when printing labels, we then remove the top option constructor for optional labels.&b /* Return [true] if the given label is optional.&# Z* Return the label name for the given label, i.e. removes the beginning '?' if present.%栠 * Return the given name where the module name or part of it was removed, according to the list of modules which must be hidden (cf {!Odoc_args.hidden_modules})% ;* Print the given string if the verbose mode is activated. %l y* Print a warning message to stderr. If warnings must be treated as errors, then the error counter is incremented. %2 G* A flag to indicate whether ocamldoc warnings must be printed or not. $ * Increment this counter when an error is encountered. The ocamldoc tool will print the number of errors encountered exit with code 1 if this number is greater than 0. $Ġ )* Apply a function to an optional value. $Y * 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. #̠ * [text_string_of_text text] returns the string representing the given [text]. This string can then be parsed again by {!Odoc_info.text_of_string}.# * [info_of_string s] parses the given string like a regular ocamldoc comment and return an {!Odoc_info.info} structure. @return an empty structure if there was a syntax error. TODO: change this #X * [info_string_of_info info] returns the string representing the given [info]. This string can then be parsed again by {!Odoc_info.info_of_string}.# C* [info_of_comment_file file] parses the given file and return an {!Odoc_info.info} structure. The content of the file must have the same syntax as the content of a special comment. The given module list is used for cross reference. @raise Failure if the file could not be opened or there is a syntax error. " M* [remove_ending_newline s] returns [s] without the optional ending newline. "7* Research in elements Š ** The type representing a research result. G K* Research of the elements whose name matches the given regular expression.Š <* A function to search all the values in a list of modules. g @* A function to search all the extensions in a list of modules.  @* A function to search all the exceptions in a list of modules.  ;* A function to search all the types in a list of modules. M 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. 3 A* A function to search all the class types in a list of modules. ՠ =* A function to search all the modules in a list of modules. w B* A function to search all the module types in a list of modules.  $* Scanning of collected information  q;* 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.M B* This method scans the constructors of the given type extension.  * Scan of a type extension. Should not be overridden. It calls [scan_type_extension_pre] and if [scan_type_extension_pre] returns [true], then it calls scan_type_extension_constructors.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. \ * 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..8* Scan of a class type. " )* 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.k3* Scan of modules. _ %* Scan of a comment inside a module. 2 * Override this method to perform controls on the module comment and form. This method is called before scanning the module elements. @return true if the module elements must be scanned. 6* This method scans the elements of the given module. ֠ * Scan of a module. Should not be overridden. It calls [scan_module_pre] and if [scan_module_pre] returns [true], then it calls scan_module_elements.8* Scan of module types.  ** Scan of a comment inside a module type. o * 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. A ;* 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. ?* 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. 7 =* The optional file whose content can be used as intro text.  D* The flag which indicates if we must generate a table of contents.  9* The flag which indicates if we must generate an index.  8* The flag which indicates if we must generate a header.L 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.V N* Load of a list of modules from a file. @raise Failure if an error occurs. @)../ocamlc)-nostdlib"-I)../stdlib"-I(../utils"-I*../parsing"-I)../typing"-I)../driver"-I+../bytecomp"-I+../toplevel"-I)../stdlib"-I/../compilerlibs"-I0../otherlibs/str"-I4../otherlibs/dynlink"-I;../otherlibs/dynlink/native"-I1../otherlibs/unix(-absname"-w8+a-4-9-41-42-44-45-48-70+-warn-error"+A,-safe-string0-strict-sequence/-strict-formats*-bin-annot*-principal"-czʐz N=jj@!r!q@%<%;@@P@