Caml1999I0374_(Odoc_sigӠ0Signature_search@#ele;@@@A@@@@@5ocamldoc/odoc_sig.mliU U@@@@@@A@#tab;@@@A&Stdlib'Hashtbl!t@@@Š%Types.signature_item@@@@@@@@@@$V%VL@@@@5A@A@%table@)signature@@@1@@@@@@9Z:Z@@JC@@,search_value@@@@@&stringQ@@@4)type_expr@@@@@@@@U_V_@@fD@@0search_extension@+@@@@@@@N5extension_constructor@@@@@@@@odlrpdl@@E@@+search_type@E@@@@6@@@h0type_declaration@@@@@@@@iX^iX@@F@@,search_class@_@@@@P@@@1class_declaration@@@@@@@@n < Bn < }@@G@@1search_class_type@y@@@@j@@@6class_type_declaration@@@@@@@@s , 2s , w@@H@@-search_module@@@@@@@@+module_type@@@@@@@@x  x  S@@I@@2search_module_type@@@@@@@@&optionL+module_type@@@@@@@@@@@}  }  I@@ J@@5search_attribute_type@$Vars#key@@@@/class_signature@@@)type_expr@@@@@@@@B  C  J@@*K@@2search_method_type@@@@@/class_signature@@@)type_expr@@@@@@@@6H  7I@@@GL@@@@:S;JAH@KM@@@.Info_retriever+all_special@@@@@ @@@@#intA@@@@$listK*Odoc_types$info@@@@@@@@@@@@@qReirS{@@N@@9blank_line_outside_simple@3@@@@9@@@$boolE@@@@@@@@VW9@@O@@2just_after_special@N@@@@T@@@@K@@@@G$info@@@@@@@@@@@@@]ae^~@@P@@-first_special@x@@@@~@@@@u@@@@q$info@@@@@@@@@@@@@de@@Q@@,get_comments@@$text@@@!a@@@@@@@@@@@@$info@@@@@@@%@@@@@@@@@@@@kCGlZ@@*R@@@@Mn@.S@@.analyze_alerts@=$info@@@@@@@)Parsetree*attributes@@@R$info@@@@@@@@@@@HpIq@@YV@@Ӡ(Analyser@@$fileN#ref@@@@@@@ey &fy ;@@vW@@)file_namea#ref*@@@@@@@x|ioy|i@@X@@2get_string_of_file@)@@@@/@@@D@@@@@@@@||@@Y@@,prepare_file@S@@@ @Y@@@!$unitF@@@"@@#@@$@#)#T@@Z@@(preamble@n@@@%@t@@@&@@!a@)(Location!t@@@'@@(@q@@@*@@@@-@~$info@@@+@@@,@@.@@/@@0@@1@@2@.@@[@@5get_comments_in_class@@@@3@@@@4@$info@@@7@@@8@*Odoc_class-class_element@@@5@@@6@@9@@:@@;@ ou!@@1\@@6get_comments_in_module@@@@<@@@@=@N$info@@@@@@@A@+Odoc_module.module_element@@@>@@@?@@B@@C@@D@S!'TR@@d]@@;name_comment_from_type_decl@@@@E@ @@@F@50type_declaration@@@G@@@@M@@9@@@J@$$info@@@H@@@I@@K@@@L@@N@@O@@P@@Q@ @@^@@2manifest_structure@(Odoc_env#env@@@R@G@h@@@U@̠S$info@@@S@@@T@@V@@@W@)type_expr@@@X)Odoc_type-type_manifest@@@Y@@Z@@[@@\@U@@_@@-get_type_kind@?#env@@@]@@@@@`@ $info@@@^@@@_@@a@@@b@.type_decl_kind@@@c=)type_kind@@@d@@e@@f@@g@   h @@`@@-get_cstr_args@z#env@@@h@@@@i@)Typedtree5constructor_arguments@@@jd0constructor_args@@@k@@l@@m@@n@5!s!y6!!@@Fd@@+merge_infos@U$info@@@o@@@p@b$info@@@q@@@rm$info@@@s@@@t@@u@@v@c"2"8d""@@te@@8analyse_module_type_kind&erased)Odoc_name#Map!tР'Removed@+Constrained(Y/with_constraint@@@w@@@x@@@yA@@@z@@@{@@@|@#env@@@}@-!t@@@~@u+module_type@@@@+module_type@@@n0module_type_kind@@@@@@@@@@@@@@##$$/@@f@@7analyse_class_type_kind@*#env@@@@\!t@@@@@@@@*class_type@@@@*class_type@@@/class_type_kind@@@@@@@@@@@@@@$$%%?@@g@@1analyse_signature@@@@@@@@@)signature@@@@)signature@@@(t_module@@@@@@@@@@@@&&&'#@@/h@@@@"u#'$'+@3i@@@@ (Odoc_sig0~ L *9ŀ`(Warnings0mJɒkgrs-Stdlib__Uchar056uf4[_+Stdlib__Sys0 -ռ鱦s5/.Stdlib__String0@ӽX4Id(Odoc_env0*"z1+W*Odoc_class0_"#C{$Misc0ob]6>Vê>)Longident0s `7mɕc(Location0a7cK_H%9)Load_path0I@18 ~,Identifiable0 {d\FX'`%Ident0">WA+9*X*Format_doc0]mWϓ:Mݠ#Env0zV L{YWI*Data_types0I'Ue`wq]Ѡ*Cmi_format0c˯7͗ԩmݠ0CamlinternalLazy0&͂7 Pˆ8CamlinternalFormatBasics0%FU(Q/Tu5Build_path_prefix_map0z HkGs(Asttypes0>n{T8cئ@@@Caml1999T037flbZ2C(Odoc_sig*ocaml.text&_none_@@A c The module for analysing a signature and source code and creating modules, classes, ..., elements.5ocamldoc/odoc_sig.mliP77P7@@@@@@3@@@@@@#intA;@@@A@@@@@:@A@$charB;@@A@@@@@>@A@&stringQ;@@ A@@@@@B@@@%bytesC;@@ A@@@@@F@@@%floatD;@@A@@@@@J@@@$boolE;@@%falsec@@T@$trued@@Z@@@A@@@@@[@A@$unitF;@@"()e@@e@@@A@@@@@f@A@ #exnG;@@@A@@@@@j@@@#effH;@@O@A@A@@@@@@s@@@,continuationI;@@Q@@P@B@A@nY@@@@@@@@@%arrayJ;@@R@A@A@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@A@@@@@@@@%int32N;@@A@@@@@@@@%int64O;@@A@@@@@@@@&lazy_tP;@@X@AJA@Y@@@@@@@@5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@A[A@Y@@@@@@@@*atomic_locU;@@Z@AdA@@@@@@@@@.Assert_failure`#@@@@@J@@@@@@@@[@@A=ocaml.warn_on_literal_pattern @ @0Division_by_zero]#@@@A  @+End_of_file\#$@@@A@'FailureY#,@'@@A!$$@0Invalid_argumentX#5@0@@A*$-#-@-Match_failureV#>@@=@9@;@@a@@A;5>4>@)Not_foundZ#O@@@AC=F<F@-Out_of_memoryW#W@@@AKENDN@.Stack_overflow^#_@@@ASMVLV@.Sys_blocked_io_#g@@@A[U^T^@)Sys_error[#o@j@@Ad^g]g@:Undefined_recursive_modulea#x@@w@s@u@@h@@Auoxnx@:Continuation_already_takenb#@@@A}wv@&Stdlib@Ax0Signature_searchASS@M@@БA+#eleBUU@@;@@@A@@@@@U @@@@@@@@A@@@3@@A@A+#tabCV!V$@@;@@A6'Hashtbl!t$@@@%Types.signature_item@@@ @@@ @@@@VVL@@@@A@@@AгVCVJ@VK@@г!#eleV(V+@@)3@MG;;@@@AC@@@ l@@@@@'@@@$@A@@г2%TypesV-V2@7V3VA@@@A@@@NV'9@@;@@3@@A<;@%tableѠZZ@б@гR)signature%TypesZZ@ ZZ@@@@@@ z3@C}w@A @@г#tab#Z$Z@@ @@@ {@@@@@ |@@@.Z @)ocaml.doc@ e Create a table from a signature. This table is used by some of the search functions below. =XNT>Y@@@@@@@VC@@@Q@@@@@@3,search_valueҠT_U_@б@г#tab__`_@@ @@@ }3a``aaaaa@Lj:@A@@б@г:&stringp_q_@@ @@@ ~@@г)type_expr%Types__@ __@@@@@@ ' @@@@@ * @@@0@@ -3 @@@_@f This function returns the type expression for the value whose name is given, in the given signature. @raise Not_found if error.\^a@@@@@@@D@@@v@@@@@@L0search_extensionӠdlvdl@б@г!#tabdldl@@ @@@ 3@ez8@A@@б@г&stringdldl@@ @@@ @@г(5extension_constructor%Typesdldl@ dldl@@@@@@ ' @@@@@ * @@@0@@ -3 @@@dlr@ʐ This function returns the Types.extension_constructor for the extension whose name is given, in the given table. @raise Not_found if error.acFk@@@@@@@E@@@@@@@@@L+search_typeԠiXbiXm@б@г#tab'iXp(iXs@@ @@@ 3)(()))))@ez8@A@@б@г&string8iXw9iX}@@ @@@ @@г0type_declaration%TypesIiXJiX@ MiXNiX@@@@@@ ' @@@@@ * @@@0@@ -3 @@@\iX^@. This function returns the Types.type_declaration for the type whose name is given, in the given table. @raise Not_found if error.ifjh2W@@@@@@@F@@@>}@@@@@@L,search_classՠn < Fn < R@б@г預#tabn < Un < X@@ @@@ 3@ez8@A@@б@гf&stringn < \n < b@@ @@@ @@г1class_declaration%Typesn < fn < k@ n < ln < }@@@@@@ ' @@@@@ * @@@0@@ -3 @@@n < B@ This function returns the Types.class_declaration for the class whose name is given, in the given table. @raise Not_found if error.km  ;@@@@@@@G@@@ᐠ@@@@@@L1search_class_type֠s , 6s , G@б@гM#tabs , Js , M@@ @@@ 3@ez8@A@@б@гʠ&strings , Qs , W@@ @@@ @@гT6class_type_declaration%Typess , [s , `@ s , as , w@@@@@@ ' @@@@@ * @@@0@@ -3 @@@$s , 2@ This function returns the Types.class_type_declaration for the class type whose name is given, in the given table. @raise Not_found if error.1p  2r  +@@@@@@@JH@@@E@@@@@@L-search_moduleנHx  !Ix  .@б@г#tabSx  1Tx  4@@ @@@ 3UTTUUUUU@ez8@A@@б@г.&stringdx  8ex  >@@ @@@ @@г+module_type%Typesux  Bvx  G@ yx  Hzx  S@@@@@@ ' @@@@@ * @@@0@@ -3 @@@x  @Z This function returns the Types.module_type for the module whose name is given, in the given table. @raise Not_found if error.u y w  @@@@@@@I@@@j@@@@@@L2search_module_typeؠ}  }  @б@г#tab}  }  #@@ @@@ 3@ez8@A@@б@г&string}  '}  -@@ @@@ @@г4&option}  C}  I@г&+module_type%Types}  1}  6@ }  7}  B@@@@@@ 1 @@@ @@@ 6@@@+@@ 9. @@@?@@ <B#@@@}  &@͐ This function returns the optional Types.module_type for the module type whose name is given, in the given table. @raise Not_found if error.z U [ |  @@@@@@@!J@@6@@@@@@@[5search_attribute_typeB   B  @б@гr$Vars#key%Types2C  3C  @ 6C  7C  @@;C  <C  @ @@@@@3>==>>>>>@J@A@@б@г/class_signature%TypesQC  "RC  '@ UC  (VC  7@@@@@@ @@г)type_expr%TypesgC  ;hC  @@ kC  AlC  J@@@@@@0 @@@@@3$ @@@9@@6F @@@zB  @L This function returns the Types.type_expr for the given val name in the given class signature. @raise Not_found if error. K QA  @@@@@@@K@@@\@@@@@@U2search_method_typeH  H @б@гs&stringII@@ @@@3@n8@A@@б@г/class_signature%TypesII@ II-@@@@@@ @@г)type_expr%TypesI1I6@ I7I@@@@@@@ 0 @@@@@ 3$ @@@9@@ 6< @@@H  @ This function returns the Types.type_expr for the given method name in the given class signature. @raise Not_found if error.E L QG  @@@@@@@ L@@@@@@@@@U@ysA@icA@ @y@Y@@S@3@@o@@6@@3@n8@AT JAH@@1 > The functions used to retrieve information from a signature. .R/R@@@@@@@1S@/@.Info_retriever!D;M<M@TS@Б+all_specialJRemKRex@б@г&stringUS{VS{@@ @@@ 3WVVWWWWW@V@A@A@h8@@r@R@@L@,@y@Y@@@GTS@SS@@@S@S@P@A,+@@б@гT&stringS{S{@@ @@@ 5@@В@гn#intS{S{@@ @@@F@@@г&$listS{S{@г*Odoc_types$info*Odoc_typesS{S{@ S{S{@@@@@@j @@@"@@@o@@@@1@ @@v6&@@@G @@yJ)@@@@@|,@@@Rei/@ Return the couple [(n, list)] where [n] is the number of characters read to retrieve [list], which is the list of special comments found in the string. OQ2d@@@@@@@N@@?@@@@@@@9blank_line_outside_simpleVV@б@гҠ&stringW! W'@@ @@@3        @8@A@@б@г㠐&stringW+W1@@ @@@@@г䠐$bool&W5'W9@@ @@@@@@@@!@@@'@@$* @@@4V@ 8 Return true if the given string contains a blank line. AUBU@@@@@@@ZO@@@U@@@@@@C2just_after_specialX]aiY]a{@б@г-&stringc^~d^~@@ @@@3eddeeeee@\q8@A@@б@г>&stringt^~u^~@@ @@@@@В@гX#int^~^~@@ @@@"@@@г&option^~^~@г$info*Odoc_types^~^~@ ^~^~@@@@@@D @@@ @@@I@@@@/@ @@P4$@@@E @@SH^~@@@Z@@W]@@@]ae@  [just_after_special file str] return the pair ([length], [info_opt]) where [info_opt] is the first optional special comment found in [str], without any blank line before. [length] is the number of chars from the beginning of [str] to the end of the special comment. Y;>\`@@@@@@@P@@@㐠@@@@@@v-first_specialdd@б@г&stringee@@ @@@3@8@A@@б@г̠&stringee@@ @@@@@В@г栐#intee@@ @@@"@@@г&option"e#e @гx$info*Odoc_types0e1e@ 4e5e@@@@@@D @@@ @@@I@@@@/@ @@P4$@@@E @@SHJe@@@Z@@W]@@@Pd@" [first_special file str] return the pair ([length], [info_opt]) where [info_opt] is the first optional special comment found in [str]. [length] is the number of chars from the beginning of [str] to the end of the special comment. ]`^c@@@@@@@vQ@@@2q@@@@@@v,get_comments tkCKukCW@б@б@г$text*Odoc_typeslZclZm@ lZnlZr@@@@@@3@C@A @@А!a@D@ lZvlZx@@@ @@@@б@гs&stringlZ}lZ@@ @@@@@б@г&stringlZlZ@@ @@@.@@В@г(&optionlZlZ@г$info*Odoc_typeslZlZ@ lZlZ@@@@@@R @@@ @@@W@@@гl$listlZlZ@А!aaglZlZ@@@g@@@n @@@@ @ @@u.@@@M @@xP lZ@@@`@@|c@@@q@@ lZb@@@ kCG @䐠 ) Return a pair [(comment_opt, element_comment_list)], where [comment_opt] is the last special comment found in the given string and not followed by a blank line, and [element_comment_list] the list of values built from the other special comments found and the given function.  g j B@@@@@@@ 8R@@@ 3@@@@@@@Y@9@t@T@(@@3 5 4 4 5 5 5 5 5@*@A 3 8 7 7 8 8 8 8 8@@A =N >n@@ O A Functions to retrieve simple and special comments from strings.  LLJJ MLJ@@@@@@@ OM@3 M L L M M M M M@@A@.analyze_alertsp Zp [p@б@гĠ&option eq fq@г$info*Odoc_types sq tq@  wq xq@@@@@@3 z y y z z z z z@$H>@T@4@<@|@@]LK@KK@@@K@K@HY@A$@@@9 @@@)6@@б@г)Parsetree*attributes)Parsetree q q@  q q@@@@@@d8 @@г &option q q@г$info*Odoc_types q q@  q q@@@@@@eX @@@ @@@g]@@@+@@h`3 @@@I@@icn#@@@ p&@ q Parse alerts from attributes and update the info. Always returns [Some _] if the attributes contain alerts.  r sm@@@@@@@ V@@6@ @@@@@@(AnalyserE u u@ "i@@Т@@ Рܠ.Info_retriever v v@3        @;@A@@Б$fileq (y * )y .@г#ref 1y 8 2y ;@г &string ;y 1 <y 7@@ @@@j3 = < < = = = = =@&@A@@@@@@l @@@ Iy &@ R This variable is used to load a file as a string and retrieve characters from it. Vx Wx@@@@@@@ oW@@(@+ j@@@@@@%)file_namer m|is n|i|@г#ref v|i w|i@г J&string |i |i@@ @@@m3        @lc@@A@@@ @@@o @@@ |io@a The name of the analysed file.  {=C {=h@@@@@@@ X@@)@q @@@@@@&2get_string_of_files | |@б@г #int | |@@ @@@p3        @?\8@A@@б@г #int | |@@ @@@q@@г &string | |@@ @@@r@@@@@s!@@@'@@t$* @@@ |@ This function takes two indexes (start and end) and returns the string corresponding to the indexes in the file global variable. The function prepare_file must have been called to fill the file global variable. ~ ,{@@@@@@@ Y@@@ @@@@@@C,prepare_filet #- #9@б@г 㠐&string #< #B@@ @@@u3        @\q8@A@@б@г &string *#F +#L@@ @@@v@@г 䠐$unit 7#P 8#T@@ @@@w@@@@@x!@@@'@@y$* @@@ E#)@  f [prepare_file f input_f] sets [file_name] with [f] and loads the file [input_f] into [file]. R S"@@@@@@@ kZ@@@ ' f@@@@@@C(preamble i j@б@г >&string t u@@ @@@z3 v u u v v v v v@\q8@A@@б@г O&string  @@ @@@{@@б@б@А!a@F@|  @@г(Location!t(Location  @   @@@@@@8 @@@"@@; @@б@г :$list  @А!a2K  @@@8@@@R @@В@г #int  @@ @@@c@@@г E&option ( .@г<$info*Odoc_types  "@  # '@@@@@@ @@@ @@@@@@@/@ @@4$@@@F @@I'@@@^@@ +@@@@@.@@@@@1@@@ 4@ 쐠 _ [preamble f input_f loc ast ] retrieves the position and contents of the preamble for the file [f]: i.e, the first documentation comment before any elements in [ast]. If there is no such preamble, [0,None] is returned. The function [loc] is used to obtain the location of this first element of [ast]. 'V\ (@@@@@@@ @[@@D@  ;@@@@@@5get_comments_in_classѠ >oy ?o@б@г #int Io Jo@@ @@@3 K J J K K K K K@8@A@@б@г -#int Zo [o@@ @@@@@В@г ʠ&option k l@г$info*Odoc_types y z@  } ~@@@@@@5 @@@ @@@:@@@г $list  @г*Odoc_class-class_element*Odoc_class  @   @@@@@@^ @@@"@@@c@@@@2@ @@j@&@@@_ @@mb @@@t@@qw@@@ ou@ 3 The function used to get the comments in a class.  06 0n@@@@@@@ \@@@  㐠@@@@@@6get_comments_in_module  !+ !A@б@г Ġ#int !D !G@@ @@@3        @8@A@@б@г ՠ#int !K !N@@ @@@@@В@г r&option Rk Rq@гi$info*Odoc_types !R[ "Re@  %Rf &Rj@@@@@@5 @@@ @@@:@@@г $list :R ;R@г+Odoc_module.module_element+Odoc_module JRt KR@  NR OR@@@@@@^ @@@"@@@c@@@@2@ @@j@&@@@_ @@mb dR@@@t@@qw@@@ j!'@ < 4 The function used to get the comments in a module.  w x @@@@@@@ ]@@@ L @@@@@@;name_comment_from_type_decl   @б@г l#int  @@ @@@3        @8@A@@б@г }#int  @@ @@@@@б@г0type_declaration)Parsetree  @   @@@@@@) @@В@г #int  @@ @@@:@@@г ^$list   @В@г &string  @@ @@@W@@@г ^&option @гU$info*Odoc_types @ @@@@@@y @@@ @@@~@@@@/@ @@4$@@@I @@@)G@@@@Y@ @@^N@@@o @@wQ@@@@@T@@@@@W@@@<Z@   [name_comment_from_type_kind pos_end pos_limit type_kind]. This function takes a [Parsetree.type_kind] and returns the list of (name, optional comment) for the various fields/constructors of the type, or an empty list for an abstract type. [pos_end] is last char of the complete type definition. [pos_limit] is the position of the last char we could use to look for a comment, i.e. usually the beginning of the next element.IJF@@@@@@@b^@@j@ ]@@@@@@2manifest_structure*`a@б@г(Odoc_env#env(Odoc_envqr@ uv@@@@@@3xwwxxxxx@C@A @@б@г$list@В@г_&string@@ @@@@@@г&option@г$info*Odoc_types @  @@@@@@A @@@ @@@F@@@@/@ @@M4$@@@I @@@RG@@б@г )type_expr%Types+0@ 1:@@@@@@k @@г)Odoc_type-type_manifest)Odoc_type>G@ HU@@@@@@ @@@@@& @@@;@@7 @@@@@ @@@ @ ܐ This function converts a [Types.type_expr] into a [Odoc_type.type_kind], by associating the comment found in the parsetree of each object field, if any.  `@@@@@@@0_@@"@ +@@@@@@-get_type_kind+.  /  !@б@г#env(Odoc_env= $ .> $ 6@ A $ 7B $ :@@@@@@!3DCCDDDDD@A@A @@б@гϠ$listS $ `T $ d@В@г+&stringa $ ?b $ E@@ @@@"@@@гϠ&optionp $ Xq $ ^@г$info*Odoc_types~ $ H $ R@  $ S $ W@@@@@@#A @@@ @@@%F@@@@/@ @@&M4$@@@I @@@(R $ >G@@б@г .type_decl_kind%Types h t h y@  h z h @@@@@@)k @@г)type_kind)Odoc_type h  h @  h  h @@@@@@* @@@@@+$ @@@9@@,5 @@@@@-@@@  @ This function converts a [Types.type_kind] into a [Odoc_type.type_kind], by associating the comment found in the parsetree of each constructor/field, if any.W] @@@@@@@`@@"@ @@@@@@-get_cstr_args!s!}!s!@б@г#env(Odoc_env!!!!@  !! !!@@@@@@.3  @A@A @@б@г#int!!!!@@ @@@/@@б@г)Typedtree5constructor_arguments)Typedtree2!!3!!@ 6!!7!!@@@@@@%+ @@гV0constructor_args)Odoc_typeH!!I!!@ L!!M!!@@@@@@%A @@@@@%D$ @@@9@@%G< @@@M@@%JU@@@^!s!y@0 This function converts a [Types.constructor_arguments] into a [Odoc_type.constructor_args], by associating the comment found in the parsetree of each inner record field, if any.k  l!2!r@@@@@@@d@@"@@@@@@@@i+merge_infos"2"<"2"G@б@г점&option"J"d"J"j@г $info*Odoc_types"J"T"J"^@ "J"_"J"c@@@@@@%3@K@A @@@" @@@%@@б@г&option"J"~"J"@г $info*Odoc_types"J"n"J"x@ "J"y"J"}@@@@@@%) @@@ @@@%.@@г:&option""""@г 1$info*Odoc_types""""@ """"@@@@@@&N @@@ @@@&S@@@,@@&V8 @@@V@@&Yd#@@@"2"8&@Ӑ 4 This function merges two optional info structures. !!!"1@@@@@@@'e@@6@"@@@@@@x8analyse_module_type_kind٠%##&##*@б&erasedг)Odoc_name#Map!t)Odoc_name<#p#=#p#@ @#p#A#p#@@E#p#F#p#@ @з+ConstrainedQ#-#AR#-#M@@гנ$list[#-#k\#-#o@г/with_constraint)Parsetreei#-#Qj#-#Z@ m#-#[n#-#j@@@@@@(3pooppppp@v@A @@@" @@@(@@@+ @@'Removed#p##p#@A@@@@@@Р @>@@@(A@@@(#-#?#p#@@@h@@@($R@@б@г6#env(Odoc_env####@ ####@@@@@@(< @@б@г!t)Odoc_name####@ ####@@@@@@(T @@б@г,+module_type)Parsetree####@ ####@@@@@@(l @@б@г0+module_type%Types####@ ###$@@@@@@( @@г0module_type_kind+Odoc_module$$$$@ $$$$/@@@@@@( @@@@@($ @@@7@@(? @@@R@@)Z@@@m@@)u@@@@@) @@)"#-#7@@ @%##@ P Return a module_type_kind from a Parsetree.module_type and a Types.module_type 2""3"#@@@@@@@Kf@@.@F@@@@@@7analyse_class_type_kindڠI$$J$$@б@г#env(Odoc_envX$$Y$$@ \$$]$$@@@@@@)3_^^_____@CA@A @@б@г;!t)Odoc_namer$$s$$@ v$$w$$@@@@@@) @@б@гY#int$$$$@@ @@@))@@б@г*class_type)Parsetree$$$$@ $$$%@@@@@@)A @@б@г*class_type%Types$%$% @ $% $%@@@@@@)Y @@г'/class_type_kind*Odoc_class%%%%%/@ %%0%%?@@@@@@) o @@@@@) r$ @@@7@@) u? @@@R@@) xU@@@d@@) {l@@@@@)~@@@$$@ ` Analysis of a Parsetree.class_type and a Types.class_type to return a class_type_kind.$1$7$x$@@@@@@@ g@@(@@@@@@@1analyse_signature۠&&&&@б@гܠ&string&&&&@@ @@@)3@8@A@@б@г&string#&&$&&@@ @@@)@@б@г )signature)Parsetree6&&7&&@ :&&;&&@@@@@@)) @@б@г)signature%TypesN&&O&'@ R&'S&' @@@@@@)A @@г(t_module+Odoc_moduled&'e&'@ h&'i&'#@@@@@@)W @@@@@)Z$ @@@7@@)]? @@@R@@)`U@@@f@@)ci@@@}&&@O V This function takes an interface file name, a file containing the code, a parse tree and the signature obtained from the compiler. It goes through the parse tree, creating values for encountered functions, modules, ..., looking in the source file for comments, and in the signature for types information. %A%G&k&@@@@@@@h@@%@_@@@@@@@ w T@ 4 @@^@>@k@?@o@O@@S@3@@p@<@@3@>@A!3@ @Aw'$'+@@@  @@@u@ @@J@  Q D@@   ? } @ w @ @@ @@@3@  @@ đ  @ r N@ .@@|@#@}@]@@@@q@@@z@@@4 @A@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml CC@ H  D D3@ H Maxence Guesdon, projet Cristal, INRIA Rocquencourt E44E4@ H FF@ H Copyright 2001 Institut National de Recherche en Informatique et GG@ H en Automatique. #H$Hg@ H )Ihh*Ih@ H All rights reserved. This file is distributed under the terms of /J0J@ H the GNU Lesser General Public License version 2.1, with the 5K6KN@ H special exception on linking described in the file LICENSE. ;LOOn{T8cئ5Build_path_prefix_map0z HkGs8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ*Cmi_format0c˯7͗ԩmݠ*Data_types0I'Ue`wq]Ѡ#Env0zV L{YWI*Format_doc0]mWϓ:Mݠ%Ident0">WA+9*X,Identifiable0 {d\FX'`)Load_path0I@18 ~(Location0a7cK_H%9)Longident0s `7mɕc$Misc0ob]6>Vê>0_"#C{0*"z1+W.Odoc_exception0>@ӽX4Id.Odoc_extension0?*sR(6]!$.0z8Ps.Type_immediacy0A^abOhՠĐ0ekG |t0^Y~# )Unit_info0ڀh%(/Value_rec_types0`4xiVC(Warnings0mJɒkgr@@C@@ѐL  ݰ bf@@P@/{@-@f @@@ Y @@  @@P@@