Caml1999T031DkI<(Odoc_astР(Asttypes(Asttypes+odoc_ast.mlQ`eQ`m@@ 0@@@@@@%arrayH8@@M@A@A@@@@@@&_none_@@A@@@ $boolE8@@%false^@@ @$true_@@@@@A@@@@@@A@$charB8@@@A@@@@@@A@#exnG8@@AA@@@@@@@@5extension_constructorP8@@@A@@@@@ @@@%floatD8@@@A@@@@@$@@@*floatarrayQ8@@@A@@@@@(@@@#intA8@@@A@@@@@,@A@%int32L8@@@A@@@@@0@@@%int64M8@@@A@@@@@4@@@&lazy_tN8@@O@A@A@Y@@@@@=@@@$listI8@@P@A"[]a@@J@"::b@@@Q@@W@ @@A@Y@@@@@Z@@@)nativeintK8@@@A@@@@@^@@@&optionJ8@@S@A$Nonec@@k@$Somed@@r@@@A@Y@@@@@u@@@&stringO8@@@A@@@@@y@@@$unitF8@@"()`@@@@@A@@@@@@A@ .Assert_failure\ p@@@@Jm@@@@@@V@@A=ocaml.warn_on_literal_pattern@@0Division_by_zeroY @@@A  @+End_of_fileX !@@@A@'FailureU )@%@@A@0Invalid_argumentT 2@.@@A$#@-Match_failureR ;@:67@@\@@Aʠ21@ )Not_foundV I@@@AҠ:9@-Out_of_memoryS Q@@@AڠBA@.Stack_overflowZ Y@@@A⠰JI@.Sys_blocked_io[ a@@@A꠰RQ@)Sys_errorW i@e@@A󠰠[Z@:Undefined_recursive_module] r@qmn@@c@@Aih@ %bytesC8@@@A@@@@@@@@&Stdlib@@@@A054455555@4C@@=Q``<@)ocaml.doc # Analysis of implementation files. KP77LP7_@@@@@@@L@0IHHIIIII@G@@Р%Types%Types\Rns]Rnx@@ 0[ZZ[[[[[@&@@@@A0\[[\\\\\@(@@dRnn@@ @0a``aaaaa@,@@Р)Typedtree)TypedtreetSy~uSy@@ 0srrsssss@@@@@A0tssttttt@@@|Syy@@ @0yxxyyyyy@@@A()typedtreeAUU@@8@@@A%)structure@@@[,/module_coercion@@@\@@]@@@@UU@@@@D@@AВг)TypedtreeUU@@0@5+8@@@A2@@B@^B@Z@@@@@@@@@  @@г#)Typedtree%UU@@,@@@7@@(@@('@0@L@@Р.Odoc_parameter.Odoc_parameterWW@@ 0@_UO@@@@A0@@@W @@ @0@@@Р*Odoc_value*Odoc_valueXX@@ 0@@@@@A0@@@X@@ @0@@@Р)Odoc_type)Odoc_typeYY@@ 0@@@@@A0@@@ Y@@ @0      @@@Р.Odoc_extension.Odoc_extensionZZ@@ 0@@@@@A0@@@$Z@@ @0!  !!!!!@@@Р.Odoc_exception.Odoc_exception4[5['@@ 032233333@@@@@A043344444@@@<[@@ @098899999@@@Р*Odoc_class*Odoc_classL\(-M\(7@@ 0KJJKKKKK@@@@@A0LKKLLLLL@@@T\((@@ @0QPPQQQQQ@@@Р+Odoc_module+Odoc_moduled]8=e]8H@@ 0cbbccccc@@@@@A0dccddddd@@@l]88@@ @0ihhiiiii@@@Р*Odoc_types*Odoc_types|^IN}^IX@@ 0{zz{{{{{@@@@@A0|{{|||||@@@^II@@ @0@@@0Typedtree_searchBd29d2I@@БA(#elehCfU^fUa@@8@@!Mi@@@_@@gdjgdw@@F"MTj@@@`@@hx~hx@@G!Tk$@@@a@@ii@@H!Cl2@@@b@@jj@@I"CTm@@@@c@@kk@@J!XnN@@@d@@ll@@K!Eo\@@@e@@mm@@L!Ppj@@@f@@nn@@#M@@A@@@@@fUY@@@@&E@ttgdlgdm@@гv&string%gdqw@@}0!  !!!!!@8@@@A@@@@@@@@@@{@@@@}@yy.hx/hx@@г{&string8hx|@@}@@@@@{{>i?i@@г}&stringHi~@@#@@@@@}}NjOj@@г&stringXj@@3@@@@@^k_k@@г&stringhk@@C@@@@@nlol@@г&stringxl@@S@@@@@~mm@@г&stringm@@c@@@@@nn@@г&stringn@@s@@@@@@A@@@@0@@@A(#tabqDpp@@8@@@Av'Hashtbl!t@@@ĠK3structure_item_desc@@@@A/Stdlib__Hashtbl!t@1@2@@3@0@@@@@@p pD@@@@N@@Aг*+*p; @г+#elepp@@30@dKEE8@@@AL@@E@E@}@@@@ @@@@@ @@г;)Typedtree=pp9@@D@@@Qp,@@.@@.-@0@@@A(*tab_valuesEqENqEX@@8@@@A'Hashtbl!t$Name!t@A @>&stringO@ @F@E@@'pattern@@@*expression@@@@@@A,.|#@?@ @@@=@@@@@@DqEIEqE@@@@WO@@Aг=>=NqE @г>+Odoc_module@?XqE\YqEn@@H0UTTUUUUU@xZ8@@@Aa@@F@F@"@@@@"@@@@@ @@Вг@)TypedtreeBqqEprqE@@I@@гD)TypedtreeF|qE}qE@@M$@@@X%@@@u&qE[=@@?@@?>@0~}}~~~~~@(@@@ࠠ0iter_val_patternנss@@@@)Typedtree,pattern_desc %value@@@F@@@@F@ +Odoc_module$Name!t@@@F@@@@F@@@F@0@a@@@@%param*Ġ)Typedtree(Tpat_anytt@8(Tpat_any70@@@ @@@ @@@@ALAA4typing/typedtree.mliL s uL s @@@?^@@@@G0@#Ssw~@@@@@ภ$Nonett@8UB^@@T@@@@AA@A@@W@@@IF@@Ġ)Typedtree(Tpat_varuu@8(Tpat_varib@@@ @@@ @%Ident!t@@@ Ƞ(Asttypes#loc&stringO@@@ @@@ @B@ALAAKN  LN  @@@_ࠠ$name٠-u.u @@@'@@@0.--.....@V@@@@7u8u@@'"@@I@@@I@ @@@DAu@@@@ภ$SomeHuIu@8_@A@AA@A@@డ$Name*from_identYuZu)@@%Ident!t@@@@@@@@@-odoc_name.mliG  G  @@)Odoc_nameO@@@@@G@@@G@@G@0srrsssss@QK@L@Q@@@@ఐY$nameu*u.@@@/@@H@H@$H@#@@uu/@@@@L@@F@F@ @Ġ)Typedtree*Tpat_tuplev08v0L@8*Tpat_tuple@@@ @@@ @$listI/general_pattern@@@ @@@ @@@ @ACALAAU  U  @@@&b@v0Mv0N@@,@@I@@@I@@@I@@@@2 @@>@@ภ$Nonev0Rv0V@@@@7F@)F@&@@w~w~@@Q@@ภ$Nonew~ @@ @@IF@.F@+@@As@@@aO@@-@@@@=@ࠠ-add_to_hashes+yy@@@@&Stdlib'HashtblO@@@/'pattern@@@?F@?*expression@@@?F@?@@?F@>@@@?F@-@0F@-$unitF@@@/ F@.@@.F@-@@-F@-@@-F@-0QPPQQQQQ@@@jP@@@@%table-dyey@@@]0baabbbbb@ikylp 2@@@@@@,table_values.wyxy@@@R0uttuuuuu@ s@@S@@@@@"tt/yy@@@?0@f@@T@@@@ఐ"ttzz@O@@U@@Q0@@@@Ġ)Typedtree+Tstr_module{{@8+Tstr_module@@@f@.module_binding@@@T@AF@N@A8E8G8E8f@@@ ࠠ"mb0{{@@@@@@.0@-@@@@@!@@@@@@డ&Option$iter| | @@@!a@.@@@.@@.@&optionJ@@@.@@@.@@.@@.@*option.mlivv@@.Stdlib__OptionK"!@@@@@@G@/MG@/ @@G@/@G@/@ @@G@.@@G@.@G@.@G@.0        @sQK@L@#V@@@@@"idL | !| @@@%@@డ'Hashtbl#add/}  $0}  /@@(!a@!b@@@@O@ @ $unitF@@@N@@M@@L@@K@+hashtbl.mliRNNRNv@@/Stdlib__HashtblE#"@@@HB<@@H@/@F@A@@H@/@H@/@H@/@H@/0[ZZ[[[[[@RJe@A@tW@@@@ఐ%tablen}  0o}  5@@@g@@ภ!Mz}  7{}  8@8f@@@|@A@@H@A@@Ѡడ+$Name*from_ident}  :}  I@5@@@5@@I@/B@@I@/A@I@/@9@@ఐ"id}  J}  L@C@@F@@}  9}  M@@@@I@/LL@@}  6}  N@@I@/=Q@@ఐ7"tt}  O}  Q@#@@r^@@@@@@H@/VH@/Ud@@A| }  R@@@@@H@/@H@/H@/X0@@@@@ఐ"mb}  S}  U@̰@@-@@H@/^@/[@%mb_id}  V}  [@,%mb_id8@@@p&optionJ!t@@@h@@@g@@,'mb_name#loc@@@k@@@j@@@i@A@A69979:@@t,+mb_presence(%Types/module_presence@@@l@B @AD:: E::-@@,'mb_expr6+module_expr@@@m@C+@AO:.:3P:.:H@@,-mb_attributesA*attributes@@@n@D6@AZ:I:N[:I:h@@,&mb_locL(Location!t@@@o@ED@Ah:i:ni:i:@@@Al99m99@@m`@@cQ@@H@/H@/_H@/\A@@yi@@F@.Z@Ġ)Typedtree.Tstr_recmodule_~ \ d`~ \ |@8.Tstr_recmodule@@@@V@@@U@AG@N@A8g8i8g8@@@ࠠ$mods1x~ \ }y~ \ @@@@@@. @@@. 0}||}}}}}@@@@@@% @@8@@8@@డS$List$iter    @@@!a@0$unitF@@@1@@1@$listI@@@1@@@1@@1@@1@(list.mliEEEo@@,Stdlib__ListS%$@@@@@@G@33G@2#@@G@2@G@2@  @@G@2@@G@2@G@2@G@20@.XR@S@X@@@@@"mb@  @  @@@%@@డ&Option$iterA  A  @@@@@@@H@3H@2@@H@2@H@2@ @@H@2@@H@2@H@2@H@20@91L@(@ Y@@@@@"id A   A  @@@%@@డ'Hashtbl#add "B   #B  @@@@F@2F@2@@I@2@@@@I@2@I@2@I@2@I@20 2 1 1 2 2 2 2 2@6.I@%@ KZ@@@@ఐ堐%table EB   FB  @˰@@>@@ภ!M QB   RB  @נడ$Name*from_ident `B   aB  @@@@@@J@3@@J@3@J@34@@ఐf"id uB   vB  @>@@A@@ yB   zB  @@@@J@3G@@ B   B  @@lJ@3 L@@ภ)Typedtree+Tstr_module C  & C  ;@ఐ"mb C  < C  >@@@d@@ C  % C  ?@@J@3&i@@@@@@I@3,I@3+o@@A A   D @ P@@@@@I@2@I@2I@3.0        @@@@@ఐ栐"mb D @ Q D @ S@@@@%mb_id D @ T D @ Y@ݰ @@@@I@2I@34I@31@@ @@7@@H@38H@37%@@A @   E Z g@@@#A@@H@2@H@2H@3:0        @@@@@ఐr$mods F h t F h x@ @@N;@@H@2H@3>H@3<+@@f @@F@2F@/a@Ġ)Typedtree,Tstr_modtype G y  G y @8,Tstr_modtype[@s7module_type_declaration@@@W@AH@N@A:88;88@@@xࠠ#mtd2 G y  G y @@@@@@.0        @@@@@@@@@@@@డ'Hashtbl#add 0H   1H  @@@@)#F@3GF@3F@@G@3H@@@@G@3E@G@3D@G@3C@G@3B0 @ ? ? @ @ @ @ @@/)@*@ Y[@@@@ఐ%table SH   TH  @ٰ@@L@@ภ"MT _H   `H  @8@AA@H@A@@డ $Name*from_ident pH   qH  @@@@@@H@3o@@H@3n@H@3m6@@ఐk#mtd H   H  @B@@@@I@3@3~J@&mtd_id H   H  @,&mtd_id@@@!t@@@@@ ,(mtd_name #loc@@@@@@@A @ADDDD@@.,(mtd_typeŠ+module_type@@@@@@@B@ADD!DD>@@$/,.mtd_attributes,@@@@C&@AD?DDD?D_@@-0,'mtd_loc5!t@@@@D2@AD`DeD`Dy@@91@ACCCD@@=-TG@@@@I@3zI@3I@3@@ H   H  @@5@@H@3y@@ H   H  @@H@3j@@ఐs"tt H   H  @_@@@@@@F@3TF@3@@Ġ)Typedtree+Tstr_typext I   I  @8+Tstr_typext`@x.type_extension@@@R@AD@N@A?78@78@@@}ࠠ"te3 !I   "I  @@@@@@.0 " ! ! " " " " "@@@@@@@@@@@@ఐ"te 4J   5J  @@@ H\@@+@@H@3@30 9 8 8 9 9 9 9 9@# @@@2tyext_constructors DJ   EJ  /@,2tyext_constructors8@@@5extension_constructor@@@@@@@C,*tyext_path$Path!t@@@@@ @ARZR^RZRq@@,)tyext_txtT#loc)Longident!t@@@@@@@A@ARrRvRrR@@,,tyext_params2̠)core_type@@@x(variance@@@~+injectivity@@@@@@@@@@@BA@ARRRR@@T,-tyext_privateT,private_flag@@@@DL@ASS SS%@@,)tyext_loc_p!t@@@@EX@AS&S*S&S@@@,0tyext_attributesk@@@@Fa@ASASESASb@@@ARRRS@@!z@@ts@@@3@@@3@Ġ"[] K 5 A K 5 C@8 ] j g@@R@@@@AA@A @@ `@@ @@@@J@3@@J@30        @@@@ @@@ภ%false K 5 N K 5 S@8  @@@N@@@@B@@A @@ @ @@@@H@3@ K 5 G @@F@3F@3F@3@Ġ":: L T d L T f@8 7@ B@AA@A @@ ࠠ#ext L T ` L T c@@@@@@3@@ L T g L T h@@ @@J@3@@J@3@@@ @@ڠ@@J@3@@J@3@@@@డ 'Hashtbl#add 8L T l 9L T w@ @@@1+F@3'F@3@@H@3@@@@H@3@H@3@H@3@H@30 H G G H H H H H@A;@<@ a]@@@@ఐ%table [L T x \L T }@@@T@@ภ!X gL T  hL T @8 ~@ |AE@H@A x@@ uడ $Name*from_ident xL T  yL T @@@@@@I@3@@I@3@I@36@@ఐ}#ext L T  L T @B@@E@@J@3@3J@&ext_id L T  L T @,&ext_idP@@@!t@@@@@ ,(ext_name #loc@@@@@@@A @AT*T.T*TC@@,(ext_type5extension_constructor@@@@B@ATDTHTDTo@@(,(ext_kind(/:extension_constructor_kind@@@@C$@ATpTtTpT@@3,'ext_loc3!t@@@@D0@ATTTT@@?,.ext_attributes?@@@@E9@A TT TT@@H@ATTTT)@@L[N@@@@J@3J@3J@3@@ L T  L T @@D@@I@3@@ L T ~ L T @@I@3@@ఐ"tt L T  L T @n@@@@@@F@3@@A I   M  @@/@Ġ)Typedtree.Tstr_exception N   N  @8.Tstr_exceptionp@.type_exception@@@S@AE@N@AO8 8"P8 8D@@@ࠠ#ext4 1N   2N  @@@@@@.0 2 1 1 2 2 2 2 2@@@@@@@@@@@@డ 'Hashtbl#add EO   FO  @@@@>8F@@J@=O)@@డ'Hashtbl#addY z Y z @ @@@ ͠ F@=Z F@=Y@@H@=[@@ @@H@=X@H@=W@H@=V@H@=U0@L<i@7@e4e@/@f@@@@ఐ %tableY z Y z @ @@ @@ภ!CY z Y z @89 @7AC@H@A3@@0డ$Name*from_identY z Y z @ @@@ @@I@= o@@I@=@I@=9@@ఐz"ci.Y z /Y z @D@@H@+ci_id_class5Y z 6Y z @,+ci_id_class +class_infos!a@ @@@ :!t@@@@C0,'ci_virt :,virtual_flag@@@@@@A zYY {YY@@ ,)ci_params @@@۠ S(variance@@@ݠ Y+injectivity@@@@@@@@@@@A(@A YY YZ)@@ ,*ci_id_name> e#loc b@@@@@@@B8@A Z*Z. Z*ZF@@ N,0ci_id_class_typeN ~!t@@@@DD@A ZaZe ZaZ@@ ,,ci_id_objectZ !t@@@@EP@A ZZ ZZ@@ ,.ci_id_typehashf !t@@@@F\@A ZZ ZZ@@ ,'ci_exprrm@Gb@A ZZ ZZ@@ ,'ci_declx 1class_declaration@@@@Hn@A ZZ ZZ@@ ,,ci_type_decl 6class_type_declaration@@@@Iz@A ZZ Z["@@ *,&ci_loc !t@@@@J@A [#[' [#[:@@ 6,-ci_attributes @@@@K@A [;[? [;[Y@@ ?@A ZGZK ZGZ`@@ C@@ @@J@=J@=J@=@@Y z Y z @@ ;@@I@=@@Y z Y z @@ I@=} @@ภ)Typedtree*Tstr_classZ  Z  @Ѡภ9Z  Z  Aఐ^"ci Z  @'@@+@ఐ^!sZ  Z  @0@@6@@@@@@G@=@I@=I@=I@=B@ภQ*A^@+A@@@I@=I@=N@@8Z  3@@ @@I@=I@=V@@@Z  AZ  @@ &I@=[@@q@@ @@H@=H@=a@@AKX ^ jLZ  @@@ @@H@=G@H@=FH@=0ONNOOOOO@@@@@ఐ )info_list_[  `[ @@@ à@@H@=EH@=H@=@@ @@ F@=DF@=1@Ġ)Typedtree/Tstr_class_type{\ |\&@8/Tstr_class_type @ Ҡ ~!t@@@` |#loc y@@@b@@@a6class_type_declaration@@@c@@_@@@^@AK@N@A 99 99c@@@ࠠ)info_list8\'\0@@@.-@@@.2*(@@@.4@@@.3'@@@.5@@.1@@@.00@ '@@@@@K@@ z@@ z@@డ$List$iter]4>]4G@ B@@@@Y@@G@>PG@=XX@@G@>RG@>i@@G@>hG@=Y@@G@>SG@=@G@=G@= Z@@G@=@G@=@ W$@@G@= T@@G@=@G@=@G@=0@ e\V@W@g@@@@@"ci(ࠠ"id'^H[^H]@@@>@@^H^ ^H_@@= @@$^H`%^Ha@@6%@@'^HZ(^Hb@@NI>@J@>-@$$0^Hf1^Hh@3^HY4^Hi@@ 4@@డ'Hashtbl#addA_m{B_m@ @@@ : 4F@>  0F@> @@H@> @@ @@H@> @H@> @H@>@H@>0QPPQQQQQ@WD|@?@khQ|q@@>@/@ri@@@@ఐ %tablel_mm_m@ @@ e@@ภ"CTx`y`@8 @AD@H@A@@డ&$Name*from_ident``@0@@@0@@I@>4@@I@>3@I@>2>@@ఐ"id``@G@@K@@``@@@@I@>>Q@@``@@ I@>/V@@ภ)Typedtree/Tstr_class_typeaa@<ภaaAఐ"ci a@n @@F@@G@>Q@I@>OI@>_I@>fI@>e@ภA @ A@a@@I@>dI@>z@@a(@@i@@I@>NI@>^@@aa@@ I@>M@@@@ Z@@H@>H@>@@A^HTa@@@& d@@H@=@H@=H@>0@@@@@ఐb)info_list bb@ @@ q>@@H@=H@>H@>@@G @@ F@=F@=@Ġ)Typedtree*Tstr_value)c*c@8*Tstr_value ~@(rec_flag@@@K-value_binding@@@M@@@L@BA@N@Ah7t7vi7t7@@@@FcGc@@@@I@.:0FEEFFFFF@ @@@ࠠ,pat_exp_list9Sc Tc,@@@"!@@@.<@@@.;@@@5^c-@@@@@@డ.$List$iterkd1;ld1D@ ۰@@@@<@@G@>G@> @@G@>@G@>@ ٠ @@G@> @@G@>@G@>@G@>0~}}~~~~~@ 60@1@j@@@@@,ঠ&vb_pateEWeE]@,&vb_patc@@@ud@@@q@@ ,'vb_expr b@@@r@A@A::::@@,-vb_attributes @@@s@B@A::::@@,&vb_loc !t@@@t@C@A:::;@@#@A::::@@'ࠠ#pat)eE^eEa@@@@@@>M@'vb_expreEceEj@6ࠠ#exp*eEkeEn@@@@@@>a@@@eEVeEo@@uJ@>f@@ఐe0iter_val_patternfsfs@@@@aZ@@I@>@@I@>VS@@I@>@@I@>@I@>0@D>@?@k2,@-@l@@@@ఐP#patfsfs@@@@@J@>@)Typedtree(pat_desc&fs'fs@,(pat_desc,pattern_data!a@ @@@ @@ ,'pat_loc  !t@@@ @A @Afqgq@@U,)pat_extra)pat_extra@@@  !t@@@  +@@@ @@ @@@ @B'@Arr0@@V,(pat_type7 N)type_expr@@@ @C3@As15s1O@@W,'pat_envC#Env!t@@@ @DA@AtPTtPc@@X,.pat_attributesQ O@@@ @EJ@Audhud@@Y@App@@Tm`@@@@J@>@@J@>J@>J@>@@l@@@@@>@@@>@Ġ$Nonegg@@@@@@@K@>@@K@>0@@@@ @@@ภ"()gg@8 @@@U@@@@A@@A@@ @ @@ %@@I@?"I@>@Ġ$Somehh@ࠠ!n+hh@@@)@@@>@@@@@30@@K@>@@K@>@@@@డ'Hashtbl#addhh@@@@ˠ@@I@>@@@@I@>@I@>@I@>@I@>0@1+@,@m@@@@ఐ,table_valueshh@@@@@ఐF!nhh@@@@@ఐb#pat,h-h@$@@.@ఐY#exp7h 8h @-@@9@@;h<h @@ F@?>@@P@@I@?!A@@ACfs@@ @@H@?0H@?/@@AJeEQKi@@@ @@H@>@H@>H@?20NMMNNNNN@@@@@ఐ ,pat_exp_list^j(_j4@۰@@  @@H@>H@?6H@?4@@ @@F@>F@>@Ġ)Typedtree.Tstr_primitivezk5={k5U@8.Tstr_primitive@1value_description@@@N@AB@N@A7777@@@ࠠ"vd:k5Vk5X@@@@@@.?@@@@@K@@K@@డf'Hashtbl#addl\fl\q@t@@@F@??F@?>@@G@?@@@p@@G@?=@G@?<@G@?;@G@?:0@.(@)@n@@@@ఐf%tablel\rl\w@L@@@@ภ!Pl\yl\z@8X@AG@H@A@@Ġడ$Name*from_identl\|l\@@@@@@H@?g;@@H@?f@H@?e6@@ఐj"vdl\l\@B@@@@I@?x@?vJ@&val_idl\l\@,&val_id@@@L!t@@@C@@ ,(val_name #loc@@@E@@@D@A @AInMXM\JnMXMq@@a,(val_desc @@@F@B@ARoMrMvSoMrM@@b,'val_val%1value_description@@@G@C"@A^pMM_pMM@@c,(val_prim1%@@@I@@@H@D1@AmqMMnqMM@@d,'val_loc@!t@@@J@E=@AyrMMzrMM@@e,.val_attributesL*@@@K@FF@AsMMsMN@@f@AmMCMGmMCMW@@`h[@@@@I@?rI@?yI@?w@@jl\{kl\@@@@H@?q@@pl\xql\@@]H@?b@@ఐ"tt~l\l\@@@5@@@@6F@?LF@?8@Ġ)Typedtree)Tstr_openmm@8)Tstr_open@0open_declaration@@@X@AI@N@A8888@@@@mm@@@@I@.B @@@@@^ @@^ @@ภmm@@@@fF@?F@?}@Ġ)Typedtree,Tstr_includenn@8,Tstr_include@/3include_declaration@@@d@AL@N@A9d9f9d9@@@4@nn@@@@I@.E<@@@@@=@@=@@ภ+nn@*@@@F@?F@?I@Ġ)Typedtree)Tstr_evaloo@8)Tstr_evalG@@@@I@@@J@B@@N@A(7K7O)7K7s@@@f@oo@@@@I@.In@@@@@I@.Js@@@ @@t@@t@@ภboo @a@@@F@?F@?@Ġ)Typedtree.Tstr_attribute)p *p *@8.Tstr_attribute~@ g@@@e@AM@N@A[99\99@@@@9p +:p ,@@ t@@I@.M@@@@@@@@@ภDp 0@@@@F@?F@?@@AKz@@F@.0IHHIIIII@@@@@AA@F@-0MLLMMMMM@@@@@AA@0F@-0QPPQQQQQ@@@@@AA@@P6@@HN0UTTUUUUU@@@@@@@@ࠠ&tables2gr4<hr4B@@@@͠.structure_item@@@IG@H@@@HF@HPvp@@@HF@H[o@@@HF@H\@@@I*F@I'@@@HF@Hh@@@Hd@@@H@@HF@H@@@I+F@I(@@I)F@HQ@@HRF@HO0@U@@R@@@@)typedtree4r4Cr4L@@@M0@Yr48v@@@@@@ࠠ!t5sOYsOZ@@@ĠNI@@@HrG@HV0@'j@@p@@@డ'Hashtbl&createsO]sOk@&random&optionJ$boolE@@@A@@@@@#intA@@@?!a@2!b@3@@@>@@=@@<@_` @@A.-@@+)&@@G@H_@@G@H^@#@@G@H]@@G@HZ@G@HY@G@HXQ@>ภ$NoneC@@B?@@H@H{@@H@Hz`@@M<sOl=sOn@@G@@H@HsH@H}H@H|p@@a @@vq@@GsOU @@@ࠠ(t_values6Rtr|Str@@@Kà@@@HG@H0WVVWWWWW@@@pq@@@డ/'Hashtbl&createltrmtr@@@@@G@H@@G@H@@@G@Hq@@G@H@G@H@G@H&@ภ\Z@Z@@@H@H@@H@H3@@Mtrtr@@@@H@HH@HH@HC@@4 @@ID@@trx @@డs$List$iteruu@ @@@@D@@G@H@G@H@L@@G@H@@G@H@G@H@G@H0@hwq@r@r@@@@@#str7uu@@@d@@ఐݠ-add_to_hashesuu@6@@@٠@@H@HҠ@@H@H@@H@H@E@@H@H͠@@H@HϠ@@H@H@H@H@@H@H@@@H@H@H@H@H@H@H@H0@G?@6@s@@@@ఐL!tuu@@@@@I@H@@ఐנ(t_values)u*u@f@@ @@I@I(@@ఐm#str=u>u@4@@7@(str_descDuEu@,(str_desc@@@H-@@@E@@ ,'str_loc !t@@@F@A @A6767@@,'str_env!t@@@G@B@A7777+@@@A6666@@ݰ/'@@I@II@Ig@@,@@@@H@IH@Im@@Awuxu@@@ @@H@H@H@HH@I!0{zz{{{{{@@@@@ఐנ)typedtreeuu@@@ @@@@@@F@I&G@H@ఐԠ!tvv@C@@ "@ఐX(t_valuesvv@@@-@@v@@0@F@I,3@@@4@@@Y@o@@;F@HU@@AA@@M@@@I.0@@@@@@@@ࠠ-search_module8xx@@@@Š@@@IZF@IA@@@I_F@I@@@@IOF@I0@=@@@I\F@I6@@@IgF@I7@@I8F@I1@@I2F@I/0@E@@o@@@@%table:xx@@@00@<x{@@@@@@$name;xx@@@.0        @ F@@&u@@@@డ'Hashtbl$find$y".%y":@@!a@!b@@@@R@ @@Q@@P@ZZ@@F@@@3ni@@G@IB@rl@G@I?@G@I>0A@@AAAAA@5Ae@8@Zv@@@@ఐ\%tableTy";Uy"@@B@@@@ภ!M`y"Bay"C@ఐ_$namejy"Dky"H@$@@'@@ny"Aoy"I@@H@I[,@@O@@-@Ġ)Typedtree+Tstr_modulezOXzOm@Ԡࠠ"mb<zOnzOp@@@@@@IaH@@@zOWzOq@@K@@K@@ఐ"mbzOuzOw@@@w@@@@G@Ih@If0@_" @@@'mb_exprzOxzO@@@F@Id @@{{@@q@@q@@ภְ{@@@@@@G@Im}@{@@F@Ii@@Ay"(@@F@I;0@@@@@AA@F@I50@@@@@AA@@@@I0@@@@@@@砰@ࠠ2search_module_type=}}@@@@ݠ@@@JF@J@@@J F@J@@@JF@I@G@@@JF@I@@@J&F@I@@IF@I@@IF@I0@D>@?@t@@@@%table?}}@@@00@<}6@@@@@@$name@'}(}@@@.0%$$%%%%%@ F@@>y@@@@డ'Hashtbl$find<~=~@@@@5XS@@G@J@\V@G@J@G@I0CBBCCCCC@+O@"@\z@@@@ఐF%tableV~W~@,@@r@@ภ"MTb~c~@ఐI$namel~m~@$@@s'@@p~q~@@H@J,@@9@@-@Ġ)Typedtree,Tstr_modtype@{ࠠ#mtdA@@@@@@J"H@@@@@K@@K@@ఐ#mtd@@@{@@F@J%0@Z@@@@%&@@c@@c@@ภʰ1@@@@@@G@J+o@*@@F@J's@@A~@@F@I0@w@@@@AA@F@I0@@@@@AA@@@@J0@@@@@@@à@ࠠ0search_extensionB8@8P@@@@Ѡ@@@JF@J@@@JF@J@@@JF@J@@@@JF@J@@@JF@J@@JF@J@@JF@J0@ @@x@@@@%tableD8Q 8V@@@00@<8<@@@@@@$nameE8W8[@@@.0@ F@@2}@@@@డ'Hashtbl$find0^j1^v@ @@@)XS@@G@J@\V@G@J@G@J076677777@+O@"@P~@@@@ఐF%tableJ^wK^|@,@@r@@ภ!XV^~W^@ఐI$name`^a^@$@@s'@@d^}e^@@H@J,@@9@@-@Ġ)Typedtree+Tstr_typextuv@jࠠ%tyextF~@@@q@@@JH@@@@@K@@K@@ఐ%tyext@@@@@F@J0@Z@@@@@@c@@c@@ภ@@@@@@G@Jo@@@F@Js@@A^d@@F@J0@w@@@@AA@F@J0@@@@@AA@@@@Kk0@@@@@@@à@ࠠ0search_exceptionG@@@@Š@@@KF@K~@@@KF@K}@@@KF@Km@@@@KF@Ks@@@KF@Kt@@KuF@Kn@@KoF@Kl0@ @@|@@@@%tableI@@@00@<Vo@@@@@@$nameJ@@@.0        @ F@@&A@@@@డ'Hashtbl$find$%@@@@XS@@G@K@\V@G@K|@G@K{0+**+++++@+O@"@DB@@@@ఐF%table>?@,@@r@@ภ!EJK@֠ఐI$nameTU!@$@@s'@@XY"@@H@K,@@9@@-@Ġ)Typedtree.Tstr_exceptioni(1j(I@Nࠠ#extKr(Js(M@@@U@@@KH@@@y(0z(N@@K@@K@@ఐ#ext(R(U@@@C@@F@K0@Z@@@@V^V_@@c@@c@@ภVj@@@@@@G@Ko@Vc@@F@Ks@@A@@F@Kx0@w@@@@AA@F@Kr0@@@@@AA@@@@L)0@@@@@@@à@ࠠ7search_type_declarationLqyq@@@@@@@LUF@L<@@@LZF@L;@@@LJF@L+@@@@LWF@L1@@@LpF@L2@@L3F@L,@@L-F@L*0@ @@@@@@@%tableNqq@@@00@<qu@@@@@@$nameOqq@@@.0@ F@@E@@@@డ'Hashtbl$find@@@@XS@@G@L=@\V@G@L:@G@L90@+O@"@8F@@@@ఐF%table23@,@@r@@ภ!T>?@{ఐI$nameHI@$@@s'@@LM@@H@LV,@@9@@-@Ġ)Typedtree)Tstr_type]^@K@bc@@M@@I@L^C@Ġ"::noAgࠠ"tdP w@ @@X@@@LdX@Ġ"[] A@@ A@f@@I@Lj@@I@Lig@@@@@po@@I@Ll@@I@Lkp@@@@@s@@s@@ఐ'"td@(@)@G@@F@Lo0@4@@@@@@@@@@ภΰ @@@@@@G@Lu@@@F@Lq@@A@@F@L60@@@@@AA@F@L00@@@@@AA@@@@L0@@@@@@@렰@ࠠ0search_class_expQ,@@@@ՠ@@@MtF@M @@@MuF@M @@@MF@L@1@@@MrF@Lh*class_expr@@@MF@M$listI%Types)type_expr@@@M@@@MF@M@@MF@M@@MF@L@@LF@L0        @6a[@\@ +D@@@@%tableS %- &2@@@I0 # " " # # # # #@U , -@@@@@@$nameT 83 97@@@G0 6 5 5 6 6 6 6 6@ _@@ OI@@@@డ'Hashtbl$find M:F N:R@)@@@Fql@@G@M @uo@G@M@G@M0 T S S T T T T T@+h@"@ mJ@@@@ఐF%table g:S h:X@,@@@@ภ!C s:Z t:[@mఐI$name }:\ ~:`@$@@'@@ :Y :a@@F@M{F@M#H@M$/@@<@@0@Ġ)Typedtree*Tstr_class gp g@hĠ0 g gAࠠ"ciU g g@@@r@@@M=U@@ g g@@ts@@I@M?@@I@M>a@@ g@@ @I@M@g@ĠD (A@@ )A@ F@@I@MJ@@I@ML@@I@MK@I@MI@@I@MH@@@ g=@@@@I@MO@@I@MQ@@I@MP@I@MN@@I@MM@@@ go g@@@@@@@ࠠ"ceV  @@@@@@MZH@MU0        @a[@\@!K@@@ఐh"ci!!@ @@@@MW@'ci_expr!!@r @@ H@M[@@!@@@ࠠ)type_declW!,!-@@@@@@MqH@M]0!/!.!.!/!/!/!/!/@2A;@<@!HL@@@ఐ7search_type_declaration!A!B@*@@@:2@@H@Md/@@H@Me@@H@Mc@@@H@Mb5@@H@Ma@H@M`@H@M_%@@ఐB%table!c!d @(@@2@@ఐ<$name!p !q@@@?@@3@@C@@@!u@@ఐ"ce!!!#@L@@0!~!}!}!~!~!~!~!~@P]W@X@!M@@@ఐg)type_decl!%!.@@@w@@H@M@M@(typ_type!/!7@q@@0type_declaration@@G@M@M&@%Types+type_params!8!I@,+type_params@@@ "@@@ @@@ @@8 ,*type_arity #intA@@@ @A @A0typing/types.mliAvAzAvA@@,)type_kind.type_decl_kind@@@ @B@A AA AA@@,,type_private%(Asttypes,private_flag@@@ @C#@AAAAA@@,-type_manifest3&optionJ@@@ @@@ @D3@A*AA+AA@@,-type_varianceC(Variance!t@@@ @@@ @EE@A<AA=AB@@,1type_separabilityU,Separability!t@@@ @@@ @FW@ANBWB[OBWB@@,/type_is_newtypeg$boolE@@@ @Gc@AZBB[BB@@,4type_expansion_scopesf@@@ @Hm@AdBBeBB@@,(type_loc}(Location!t@@@ @I{@ArBBsBB@@),/type_attributes)Parsetree*attributes@@@ @J@ABBBC@@7,.type_immediate.Type_immediacy!t@@@ @K@ACCCC'@@E,4type_unboxed_default@@@@ @L@AC(C,C(CG@@O,(type_uidW#Uid!t@@@ !@M@ACCCC@@\@AAUAYAUAu@@`@@l@@"u "vJ@@zs@G@M@@@H@Ġ)Not_found"[h"[q@8)Not_found#exnG@@@@@@ A@A&_none_@@A@@I@@@@!@@J@Md@@ఐ"ce"u"u@n@@F@Ms@ภް"u"u@@@@ݠF@M@@H@M@@"u"u@@F@MF@M@@""@@I@@@F@MT@@""@@r@@r@@ภ"@@@@@@G@M~@"@@F@M@@A":@@@F@M0""""""""@@@@@AA@F@L0""""""""@@@@@AA@@@@N.0""""""""@@@@@@@Ҡ@ࠠ=search_class_type_declarationX""@@@@@@@NZF@NA@@@N_F@N@@@@NOF@N0@ 1@@@N\F@N6~@@@NF@N7@@N8F@N1@@N2F@N/0########@HB@C@#.H@@@@%tableZ#(#)@@@00#&#%#%#&#&#&#&#&@<#/#0\u@@@@@@$name[#;#<@@@.0#9#8#8#9#9#9#9#9@ F@@#RO@@@@డ"'Hashtbl$find#P#Q@,@@@IXS@@G@NB@\V@G@N?@G@N>0#W#V#V#W#W#W#W#W@+O@"@#pP@@@@ఐF%table#j#k@,@@r@@ภ"CT#v#w @ఐI$name# #@$@@s'@@##@@H@N[,@@9@@-@Ġ)Typedtree/Tstr_class_type##7@Ġ0#9#KA@#:#;@@@@I@NxM@@#<#=@@ @@I@Nz@@I@NyY@ࠠ+cltype_decl\#>#I@@@&@@@N{f@@'#J@@! @I@N|m@ĠM 1A@@ 2A@#ON@@I@NKI@@I@N@@I@NH@@I@N@I@N@@I@N@@@#8J@@gf@@I@Nca@@I@N@@I@N`@@I@N@I@N@@I@N@@@##L@@@@@@ఐK+cltype_decl$P$[@K@L@$Q@@F@N0$ $$$ $ $ $ $ @X@@@@$\d$\e@@@@@@ภ7$\p@5@@@5@@G@N@$%\i@@F@N@@A$)@@F@N;0$'$&$&$'$'$'$'$'@@@@@AA@"F@N50$+$*$*$+$+$+$+$+@@@@@A A@@9(@@O0$/$.$.$/$/$/$/$/@ @@@@@@@ࠠ,search_value]$Aw$Bw@@@@>@@O-@@O$F@O,@@@O;F@O@F@O# @@O%F@O@@OF@O0$V$U$U$V$V$V$V$V@Bmg@h@$oN@@@@%table_$iw$jw@@@$0$g$f$f$g$g$g$g$g@0$pw{$qw@@@@@@$name`$|w$}w@@@&0$z$y$y$z$z$z$z$z@ :@@$S@@@@డ#R'Hashtbl$find$w$w@ k@@@JH@@F@O.@NK@F@O+@F@O*0$$$$$$$$@)E@ @$T@@@@ఐD%table$w$w@*@@d@@ఐ>$name$wF@G@@_@@*H@@iF@O(@@A?JA@fF@O"0$$$$$$$$@>@@@@AVNA@@yl@@OH0$$$$$$$$@U@@@@S@SR@h@ࠠ0search_primitivea$$@@@@ˠ@@@OtF@O[@@@OyF@OZ@@@OiF@OJ@!@@@OvF@OP@@@OF@OQ@@ORF@OK@@OLF@OI0$$$$$$$$@@@%R@@@@%tablec%%@@@00%$$%%%%%@<% % <U@@@@@@$named%%@@@.0%%%%%%%%@ F@@%,V@@@@డ#'Hashtbl$find%*%+@ @@@#XS@@G@O\@\V@G@OY@G@OX0%1%0%0%1%1%1%1%1@+O@"@%JW@@@@ఐF%table%D%E@,@@r@@ภ!P%P%Q@~ఐI$name%Z%[@$@@s'@@%^%_@@H@Ou,@@9@@-@Ġ.Tstr_primitive%m %n@ࠠ"vde%v%w@@@@@@O{F@@@@@G@@G@@ఐ"vd%"%$@@@%X@@@@H@O@O0%%%%%%%%@]" @@@'val_val%%%,@m@@1value_description@@G@O@O@%Types(val_type%-%;@,(val_type@@@@@@@@ ,(val_kind *value_kind@@@@A@As33s33@@u,'val_loc!t@@@@B@At33t33@@v,.val_attributes *attributes@@@@C @A u33 u33@@w,'val_uid,t!t@@@@D+@Av33v33@@x@Ar3@3Dr3@3X@@t^=@@F@O~V@@%<D%<E@@@@@@ภ%<P@ @@@ @@G@O@%<I@@F@O@@A&@@F@OU0%%%%%%%%@@@@@AA@ F@OO0&&&&&&&&@@@@@AA@@7&@@P 0&&&&&&&&@@@@@@@@ࠠ:get_nth_inherit_class_exprf&W_&Wy@@@@!/class_structure@@@QF@P@#intA@@@PF@P5@@@QF@P@@PF@P@@PF@P 0&3&2&2&3&3&3&3&3@Epj@k@&LU@@@@#clsh&FWz&GW}@@@)0&D&C&C&D&D&D&D&D@5&MW[&N@@@@@@!ni&YW~&ZW@@@10&W&V&V&W&W&W&W&W@ ?@@&pZ@@@@Aࠠ$iterj&j&k@@@@DG@P@%!+class_field@@@P/G@P+@@@PG@P@@@PsG@P@@P!@G@P 0&&~&~&&&&&@)5\@,@&[@@@@#cptk&&@@@&0&&&&&&&&@1@-@,@@P@@PH@P@2@&\@@@@@!oĠڰ&&@@@@@0'|'{'{'|'|'|'|'|@@@@ࠠ%clexpl''@@@@@@P?@@''@@QP@@J@PA@@J@P@@@' ' @@SR@@J@PDQ@@J@PE@J@PC@@J@PB-@@' '@@RQ@@J@PHP@@J@PI@J@PG@@J@PF@@@@'@@@@J@PJE@@@''@@RJ@P-J@ࠠ!qm''@@@'Ua@@@PKX@@@@@.Y@@డ&!='+',@@!a@@$boolE@@@$@@#@@"&%equalBA,@@@@,y-y@@!Q@@@F@PF@Ph@@@H@Pg@H@Pf@H@Pe0((((((((@\@@(^A;@<@(!_@@@@ఐƠ!n()(*@@@@@ఐ#cpt((-()0@x@@!@@@@'@@H@PrI@Pp(@ఐ%clexp(96(:;@.@@2@ఐܠ$iter(FA(GE@@@@@@H@Pv@H@PuC@@డ'!+(YJ(ZK@@1@@@@6@@@:@@@@@@@'%addintBA@@@@[5:5:[5:5h@@"bp@@@J@@I@P@@@I@P@@I@P@I@P@I@P~x@@ఐ#cpt(G4@۰5@@@@A;(L@@7@@J@PJ@PJ@P@@(F(M@@uJ@P@@ఐڠ!q(N(O@@@;@@j@@1@(&@@3G@Pc@Ġ(P\(P^@@(PZ(P[@@JG@PM0((((((((@@@@ࠠ!qn(P_(P`@@@(N@@@PO@@@@@'@@ఐr$iter(dp(dt@G@@@r@qd@H@P@H@P0((((((((@4@@(`@@@@ఐc#cpt(du(dx@A@@@@ఐ3!q(dy(dz@@@G@P @@(@@G@P#@@A) @@G@P'G@P$\@@A{A@@@@Q0) ) ) ) ) ) ) ) @z@@@@)@@ఐ$iter))@@@@@(@@F@Q@@F@Q )@@F@Q@F@Q@F@Q@@@)3)4@@ G@Q@@ఐ#cls)C)D@@@&@)Typedtree+cstr_fields)L@,+cstr_fields-@@@#@@@@@@@A,)cstr_self##@@@@@@A$S/ /$S/ /!@@$,)cstr_type!S/class_signature@@@@B@A$U/D/G$U/D/h@@$,*cstr_meths#!`%Meths!t$q!t@@@@@@@C'@A$V/i/l$V/i/@@$@A$T/"/%$T/"/C@@$G<@@)@@G@Q@@G@QG@QG@Q@@{H@@a@I@@dF@P@@AALA@sF@P0))))))))@@@@@@AXPA@@y@@Q0))))))))@W@@@@U@UT@j@ࠠ5search_attribute_typep))@@@@@@@UF@Q@%@@@R^F@Q!)type_expr@@@U F@Q@@QF@Q@@QF@Q0))))))))@@@)Y@@@@#clsr))@@@'0))))))))@3))@@@@@@$names))@@@10))))))))@ =@@*b@@@@Aࠠ$itert))@@@@0@@@QG@Q@@@QG@QJ@@@RiG@Q@G@Q0* * * * * * * * @$0W@'@*%c@@@@%XzĠP** @O@@@@!0********@,@(@@QH@Q@+@*:d@@@@డ(%raise*3*4@v@@@v@@H@R83G@RG@R4H@R7@H@R6@@ภ)Not_found*I*J@@@@@@I@R=I@RA/@@@@0@ĠS*Xr*Yt@Qঠ'cf_desc*c+*d2@`Ġ)Typedtree'Tcf_val*m5*nF@8'Tcf_val<@%`#loc%]@@@@@@%k,mutable_flag@@@%z!t@@@%0class_field_kind@@@$boolE@@@@EA@F@A%i1?1A%i1?1@@@%Ơ@*H*I@@.,@@J@R@@J@R0********@@@@@*K*L@@0@@J@R @ࠠ%identu*N*S@@@7@@@R@Ġ-Tcfk_concrete*U*b@8-Tcfk_concrete>@@@@%-override_flag@@@$@@@@BA@B@A%b0;0=&b0;0j@@@&=Ġ@*d*e@@@@J@R ;@ࠠ#expv*g*j@@@$@@@R H@@@,*k@@g@@J@R M@@*m*n@@i@@J@RU@@@*o@@@@J@RZ@@@+)+q@@J@Q_@@+ u+ v@@*G@Q@@J@Ri@@@@@j@డ)68+w+w@5@@@bH@RH@3@@H@RG@H@RF@H@RE0+!+ + +!+!+!+!+!@vp@q@+;eF@@A@+=f@@@@డ($Name*from_ident+<w+=w@%@@@%@@I@RT&@@I@RS@I@RR!@@ఐ%ident+Qw+Rw@*@@%@@J@R_J@RcJ@Rb5@@  @@6@@ఐ$name+fw+gw@U@@C@@.@@>@@H@RfI@RPI@ఐ#exp+x+y@O@@%;@@H@Rj@RhZ@)Typedtree(exp_type++@,(exp_type%H@@@)@@@&@C,(exp_desc &/expression_desc@@@@@@A&7;&7U@@&k,'exp_loc#g!t@@@ @A@A&VZ&Vn@@' l,)exp_extra %')exp_extra@@@##!t@@@$#@@@%@@"@@@!@B2@A&os&o@@')m>,'exp_env>[!t@@@'@D>@A&&@@'5o,.exp_attributesJ#@@@(@EG@A''@@'>p@A''@@'BnhY@@G@RC@Ġ++@ঠ'cf_desc++@Ġ)Typedtree'Tcf_val++@@,,@@@@J@R@@J@R0,,,,,,,,@@@@@,,@@@@J@R  @ࠠ%identw,,@@@@@@R!@Ġ,Tcfk_virtual,(,) @8,Tcfk_virtuald@ @@@@A@@B@A'Za00'[a00:@@@'àࠠ#typx,< ,=@@@ @@@R%7@@@@@@@J@R&;@@,I,J@@@@J@R'C@@@R,O@@F@@J@R(H@@@,T,U@@PG@RM@@,[,\@@+ݠ @@J@R)V@@@@@aW@డ+1,k@,lA@@@@'@@F@RH@Rp@@@H@Ro@H@Rn@H@Rm0,u,t,t,u,u,u,u,u@Zf`@a@,gGA@B@,h@@@@డ*-$Name*from_ident,*,9@'7@@@'7@@I@R|'@@I@R{@I@Rz!@@ఐ%ident,:,?@*@@'N@@J@RJ@RJ@R5@@  @@>6@@ఐӠ$name,B,F@@@C@@.@@@@H@RI@RxI@ఐ#typ,JV,JY@O@@!P@@H@R@RZ@)Typedtree)ctyp_type,JZ,Jm@,)ctyp_type!]@@@$)type_expr@@@AA,)ctyp_desc (R.core_type_desc@@@A@@A(;GG(;GH@@(VB,(ctyp_env!t@@@@B@A($?HH(%?HH@@(bD,(ctyp_loc#$!t@@@@C @A(0@HH(1@HH@@(nE,/ctyp_attributes/$@@@@D)@A(9AHH(:AHI @@(wF@A(==HAHE(>=HAHi@@({CM>@@G@RG@Rk@Ġ!-#nz-$n|@!@-(nx-)ny@@$G@R+0-'-&-&-'-'-'-'-'@ @@@ࠠ!qy-4n}-5n~@@@,@@@R-@@@@@;@@ఐI$iter-E-F@#@@@I>@H@R0-E-D-D-E-E-E-E-E@)@@-^i@@@@ఐ$!q-X-Y@@@ZG@R@@@@@@A-_@@@aV@@U@@@-c @@ఐq$iter-m-n@K@@@!@@F@U@@F@U@@F@U@F@UP@@ఐ#cls--@@@_@)Typedtree+cstr_fields-@E @@!Ġ!@@G@U@@G@UG@UG@Ur@@2@@s@=@@F@Q@@AA@F@Q0--------@@@@@AA@@@@U0--------@@@@@@@ᠰ@ࠠ8search_method_expression{--@@@@@@@VF@U@(@@@UnF@U"'@@@VF@U#@@U$F@U@@UF@U0--------@*$@%@-a@@@@#cls}--@@@%0--------@1-- @@@@@@$name~--@@@/0--------@ ;@@. k@@@@Aࠠ$iter..@@@@"7@@@U4G@U.@@@U-G@U*'@@@UyG@U)@G@U,0........@$0U@'@.,l@@@@)_Ġ"W.& .' @"V@@@@!0.$.#.#.$.$.$.$.$@,@(@@U+H@U(@+@.Am@@@@డ,%raise.:).;.@}@@@}@@H@US3G@UzG@UOH@UR@H@UQ@@ภ)Not_found.P/.Q8@ @@@@@I@UXI@U\/@@@@0@Ġ"Z._9.`9@"Xঠ'cf_desc.j9E.k9L@gĠ)Typedtree*Tcf_method.t9O.u9c@8*Tcf_methodC@)g#loc@@@@@@)q,private_flag@@@@@@@CB@F@A)j11)j11@@@)Ǡࠠ%label.9e.9j@@@"@@@U<@@@U;0........@y@@@@.9l.9m@@%@@J@U= @Ġ-Tcfk_concrete.9o.9|@@.9~.9@@@@J@UB@ࠠ#exp.9.9@@@(@@@UC'@@@.9@@A@@J@UD,@@@[.9@@@@J@UE1@@@.9C.9@@J@U26@@.9.9@@.]G@U0@@J@UF@@@@@@A@డ- .9.9@@@@+H@Uc@@@H@Ub@H@Ua@H@U`0........@ga@b@/ n>8@9@/o@@@@ఐs%label/ 9/ 9@@@I@@I@Um@#txt/9/9@,#txt(Asttypes#loc!a@@@@@@,#loc(Location!t@@@@A @A4parsing/asttypes.mlixx@@d@Aww@@c1%@@vI@UoF@@ఐZ$name/H9/I9@0@@S@@A@@ @@H@UxI@UkY@ఐ#exp/X/Y@]@@HG@U^e@Ġ#^/c/d@#\@/h/i@@]G@UH0/g/f/f/g/g/g/g/g@C@@@ࠠ!q/t/u@@@.@@@UJ@@@@@t@@ఐ$iter//@\@@@w@H@U|0////////@b@@/p@@@@ఐ$!q//@@@G@U@@@@X@@A/@@@@@Vy@@/ @@ఐ$iter//@@@@#ߠ <@@F@V@@F@V)w@@F@V@F@VP@@ఐ#cls//@Ӱ@@_@)Typedtree+cstr_fields/@ @@$ a@@G@V@@G@VG@WG@Vr@@2@@s@=@@F@U'@@AA@!F@U!0////////@@@@@AA@@,'@@W0////////@@@@@@@@-R-LA@,N,HA@++A@+h)@)I@@5@@- @;@I@/ @  @  @ ? @ ?@d:@]W@X@0!j@@00 0 0 0 0 0 0 0 @Aa@@0eLN0 @,000000000@-@@@.ڐ This module is used to search for structure items by name in a Typedtree.structure. One function creates two hash tables, which can then be used to search for elements. Class elements do not use tables. 0#`ZZ0$c/1@@@@@@@0&d22@@(Analyser F0203"@@Т%My_irG0=%00>%5@Р(Odoc_sig.Info_retriever(Odoc_sig0K%80L%O@ 00I0H0H0I0I0I0I0I@--@--A@,,A@,U,OA@+*@*]@n@X@f@t@@O@ N@ | @ 1 x@  6@ ]@@g@@^Q0q@@-,@@Б#SigH0^i0^l@@гРJ(Analyser(Odoc_sig0^o0^@@#Arg@(Odoc_sig.Info_retriever$file&Stdlib#ref&stringO@@@W@@@W@,odoc_sig.mlitHNtHc@@T@)file_name#ref@@@W@@@W@ww@@/U@2get_string_of_file@#intA@@@W@@@@W2@@@W@@W@@W@/|0|@@JV@,prepare_file@A@@@W@G@@@W$unitF@@@W@@W@@W@JKQKK|@@eW@(preamble@\@@@W@b@@@W@@!a@W(Location!t@@@W@@W@$listI@@@W\@@@W&optionJ*Odoc_types$info@@@W@@@W@@W@@W@@W@@W@@W@/V@@X@5get_comments_in_class@{@@@W@@@@W'%$info@@@W@@@WB*Odoc_class-class_element@@@W@@@W@@W@@W@@W@@@Y@6get_comments_in_module@@@@W@@@@WXV$info@@@W@@@Ws+Odoc_module.module_element@@@W@@@W@@W@@W@@W@IOz@@ Z@;name_comment_from_type_decl@@@@W@@@@W@)Parsetree0type_declaration@@@W@@@W}&@@@W$info@@@W@@@W@@W@@@W~@@W|@@W{@@Wz@@Wy@013@@K[@2manifest_structure@(Odoc_env#env@@@Wx@ԠS@@@WuѠ$info@@@Ww@@@Wv@@Wt@@@Ws@%Types)type_expr@@@Wr)Odoc_type-type_manifest@@@Wq@@Wp@@Wo@@Wn@opG}@@\@-get_type_kind@?#env@@@Wm@@@@Wj $info@@@Wl@@@Wk@@Wi@@@Wh@=.type_decl_kind@@@Wg;)type_kind@@@Wf@@We@@Wd@@Wc@28@@]@-get_cstr_args@x#env@@@Wb@@@@Wa@)Typedtree5constructor_arguments@@@W`b0constructor_args@@@W_@@W^@@W]@@W\@   !@@a@+merge_infos@ZX$info@@@W[@@@WZ@ge$info@@@WY@@@WXrp$info@@@WW@@@WV@@WU@@WT@!Z!`!!@@b@8analyse_module_type_kind&erased)Odoc_name#Map!tР'Removed@+Constrained /with_constraint@@@WS@@@WR@@@WQA@@@WP@@@WO@@@WN@#env@@@WM@-!t@@@WL@<+module_type@@@WK@+module_type@@@WJj0module_type_kind@@@WI@@WH@@WG@@WF@@WE@@WD@X"0"6Y#-#W@@sc@7analyse_class_type_kind@(#env@@@WC@\!t@@@WB@T@@@WA@q*class_type@@@W@@"*class_type@@@W?/class_type_kind@@@W>@@W=@@W<@@W;@@W:@@W9@##$C$g@@d@1analyse_signature@@@@W8@@@@W7@)signature@@@W6@M)signature@@@W5(t_module@@@W4@@W3@@W2@@W1@@W0@%%&&K@@e@@03m3l3l3m3m3m3m3m@&=@6@;3r@@@@РC%My_ir3^3^@@+all_special@@@@W/@@@@W.@@@W+ud$info@@@W-@@@W,@@W*@@W)@@W(@ReiS{@@ N@9blank_line_outside_simple@@@@W'@ @@@W&$boolE@@@W%@@W$@@W#@ V W9@@'O@2just_after_special@@@@W"@$@@@W!@@@W$info@@@W @@@W@@W@@W@@W@4]ae5^~@@OP@-first_special@F@@@W@L@@@W-@@@WѠ$info@@@W@@@W@@W@@W@@W@\d]e@@wQ@,get_comments@@$text@@@W!a@W@@W@|@@@W@@@@W$info@@@W @@@W #@@@W @@W @@W @@W@@W@kCGlZ@@R@@@@4N^@@@@X@@@X@@@@@@X@@@X@@@@@@@X@@@@X@@@X@@X@@X@@@@@@@X@@@@X@@@X@@X@@X@@@@@@@X@@@@X@@|@@@X@@X@{@@@Xx@@@Xàwtq@@@X@@@X@@X@@X@@X@@X@@X@p@m@l@k@@@X@j@@@Xihg@@@X@@@Xfeb@@@X@@@X@@X@@X@@X@a@^@]@\@@@X@[@@@XZYX@@@X@@@XWVS@@@X@@@X@@X@@X@@X@R@O@N@M@@@X@L@@@X@KH@@@XG@@@XFE@@@XDCB@@@X@@@X@@X@@@X@@X@@X@@X@@X@A@>@=@<9@@@X@87@@@X654@@@X@@@X@@X@@@X@30@@@X/,@@@X@@X@@X@@X@+@(@'@&%@@@X@$#@@@X"! @@@X@@@X@@X@@@X@@@@X@@@X@@X@@X@@X@@@@@@@X@@@@X@@@@X@@@X@@X@@X@@X@ @ @ @@@@X@@@X@@@@X@@@X~@@@X}@@@X|@@X{@@Xz@@@Р@@@@Xy@@@Xx@@@XwA@@@Xv@@@Xu@@@Xt@@@@Xs@@@@Xr@@@@Xq@@@@Xp@@@Xo@@Xn@@Xm@@Xl@@Xk@@Xj@@@@@@@Xi@@@@Xh@@@@Xg@@@@Xf@@@@Xe@@@Xd@@Xc@@Xb@@Xa@@X`@@X_@@@@@@@X^@@@@X]@@@@X\@@@@X[@@@XZ@@XY@@XX@@XW@@XV@@@@@@65^b@@Š@ࠠ$file6B6C@@@@@@Y^@@@Y]J@X06J6I6I6J6J6J6J6J@@@@@@@@@hg@<;@@@@@|{@YX@@@=6s@@@డ$file#Sig6|6}@8@@@X@@@X@@̰  @@@8@5I R This variable is used to load a file as a string and retrieve characters from it.66@@@@@@@6@@@H@ࠠ)file_name6)16):@@@@@@Ya@@@Y`J@Y_066666666@asm@n@6t@@@డ7)file_name#Sig6)=6)J@@@@X@@@X@@  @@!@5 The name of the analysed file. 66(@@@@@@@6)-@@@)@ࠠ2get_string_of_file67?67Q@@@@@@@Yg@@@@Yf@@@Ye@@Yd@@YcJ@Yb066666666@GYS@T@7 u@@@డ}2get_string_of_file#Sig77T77j@@3@@@X@0@@@X/@@@X@@X@@X@.@+@@,@5֐ 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.7LP7 6@@@@@@@7"7;@@ @/@ࠠ,prepare_file7/70@@@@F@@@Ym@E@@@YlD@@@Yk@@Yj@@YiJ@Yh07<7;7;7<7<7<7<7<@Md^@_@7Uv@@@డ,prepare_file#Sig7O7P@@d@@@X@c@@@Xb@@@X@@X@@X@_@\@@,@6" Z This function loads the given file in the file global variable and sets file_name.7klp7l@@@@@@@7n@@ @/@ࠠ5get_comments_in_class7{ 6 >7| 6 S@@@@2@@@Yw@1@@@Yv0/.@@@Ys@@@Yr-,)@@@Yu@@@Yt@@Yq@@Yp@@YoJ@Yn077777777@^uo@p@7w@@@డ&5get_comments_in_class#Sig7 6 V7 6 o@@a@@@X@`@@@X_/@@@X@@@X[.@@@X@@@X@@X@@X@@X@U@R @@L.@6 3 The function used to get the comments in a class. 77 5@@@@@@@7 6 :.@@/@>@ࠠ6get_comments_in_module7  7  @@@@m@@@Y@l@@@Ykji@@@Y}@@@Y|hgd@@@Y@@@Y~@@Y{@@Yz@@YyJ@Yx088888888@m@@8x@@@డ6get_comments_in_module#Sig8  8  @@@@@Y@@@@Y/@@@Y@@@Y.@@@Y@@@Y@@Y@@X@@X@@ @@L.@6 4 The function used to get the comments in a module. 8C q u8D q @@@@@@@8F  .@@/@>@ࠠ:tt_param_info_from_pattern8S!!8T!!@@@@(Odoc_env#env@@@_J@Y@@3@@@[ J@[&optionJ*Odoc_types$text@@@[@@@[J@[A@[ J@Y@2ՠ3@@@b?J@bE@@@bDJ@Y.Odoc_parameter*param_info@@@b=J@Y@@YJ@Y@@YJ@Y@@YJ@Y088888888@@@8y@@@@#env8!!8!!@@@S088888888@_8!!8'('>@@@@@@&f_desc8!!8!!@@@X088888888@ i@@8{@@@@@#pat8!!8!!@@@J088888888@l@@8|@@@@Aࠠ,iter_pattern8""8""@@@@324G@@@[@@@[K@Y[@@@YK@Y@K@Y088888888@".n@%@9}@@@@#pat9""9""@@@088888888@*@&@@YL@Y@)@9~@@@@ఐ#pat9"!"/9"!"2@5@@9*@@7099999999@%@@@(pat_desc9!"!"39""!";@#@@4DM@[@CK@[K@YK@Y@Ġ)Typedtree(Tpat_var9;"A"K9<"A"]@4>ࠠ%ident9D"A"_9E"A"d@@@4>@@@Y09E9D9D9E9E9E9E9E@/@@@@9N"A"f9O"A"g@@4>49@@N@Y@@N@Y @@@9X"A"h@@5@@5@@@ࠠ$name9c"l"|9d"l"@@@4@@@YM@Y09f9e9e9f9f9f9f9f@Q-'@(@9@@@డ7$Name*from_ident9{"l"9|"l"@4"@@@4"@@M@Y4@@M@Y@M@Y@@ఐL%ident9"l"9"l"@%@@49@@N@YN@YN@Y/@@  @@30@@9"l"x @@ภ+Simple_name9""9""@8+Simple_name@@@@+simple_name@@@@A@@B@A1odoc_parameter.ml^^@@@Fະ,'sn_name@@@&stringO@@@@@ ,'sn_type %Types)type_expr@@@@A @A W!W@@@@ఐ'patlist;#$ ;#$@@@H8@@M@[:M@[BM@[?*@@^ @@@@L@[%L@[LL@[93@డ*subst_type(Odoc_env;$$";$$5@հ@@@@@L@[S@@@L@[R@@L@[Q@L@[P@L@[OP@@ఐ]#env<$$6<$$9@C@@]@@ఐ#pat<$$:<$$=@@@1l@(pat_type<$$><$$F@& @@@@M@[^M@[eM@[bz@@; @@@@L@['L@[gM@[]@@<,$$G@@BK@[#K@[@Ġ)Typedtree.Tpat_construct<=$I$S<>$I$k@8.Tpat_construct77@@@ @@@ @77#loc0!t@@@ @@@ ܠ4C7constructor_description@@@ ޠ667@@@ @@@ @@@ ߠ4|6à7c#loc7q!t@@@ @@@ @@@ 1@@@ @@ @@@ @DDALAA7Z J L7]  @@@7c@<$I$m<$I$n@@HF@@N@Y@@N@Y}@ࠠ)cons_desc<$I$p<$I$y@@@L@@@Y@@<$I${<$I$|@@M68@@N@Y@@N@Y@@N@Y@@<$I$~<$I$@@PONL@@N@Y@@N@Y@@N@Y۠1K@@N@Y@N@Y@@N@Y@@@<$I$@@@@@డ$Path$same$Path<$$<$$@@$Path!t@@@4@ @@@4$boolE@@@4@@4@@4@/typing/path.mliWW@@D@@@@@L@[n@ @@L@[m@@L@[l@L@[k@L@[j0========@sm@n@= @@@@డ%Btype.cstr_type_path%Btype=!$$="$$@@%Types7constructor_description@@@^$Path!t@@@^@@^@0typing/btype.mli;.}.};.}.@@%Btypez@@@@@M@^@@M@^@M@^9@@ఐ)cons_desc=O$$=P$%@C@@0@@N@^N@^N@^M@@=Z$$=[$%@@z@@M@[zM@^N@^W@@డ&Predef)path_unit&Predef=r$%=s$%@$Path!t@@@_ @1typing/predef.mlill,@@&PredefX@@@@M@[yM@_M@[x@ภ+Simple_name=%Z%f=%Z%q@ະ㡠'sn_name=%Z%t=%Z%{@"()=%Z%=%Z%@@=%Z%~=%Z%@@@@M@_IM@_KM@_J@𡠐'sn_type= %%= %%@డ*subst_type(Odoc_env= %%= %%@@@@s@@M@_W@@@M@_V@@M@_U@M@_T@M@_S@@ఐ>#env= %%= %%@$@@@@ఐ#pat= %%= %%@ݰ@@@(pat_type= %%= %%@( @@@@N@_bN@_mN@_j@@; @@@@@M@_QM@_oN@_a@8'sn_text> %%> %%@ภ$None> %%> %%@91@@@@@M@_x@@M@_wM@_~@@@>'%Z%r>( %&@@@@L@_CL@_"@@@@DK@_AK@[h'@@>9 &&>: &&@@ @@ @@ภ+Simple_name>A&f&r>B&f&}@ະ'sn_name>M&f&>N&f&@"()>T&f&>U&f&@@>W&f&>X&f&@@@@M@_M@_M@_E@'sn_type>f&&>g&&@డb*subst_type(Odoc_env>t&&>u&&@`@@@@@M@_@`@@M@_[@@M@_@M@_@M@_i@@ఐ蠐#env>&&>&&@ΰ@@7v@@ఐ#pat>&&>&&@@@@(pat_type>&&>&'@)G @@@@N@_N@_N@_@@; @@@@M@_M@_N@_@⡠'sn_text>&&>&&@ภ$None>&&>&&@9@@@VS@@M@_@@M@_M@_@@@>&f&~>''@@*@@L@_L@_@@@@K@_K@_@@A>"!") @@K@Y0>>>>>>>>@@@@@AA@@@@b00>>>>>>>>@@@@@>""@@ఐ,iter_pattern>'('.>'(':@@@@9B:W@@J@b6@@J@b5i@@J@b4@J@b3@@ఐ@#pat? '(';Y@Z@@ @@[@@y @'\@@|J@Y@@AC_A@J@Y0?? ? ?????@B@@@@AXcA@J@Y0????????@W@@@@AogA@@@@bT0????????@n@@@=ސ This function takes a parameter pattern and builds the corresponding [parameter] structure. The f_desc function is used to retrieve a parameter description, if any, from a parameter name. ?'  ?(!!@@@@@@@y@yx@Aࠠ>tt_analyse_function_parametersW?5''?6'(@@@@@@@cJ@bV@Р*Odoc_types$info@@@d@@@dJ@bW@9:$case:@@@dr@@@dq@@@dpJ@bX>@@@bJ@d]@@@daJ@bY@@b_@@b^@J@b]0?h?g?g?h?h?h?h?h@ @@?z@@@@#envX?{'(?|'(@@@D0?y?x?x?y?y?y?y?y@O@K@F@7'@@bZ@@b[@@b\K@bU@R@?@@@@@3current_comment_optY?'(?'(@@@VJ@bc0????????@(b@@?@@@@@,pat_exp_listZ?'(?'(&@@@ZJ@bpJ@bi0????????@$@@?@@@@ఐ,pat_exp_list?()(5?()(A@@@?@@0????????@#@@@Ġ3?(G(O?(G(Q@3@@@@$0????????@@@@@%@@డ>%raise?((?((@@@@@@K@bJ@bJ@bnJ@bK@b@K@b@@ภ'Failure?((?((@8'Failurem@@@@&stringO@@@@A9 @@Aq=ocaml.warn_on_literal_pattern6E  7E  @@:E  ;E  @@@9H :tt_analyse_function_parameters: 'function' without pattern@((@()@@@((@()@@#@@L@bL@bL@bQ@@@ ((@!()@@b@@L@bL@bY@@P@@FZ@Ġ4+@0))#@1))%@4)ঠ%c_lhs@;))@<))@,%c_lhs!k@ @@@:@@@@@,'c_guard8`:@@@@@@@A @A;#));#))@@;,%c_rhs:@@@@B@A;$));$))@@;@A;"));"))@@;ࠠ-pattern_param[@m))@n))!@@@:J@cJ@bw@@@by0@s@r@r@s@s@s@s@s@@@@@@@z)) @{))"@@(J@bxM@bu@Ġ4@))2@))4@4~ࠠ+_second_ele\@))&@))1@@@N@b|@@@))5@))6@@@ @@M@b~$@@@@@@$J@bs@@M@b+@@@* @@,@@,@@@ࠠ)parameter_@!))@!))@@@@@@bL@b0@@@@@@@@@PJ@K@@1+@,@@@@@ภ.Odoc_parameter%Tuple@!))@!))@wภ4@!))@!))@4@@@A@@L@b@@L@bL@b#@డ*subst_type(Odoc_env@!))@!))@Ұ@@@@@L@b@@@L@b@@L@b@L@b@L@b@@@ఐ#envA!))A!))@g@@M@@ఐ-pattern_paramA!))A!)* @X@@;^@@M@b`@(pat_typeA!)* A!)*@+@@@@M@bM@bM@bn@@? @@@@L@bL@bM@bv@@hA-!)*@@@@@b{@@A2!))@@ภ1kA7"**$A8"**/A50ఐ)parameter AA"**-@@@AT@@0A@A?A?A@A@A@A@A@@@@@ภ1mAL"**.A5{@A@@РJ@b@@K@bK@b@@AW"**" @@5@@K@b@+%@@yJ@b@Ġ5bAg$*1*`Ah$*1*b@5`ঠ%c_lhsAr$*1*:As$*1*?@7ࠠ-pattern_param]Az$*1*@A{$*1*M@@@;ɠJ@b@@@b@%c_rhsA$*1*OA$*1*T@1ࠠ)func_body^A$*1*UA$*1*^@@@;R@@@b@@@A$*1*9A$*1*_@@J@b@Ġ5ӰA$*1*cA$*1*e@5@@@@A%@@M@b@@@@@@@@@@ࠠ)parameter`A%*i*wA%*i*@@@ %@@@cL@b0AAAAAAAA@IC@D@A4.@/@A@@@ఐ y:tt_param_info_from_patternA&**A&**@_@@@ u@@L@b@@=(@@L@b h e@@L@b@@L@bAL@b@<1=F@@L@b@@L@b X@@L@b@L@b@L@b@L@b3@@ఐ#envA'**A'**@`@@@@@డ@82desc_from_info_opt.Odoc_parameterB (**B (**@@͠@@@@@@@Y@@@ڠ$text@@@@@@@@@@@umvm.@@ s @@@@@N@c@@N@c@@@N@c@@N@c@@N@c@N@c@N@c @@ఐ3current_comment_optBJ(**BK(*+@@@@@BN(**BO(*+@@@9@@M@c*8@@M@c)@@M@c(@M@c'@@ఐ점-pattern_paramBf)++Bg)++@@@<@@M@c5@@@@@@Bo%*i*s @@@ࠠ!paB}/,(,7B~/,(,8@@@ @@@d L@cF0BBBBBBBB@@@B@@@ࠠ(next_expbB/,(,:B/,(,B@@@(rec_flag@@@7=j.@@@9@@@8<@@@:@CBA`@A>NIK>OI@@@>w@C,5,-C-5,-@@@@P@cj@Ġ71C66-L-C76-L-@7/ঠ&vb_patCA5,-CB5,-!@.ঠ(pat_descCK5,-#CL5,-+@.%Ġ)Typedtree(Tpat_varCU5,-.CV5,-@@>Xࠠ"idcC^5,-BC_5,-D@@@>X@@@c@@Cg5,-FCh5,-G@@>W>R@@P@c@@P@c@@@Cq5,-H@@>ڠ>@@P@c@@P@c@@@Cz5,-"C{5,-J@@=D@@P@cP@c@'vb_exprC6-L-xC6-L-@.ࠠ#expdC6-L-C6-L-@@@=P@@@c@@@C5,-C6-L-@@/b@@P@cP@c@@C6-L-C6-L-@@C"/m@@P@c@@P@c@@@ @@/u@@P@c@@P@c@ࠠ*func_body2eC6-L-C6-L-@@@=y@@@c@@@C6-L-@@-@@P@c@@@@@ࠠ$namefC7--C7--@@@?"@@@cO@c0CCCCCCCC@Sy@z@CPJ@K@C)#@$@C@@@డA$Name*from_identC7--C7--@>@@@>@@O@c?C@@O@c@O@c!@@ఐ"idD7--D7--@)@@>@@P@cP@cP@c5@@  @@96@@D 7-- @@@ࠠ)new_paramgD8--D8--@@@ @@@cO@c0DDDDDDDD@KXR@S@D3@@@ภ+Simple_nameD)8--D*8-.@ ະ u'sn_nameD59..D69..&@ఐq$nameD>9..)D?9..-@@@?@@P@c%@ ~'sn_typeDJ;..DK;..@డ F*subst_type(Odoc_envDX;..DY;..@ D@@@ @@P@c@ D@@P@c ?@@P@c@P@c@P@cI@@ఐ#envDr;..Ds;..@ٰ@@;V@@ఐ#expD;..D;..@@@>D@@Q@c@cj@(exp_typeD;..D;..@@@ v@@Q@cQ@cQ@cx@@@ @@ @@P@cP@cQ@c@ ˡ'sn_textD:.0.LD:.0.S@డB2desc_from_info_opt.Odoc_parameterD:.0.VD:.0.w@@@@ut@@P@d@@P@c@@@P@c@@P@c@@P@c@P@c@P@c@@ఐE3current_comment_optD:.0.xD:.0.@'@@A@@ఐ$nameD:.0.D:.0.@ð@@@5@@Q@d@@6@@ z w@@P@c@@P@cP@dP@d @@@D9..D<..@@ N@@O@cO@d@@@@ i@@@c@@E8-- @@ఐ)new_paramE >//*E >//3@@@E @@0E E E E E E E E @@@@ఐc*func_body2E>//5E>//?@@@@ @@E>//)E >//@@@@N@d"@%@@@@@L@dL@cV@@E1?/A/UE2?/A/V@@@@P@c@@@@ఐ)parameterE@@/Z/qEA@/Z/z@@@L@d'@ఐ)func_bodyEM@/Z/|EN@/Z/@@@L@d(@@ES@/Z/pET@/Z/@@0L@d&L@d#@@AEZ2,,E[B//@@5L@c]@@EdC//EeC//@@ @@O@c[@@@@ఐ)parameterEsD//EtD//@@@L@d2@ఐ)func_bodyED//ED//@@@L@d3@@ED//ED//@@L@d1L@d.@@AE0,F,R@@ @@E/,(,2 @@ఐ (next_expEG0+0;EG0+0C@ @ @E@@?`@@L@dC@dA0EEEEEEEE@"/)@*@E @@@(exp_descEG0+0DEG0+0L@@@@@@dB@Ġ-Texp_functionEH0R0^EH0R0k@8-Texp_function@1@@@@ACA`@A@')@f@@8@@)arg_label^@@)arg_label@@@;A'>A'T@@A>x%param_@@!t@@@<A'UA'e@@ALy%cases`@AQ@@@?@@@>@@@=A!flA"f@@A_z'partiala@Ah'partial@@@@A.fA/f@@Al{@CA@@@@@E@@@FCAo|ঠ%casesFH0R0nFH0R0s@,,U@@@dJ.@B,LK@@AF@C,@?@AA9@6, @CA@A'@$ࠠ,pat_exp_listhF%H0R0vF&H0R0@@@ԠӠA@@@dS@@@dR@@@dQ@@AF4H0R0lF5H0R0@@u@@N@dUN@dT@@@~@@@@N@dV@@@@ภ"::FEI00FFI00@:>ఐҠ!pFOI00FPI00@@@J@db0FNFMFMFNFNFNFNFN@4.@/@Fg@@@ఐ,>tt_analyse_function_parametersFaI00FbI00@@@@,@'@@L@df@L@de@L@dd@@ఐ#envFtI00FuI00@۰@@=$@@ఐ3current_comment_optFI00FI00@Ӱ@@1@@ఐi,pat_exp_listFI00FI00@;@@=>@@FI00FI00@@2A@@F@@J@d_J@d[F@@FJ00FJ00@@@@N@dX@@@@ภ6ܰFL1-1=FL1-1@A:ఐ5!p FL1-1>@  @@dJ@d|@ภ6ܰFL1-1?A:@A@F?J@dw@@L@d{L@d @@FL1-1;@@4J@dyJ@du&@@AFG0+05$@@8J@b0FFFFFFFF@*@@@B(@@L@c)@@@@AF()(/+@@@@A.,A@J@bkJ@bh0FFFFFFFF@+@@@@AG2A@J@beJ@bb0FFFFFFFF@F@@@@Af8A@@@@g0FFFFFFFF@e@@@E Analysis of the parameter of a function. Return a list of t_parameter created from the (pattern, expression) structures encountered. F'@'DF''@@@@@@@F''J@@K@@ࠠ0tt_analyse_valueiFP11GP11@@@@@@@kFJ@g@Ba@@@jJ@g@&optionJ*Odoc_types$info@@@k-@@@k,J@g@(Location!t@@@kJ@g@2BB@@@hJ@h@@@hJ@kK@@@kJJ@hA@@@hJ@h@@hJ@g@C(rec_flag@@@j J@g;*Odoc_value't_value@@@jJ@j@@@jJ@g@@gJ@g@@gJ@g@@gJ@g@@gJ@g@@gJ@g@@gJ@g@@#envkG|P11G}P11@@@y0GzGyGyGzGzGzGzGz@GP11G;z;@@@@@@3current_module_namelGP11GP11@@@0GGGGGGGG@ @@G@@@@@+comment_optmGP11GP12 @@@0GGGGGGGG@@@G@@@@@#locnGP12 GP12 @@@0GGGGGGGG@@@G@@@@@'pat_expoGP12GP12@@@0GGGGGGGG@@@G@@@@@(rec_flagpGP12GP12@@@{0GGGGGGGG@@@G@@@@@ࠠ#patqGQ2!2-GQ2!20@@@0GGGGGGGG@!@@G@@@ࠠ#exprGQ2!22GQ2!25@@@@@GQ2!2,GQ2!26@@@ఐD'pat_expHQ2!29HQ2!2@@,@@@@HQ2!2(@@ఐ.#patHR2D2RHR2D2U@@/@H)@@0HHHHHHHH@2:,@'@H/@@@(pat_descH#R2D2VH$R2D2^@2@@J@h@ఐ=#expH2R2D2`H3R2D2c@@@@(exp_descH9R2D2dH:R2D2l@ @@@@@h%@@H@R2D2QHAR2D2m@@ @@h,@Ġ)Typedtree(Tpat_varHUS2s2}HVS2s2@CXࠠ%identsH^S2s2H_S2s2@@@CX@@@h"0H_H^H^H_H_H_H_H_@J@@@@HhS2s2HiS2s2@@CXCS@@M@h$@@M@h# @@@HrS2s2@@M@h@Ġ)Typedtree-Texp_functionH}S2s2H~S2s2@ঠ%casesHS2s2HS2s2@,@@@h*@B,@@A@,@AA@,@CA@A@ࠠ-pat_exp_list2tHS2s2HS2s2@@@ G FC@@@h3@@@h2@@@h1B@@AHS2s2HS2s2@@@@M@h5M@h4J@@@2@@@@M@h6N@@HS2s2|HS2s2@@E @M@h7U@@U@@@ࠠ(name_prevHU33HU33@@@D@@@huL@hg0HHHHHHHH@tn@o@H<6@7@H@@@డF{$Name*from_identHU33HU33)@C@@@C@@L@hkD6@@L@hj@L@hi@@ఐ%identHU33*HU33/@'@@C@@M@hvM@hzM@hy2@@  @@63@@HU33  @@@ࠠ$namewI V333BI V333F@@@D_@@@hL@h|0I I I I I I I I @HUO@P@I&@@@డF$Name/parens_if_infixI"V333II#V333]@@Dw@@@lDz@@@k@@j@CUCU@@CA@@@D@@L@hD@@L@h@L@h~(@@ఐ(name_preIDV333^IEV333f@2@@D@@M@hM@hM@h<@@- @@@=@@IPV333> @@@ࠠ-complete_namexI[W3j3yI\W3j3@@@D@@@hL@h0I^I]I]I^I^I^I^I^@R_Y@Z@Iw@@@డG$Name&concatIsW3j3ItW3j3@@D@@@w@D@@@vD@@@u@@t@@s@D^D^@@DD@@@D@@L@h@D@@L@hD@@L@h@L@h@L@h2@@ఐ3current_module_nameIW3j3IW3j3@@@?@@ఐ$nameIW3j3IW3j3@I@@E@@M@hM@hM@hS@@D @@WT@@IW3j3u @@@ࠠ$codeyIX33IX33@@@E@@@icL@iQ@@@iRL@h0IIIIIIII@o|v@w@I@@@డH!!IY33IY33@@C#ref!a@~@@@m@@l'%field0AA#%@@@#$#%9@@CҰ@@@!@@L@iOL@iLL@h@@L@h@L@h4@@డ+Odoc_global)keep_code+Odoc_global3JY33@&Stdlib#ref$boolE@@@i@@@i@/odoc_global.mlitXXtXp@@+Odoc_globalMK@@K6@@M@hM@iMM@iKc@@U!@@8d@ภ$SomeJ;Z34J<Z34@Dఐd2get_string_of_fileJGZ34 JHZ34@@@@w@@L@iY@t@@L@iXs@@L@iW@L@iV@L@iU@@ఐ#locJeZ34JfZ34 @@@;@(Location)loc_startJnZ34!JoZ343@,)loc_start(Location!t@@@&Stdlib&Lexing(position@@@@@,'loc_end &Lexing(position@@@@A @A4parsing/location.mli[[7@@B,)loc_ghost#$boolE@@@@B@A \8:\8J@@(C@AZZ@@,A?5@@D&Lexing(position@@M@ik@ih@&Lexing(pos_cnumJZ344JZ34C@,(pos_cnum@@@! #intA@@@! @C,)pos_fname &stringO@@@!@@ @A*lexing.mliUU@@.Stdlib__LexingA,(pos_lnum@@@! @A@A V V@@ B,'pos_bol$!@@@! @B@AWW@@C.@AXX@@D4@@@@M@ieM@ilM@ij@@ఐP#locJ[4D4ZJ[4D4]@8@@/@(Location'loc_endK[4D4^K[4D4n@ @@e@@M@ir@io=@&Lexing(pos_cnumK[4D4oK[4D4~@a@@>@@M@idM@isM@iqM@@KZ34 K [4D4@@TP@@@@FxZ@@@iSU@ภ$NoneK-]44K.]44@FD@@@L@ixa@K3Y33@@c@@K5X33@@@ࠠ)new_valueK@`44KA`44@@@@@@i}L@iy0KCKBKBKCKCKCKCKC@x@@K\@@@,(val_name@@@$Name!t@@@@@ ,(val_info EB@@@@@@AA @A-odoc_value.mlYY/@@D,(val_type%Types)type_expr@@@@B@AZ04Z0P@@ E,-val_recursive)$boolE@@@@C%@A[QU[Qk@@F,.val_parameters5$listI.Odoc_parameter)parameter@@@@@@AD:@A0\lp1\l@@,G,(val_codeJ&stringO@@@@@@AEK@AA]B]@@=H,'val_loc[(location@@@AFW@AM^N^@@II@AQXRX@@MC(val_nameKa45Ka45 @ఐn-complete_nameKa45Ka45@@@G@@M@i@s(val_infoKb55+Kb553@ఐB+comment_optKb556Kb55A@*@@@w(val_typeKc5D5QKc5D5Y@డ*subst_type(Odoc_envKc5D5\Kc5D5o@@@@@@M@i@@@M@i@@M@i@M@i@M@i@@ఐ#envLc5D5pLc5D5s@}@@ @@ఐ7#patLc5D5tLc5D5w@ @@@)Typedtree(pat_typeL'c5D5xL(c5D5@6ʰ @@@@N@iN@iN@i@@= @@@@M@iM@iN@i@-val_recursiveL?d55L@d55@డK$e$gLId55LJd55@$d@@@J@j@$a@@M@j@M@j@M@i @@ఐ(rec_flagL^d55L_d55@t@@@@ภ(Asttypes)RecursiveLld55Lmd55@8)Recursive@@@@@@AB@@AB`C`@@@YJ@  @@N@j 3@@@@@@M@iM@jN@j ;@.val_parametersLe55Le55@ఐ _>tt_analyse_function_parametersLe55Le56@ @@@=@@M@j#@ [ Z@@M@j"@@M@j!@ S RH @@M@j @@M@j@@M@jL2!@@M@j@@M@j@M@j@M@j@M@jq@@ఐK#envLe56Le56 @1@@~@@ఐ4+comment_optLe56 Le56@@@@@ఐE-pat_exp_list2Le56Le56$@@@  HH@@N@j9@@N@j8@@N@j7N@jCN@j@@@\@@mj@@M@j@@M@jM@jGM@j5@b(val_codeMf6'64Mf6'6<@ఐG$codeM f6'6?M f6'6C@°@@ut@@M@jT@@M@jSM@jWM@jU@n'val_locMg6F6SMg6F6Z@ຠ,(loc_impl*Odoc_types(location@@@U&optionJ@@@R@@@Q@@,)loc_inter !t@@@T@@@S@A@A.odoc_types.mligY]gY|@@ ~@Aff9@@$}(loc_implMTg6F6_MUg6F6g@ภ$SomeM\g6F6jM]g6F6n@Hఐ#locMfg6F6oMgg6F6r@@@<!@@@@>JJ@kJ@kJ@k J@kJ@jf@@N@jeN@jl1@A)loc_interMg6F6uMg6F6~@ภ$NoneMg6F6Mg6F6@H@@@QP@@N@jy@@N@jxN@jK@@@Mg6F6]Mg6F6@@@@M@j]M@jS@@@M`44Mh66@@[V@@M`44@@ภ=ذMj66Mj66AAఐn)new_value Mj66@m@n@M@@I0MMMMMMMM@kx@@@ภ=ڰMj66AA@A@M=Y@@K@jK@j@@Mj66@@A_@@K@j@)#@@@$@@@%@@g@{&@@@'@@jJ@hf@Ġ)Typedtree(Tpat_varMl66Ml66@Hࠠ%identuMl66Ml66@@@H@@@hF@@Ml66Ml66@@HߠH@@M@hH@@M@hG@@@Ml66@@@h:@@Ml66Nl66@@"n@@M@hI@@Nl66Nl66@@ @M@hJ@@@@@ࠠ(name_preNn77%Nn77-@@@Ij@@@jL@j0NNNNNNNN@=7@8@N1@@@డK$Name*from_identN-n770N.n77?@H԰@@@H@@L@jI@@L@j@L@j@@ఐ\%identNBn77@NCn77E@%@@H@@M@jM@jM@j/@@  @@30@@NNn77! @@@ࠠ$nameNYo7I7XNZo7I7\@@@I@@@jL@j0N\N[N[N\N\N\N\N\@ERL@M@Nu@@@డL$Name/parens_if_infixNqo7I7_Nro7I7s@O@@@I@@L@jI@@L@j@L@j@@ఐq(name_preNo7I7tNo7I7|@%@@I@@M@jM@jM@j/@@  @@30@@No7I7T @@@ࠠ-complete_nameNp77Np77@@@I@@@jL@j0NNNNNNNN@ERL@M@N@@@డLR$Name&concatNp77Np77@B@@@J @@L@j@J@@L@jJ@@L@j@L@j@L@j @@ఐD3current_module_nameNp77Np77@,@@-@@ఐ$nameNp77Np77@7@@J3@@M@jM@jM@jA@@2 @@EB@@Np77 @@@ࠠ$codeNq77Nq77@@@JN@@@jL@j@@@jL@j0NNNNNNNN@]jd@e@O@@@డM02Or77Or77@/@@@/&@@L@jL@jL@j@@L@j@L@j@@డ)keep_code+Odoc_globalO,r78@@@M@@M@jM@jM@j5@@( @@ 6@ภ$SomeO=s8 8O>s8 8@Iఐf2get_string_of_fileOIs8 8OJs8 81@@@@y@@L@j@v@@L@ju@@L@j@L@j@L@jX@@ఐ#locOgs8 82Ohs8 85@@@=i@(Location)loc_startOps8 86Oqs8 8H@ @@@@M@k@kw@&Lexing(pos_cnumO~s8 8IOs8 8X@˰@@@@M@kM@kM@k@@ఐ預#locOt8Y8oOt8Y8r@Ѱ@@l@(Location'loc_endOt8Y8sOt8Y8@ @@@@M@k@k @&Lexing(pos_cnumOt8Y8Ot8Y8@@@@@M@kM@kM@k @@Os8 8Ot8Y8@@@@~@@K@@@j@ภ$NoneOv88Ov88@J@@@L@k@Or77@@@@Oq77@@@ࠠ)new_valueOx88Ox88@@@u@@@kL@k0OOOOOOOO@@@O@@@(val_nameOy88Oy88@ఐZ-complete_nameOy88Oy89 @@@KJ@@M@k@(val_infoPz99Pz99$@ఐp+comment_optP z99'P z992@X@@.@(val_typeP{959BP{959J@డ*subst_type(Odoc_envP#{959MP${959`@@@@@@M@k:@@@M@k9 @@M@k8@M@k7@M@k6R@@ఐŠ#envP={959aP>{959d@@@ :_@@ఐe#patPL{959ePM{959h@7@@ n@)Typedtree(pat_typePU{959iPV{959{@: @@>@@N@kEN@kLN@kI~@@= @@@@M@k4M@kNN@kD@-val_recursivePm|9~9Pn|9~9@డO=((Pw|9~9Px|9~9@(@@@ !M@kX@(@@M@kW@M@kV@M@kU@@ఐ(rec_flagP|9~9P|9~9@@@ 5@@ภ(Asttypes)RecursiveP|9~9P|9~9@/@@@ CN@kc@@@@*@@M@kSM@keN@k`@$.val_parametersP}99P}99@ภDP}99P}99@D@@@30@@M@km@@M@klM@ks@((val_codeP~99P~99@ఐݠ$codeP~99P~99@@@;:@@M@k{@@M@kzM@k~M@k|@4'val_locP9: P9:@ຠơ(loc_implP9:P9:@ภ$SomeP9:!P9:%@Kఐ T#locQ9:&Q9:)@ <@@ #@@@@٠ @@N@kN@k*@ӡ)loc_interQ9:,Q9:5@ภ$NoneQ9:8Q9:<@L0@@@@@N@k@@N@kN@kD@@@Q&9:Q'9:>@@}@@M@kM@kL@@@Q.x88Q/:A:M@@TO@@Q1x88@@ภAjQ6:\:iQ7:\:tAE/ఐg)new_value Q@:\:r@f@g@QS@@ J@k0QAQ@Q@QAQAQAQAQA@fs@@@ภAnQM:\:sAE|@A@PѠJ@k@@K@kK@k@@QX:\:g"@@E@@K@k@-'@@}@(@@^@x)@@@*@@@+@@ J@kJ@jI@Ġ)Typedtree*Tpat_tupleQu:v:Qv:v:@KӠ@Qz:v:Q{:v:@@KΠKˠL@@M@h[@@M@hZ@@M@hY m@@@ @@ C@hM p@@Q:v:Q:v:@@%@@M@h\ x@@Q:v:Q:v:@@ @M@h] @@ @@ภEϰQ;&;1Q;&;3@E@@@ AJ@kJ@k @@Q;5;>Q;5;?@@ &@@M@ha@M@h` @ @ @@ภEQ;z; 6@E@ 7@@ [J@kJ@k @@AQR2D2K =@@ _J@h0QQQQQQQQ@ @@@  A@@ @@A  BA@ oJ@g0QQQQQQQQ@ @@@@A  FA@ J@g0QQQQQQQQ@ @@@@A  JA@ J@g0QQQQQQQQ@ @@@@A 2 NA@ J@g0QQQQQQQQ@ 1@@@@A G RA@ J@g0QQQQQQQQ@ F@@@@A ^ VA@@  @@l0QQQQQQQQ@ ]@@@P  Analysis of a Tstr_value from the typedtree. Create and return a list of [t_value]. @raise Failure if an error occurs.QN1B1GQO11@@@@@@@ h@ h g@mAࠠ5tt_name_of_class_exprQ5>AR*>5>F@1@@R=@@30R)R(R(R)R)R)R)R)@%@@@)Typedtree'cl_descR6>5>GR7>5>X@,'cl_desc2:@@@M/class_expr_desc@@@@@ ,&cl_loc J!t@@@@A @AMt<,,Mu<,,/@@M,'cl_typeJ>*class_type@@@@B@AM=,0,5M=,0,O@@M,&cl_env#,P,UM>,P,c@@M,-cl_attributes/J=@@@@D*@AM?,d,iM?,d,@@M@AM;++M;+,@@ML>@@8@@@lJ@Ġ)Typedtree)Tcl_identR>^>fR>^>y@8)Tcl_identK@@@@G4!t@@@РM#locG-!t@@@@@@ѠLG#@@@@@@@C@@G@AMC,,MC,,@@@Nࠠ!pR>^>{R>^>|@@@+@@@l0RRRRRRRR@@@@@R>^>~R>^>@@-+@@M@l@@M@l @@R>^>R>^>@@,GN@@M@l@@M@l@@@PR>^>@@@@M@l@@@@డP$Name)from_pathR>^>R>^>@@$Path!t@@@NA@@@@@@MJ  MJ  @@MP@@@@@K@lNN@@K@l@K@l0RRRRRRRR@SM@N@S@@@@ఐ[!pS>^>S>^>@@@-@@L@lL@lL@l@@6 @@J@l@Ġ)Typedtree.Tcl_constraintS*>>S+>>@8.Tcl_constraint@3/@@@KEN*class_type@@@@@@MN(@@@@@@MN2@@@@@@K@'MethSet!t@@@@EE@G@ANK..NM.i.@@@Nࠠ*class_exprSf>>Sg>>@@@3k@@@lM@l@@@Sq>>Sr>>@@@?@@N@l@@N@lL@@S}>>S~>>@@A@@@N@l@@N@lX@@S>>S>>@@CB@@N@l@@N@ld@@S>>S>>@@E@@N@ll@@@qS>>@@_@@N@lq@@q@Ġ)Typedtree)Tcl_applyS>>S>>@8)Tcl_apply%@3@@@ޠNN)arg_label@@@KѠM@@@@@@@@@@@@BC@G@ANH-e-gNH-e-@@@O0n*class_exprS>>S>>@@@k@@S>>S>>@@)(@@N@l&M@@N@l@@N@l@N@l@@N@l@@@ES>>@@@@N@l@@@@@@@@M@l@@ఐ 5tt_name_of_class_exprS>?T>?@@@@ @K@l0SSSSSSSS@@@T@@@@ఐ*class_exprT>?T>?!@@@L@l@@@@J@l@@T??T ??@@@@M@l@@@@డ-Odoc_messages*object_end-Odoc_messagesT0??T1??@&stringO@@@p_@0odoc_messages.ml]B7B;]B7BE@@-Odoc_messages@@BJ@pJ@l@@ATE>5>;@@FJ@l0TCTBTBTCTCTCTCTC@@@@@A7A@@QL@@xE0TGTFTFTGTGTGTGTG@6@@@S This function takes a Typedtree.class_expr and returns a string which can stand for the class name. The name can be "object ... end" if the class expression is not an ident or a class constraint or a class apply. TX;;TY;AAVF@@DO@x{@@@@G@@N@x|@@@@ఐ%*sth*U @@U]@>J@x0UJUIUIUJUJUJUJUJ@<@@@Ġ(*predef*$NoneU.Pq@@@Ѡb@@N@x5@#@5@@ภ$true(m@8U(I{@@@AB@@AU:@@U'@+@YJ@xK@x@@@At@ZW@@U=@@#expUuAA\UvAA_@@@J@xJ@x0UwUvUvUwUwUwUwUw@irn@o@U@@@@ఐ#expUAbAnUAbAq@@@U@@0UUUUUUUU@%@@@)Typedtree(exp_descUAbArUAbA@* @@*@@@x@Ġ)Typedtree-Texp_functionUAAUAA@ঠ%casesUAAUAA@,@@@x@B,@@A@,@AA@,@CA@A@ࠠ,pat_exp_listUAAUAA@@@tsQ,@@@x@@@x@@@xC@@AUAAUAA@@@@M@xM@xK@@@2@@*I@@M@xO@@O@@ఐ#,pat_exp_listUAAUAA@#@$@U@@QQ@@@x@@@x@@@x0UUUUUUUU@i9@@@ĠJ4VABVAB@J3@@@@Qj@@N@x@@N@x@@N@x0V V V V V V V V @@@@ @ @@డT%raiseVBBVBB@/^@@@/^@@L@xJ@xJ@xL@x@L@x@@ภ'FailureV2BBV3BB@AడU!^V>BBV?BB@@J@@@X@P@@@WT@@@V@@U@@T@/ff/ff@@PCr@@@@@M@x@@@M@x@@M@x@M@x@M@xR@@డB(bad_tree-Odoc_messagesVpBB3@?@@@o@<.F.J=.F.R@@; <@@;@@N@xN@xN@xp@@డUR!^VBBVBB@O@@@O@@N@x@N@@N@xM@@N@x@N@x@N@x@@! VBBVBB@@i@@i@@O@yO@yO@y@@డ4method_without_param-Odoc_messagesVBBVBB@@M@@@oP@@@o@@o@....@@@@@[@@O@y@@O@y@O@y@@ఐ3current_method_nameVBBVBB@@@@@WVBB@@@@O@yO@yP@y @@ @@@@N@xN@yO@x@@VBBVBB@@@@M@xM@yN@x@@WBBWBB@@0B@@M@xM@x@@@@@ࠠ!lWBCWBC@@@Ry@@@x@@@x@@@x(@ @̠ˠR@@M@x@@M@x@@M@x3@@ఐ"!lW4C CW5C C @"@#@WH@@R@@@y@@@y@@@y0W?W>W>W?W?W?W?W?@M8@@@ĠKWOC&C7WPC&C9@K@@@@R@@O@y&@@O@y%@@O@y$0WXWWWWWXWXWXWXWX@@@@ @ @@ภK}WeCCWfCC@K|@@@K|@@M@y~@WlCC@@J@yJ@yz@ĠKtWyCCWzCC@Krঠ%c_lhsWCCWCC@Iࠠ-pattern_param WCCWCC@@@Q۠R@@@y8@@@y70WWWWWWWW@R@@@@@WCCWCC@@DR@@O@y<@@O@y;O@y9 @ĠKWCCWCC@Kࠠ+_second_ele!WCCWCC@@@\S@@@yD@@@yC%@@WCCWCC@@W@kS$@@O@yG@@O@yF@@O@yE5@@@ @@WLwS0@@O@yJ@@O@yI@@O@yHA@@@@@@S<@@O@yM@@O@yL@@O@yKM@ @ M@@@ࠠ)new_param$WDDWDD@@@^@@@yN@y0WWWWWWWW@pj@k@X MG@H@X @@@ภ+Simple_nameXDDXDD@_ະN'sn_nameXDDXDD@"??XDDXDD@@XDDXDD@@^@@O@yO@yO@y,@['sn_typeX'DEX(DE@డ#*subst_type(Odoc_envX5DEX6DE1@!@@@@@O@y@!@@O@y@@O@y@O@y@O@yP@@ఐ#envXODE2XPDE5@x@@]@@ఐҠ-pattern_paramX^DE6X_DEC@h@@RS@@P@y@@P@ys@)Typedtree(pat_typeXnDEDXoDEV@C@@W@@P@yP@yP@y@@D @@@@O@yO@yP@y@'sn_textXDDXDD@ภ$NoneXDDXDD@S@@@  @@O@y@@O@yO@y@@@XDDXDEX@@@@N@yN@y@@@@ @@@y@@XDD @@ภHXEoEXEoEALఐɠ)new_param XEoE@@@X@@0XXXXXXXX@@@@ภHXEoEAL@A@XE'@@M@yM@y@@XEoE@@L-@@M@y@)#@@4J@y@ĠLհXEEXEE@LӠঠ%c_lhsXEEXEE@ࠠ-pattern_param"XEEXEE@@@S<TQ@@@y_@@@y^@%c_rhsXEEXEE@ࠠ$body#YEEYEE@@@R@@@ye@@@Y EEY EE@@Tq@@O@yi@@O@yhO@yf@ĠMNYEEYEE@MM@@@@XˠT@@O@yq@@O@yp@@O@yo@@@ @@ؠנT@@O@yt@@O@ys@@O@yr@ @ @@డX#notYBF<FRYCF<FU@@1W@@@C1[@@@B@@A(%boolnotAA2@@@2""2""@@SE\@@@@@M@y@@M@y@M@y0Y[YZYZY[Y[Y[Y[Y[@zt@u@Yud^@_@Yw@@@@ఐa%firstYqF<FVYrF<F[@@@c@@3@@1I@@M@yN@y@@ࠠ)parameter%YFxFYFxF@@@ @@@yN@y0YYYYYYYY@,@@@ఐ!C:tt_param_info_from_patternYFFYFF@)@@@!?@@N@y@@T@@N@y!2!/@@N@y@@N@yAN@y@SU@@N@y@@N@y!"@@N@y@N@y@N@y@N@y-@@ఐ#envYFFYFF@@@Y:@@డX2desc_from_info_opt.Odoc_parameterYFG YFG+@ʰ@@@@@P@z@@P@z@@@P@z@@P@z @@P@z @P@z @P@z a@@ఐ+comment_optYFG,YFG7@@@n@@YFG YFG8@@@@@O@z'@@O@z&@@O@z%@O@z$}@@ఐ&-pattern_paramZG9GSZG9G`@@@TbU{@@O@zO@z5O@z3@@O@z2@@@@@@Z#FxF@@@ࠠ-current_param&Z1HHZ2HH@@@!@@@{N@zD0Z4Z3Z3Z4Z4Z4Z4Z4@@@ZM@@@ࠠ(next_exp'ZDHHZEHH@@@T@@@{N@zE@@ZMHHZNHH@@ @@zH@ఐؠ)parameterZ\HHZ]HH@#@@!@@@zJ0Z]Z\Z\Z]Z]Z]Z]Z]@)@@@Ġ+Simple_nameZmIIZnII'@ ʠঠ'sn_nameZxII*ZyII1@ %*opt*ZII5ZII:@@ZII4ZII;@@ @@Q@zTQ@zS'@@@ZII(ZII<@@ @@Q@zVQ@zU/@@@%@@!@@Q@zW3@@3@@ఐ$bodyZI}IZI}I@=@@Tc@@P@z`@z^F@(exp_descZI}IZI}I@/@@/@@@z_P@Ġ)Typedtree(Texp_letZIIZII@@ZIIZII@@@@R@zhf@ĠNȰZJJbZJJd@NƠঠ&vb_patZIIZII@FAঠ(pat_descZIIZII@EĠ)Typedtree(Tpat_varZIIZIJ@Uࠠ"id(ZIJZIJ@@@U@@@z@@ZIJZIJ@@UU@@R@z@@R@z@@@[IJ@@VqVj@@R@z@@R@z@@@[II[IJ@@T@@R@zR@z@'vb_expr[JJU[JJ\@F~ࠠ#exp)[&JJ]['JJ`@@@T@@@z@@@[-II[.JJa@@F@@R@zR@z@@[7JJe[8JJf@@ZG@@R@z@@R@z@@@ @@)G @@R@z@@R@z@ࠠ%body2*[OJJh[PJJm@@@U@@@z@@@[VJJn@@/@@R@z@@@@@ࠠ$name+[dJrJ[eJrJ@@@V@@@zQ@z0[g[f[f[g[g[g[g[g@6y@z@[PJ@K@[)#@$@[@@@డY$Name*from_ident[JrJ[JrJ@V)@@@V)@@Q@zV@@Q@z@Q@z!@@ఐ"id[JrJ[JrJ@)@@V@@@R@zR@zR@z5@@  @@96@@[JrJ @@@ࠠ)new_param,[JJ[JJ@@@#@@@zQ@z0[[[[[[[[@KXR@S@[@@@ภ+Simple_name[JJ[JJ@"ະ" 'sn_name[JK[JK"@ఐq$name[JK%[JK)@@@W(@@R@z%@"'sn_type[KK[KK@డ!*subst_type(Odoc_env[KK[KK@!۰@@@#@@R@z@!@@R@z!@@R@z@R@z@R@zI@@ఐ\#env\ KK\ KK@2@@V@@ఐ#exp\KK\KK@@@U@@S@z@zj@)Typedtree(exp_type\&KK\'KK@0@@"@@S@zS@zS@zz@@B @@"l@@R@zR@zS@z@"d'sn_text\>K,KT\?K,K[@డZy2desc_from_info_opt.Odoc_parameter\LK,K^\MK,K@A@@@ @@R@z@@R@z@A@@R@z@@@R@z@@R@z@R@z@R@z@@ఐ+comment_opt\nK,K\oK,K@l@@@@ఐ$name\{K,K\|K,K@Ű@@W@@S@{@@6@@$$@@R@z@@R@zR@{R@{ @@@\JK\KL@@"@@Q@zQ@{@@@@$@@@z@@\JJ @@ఐ)new_param\LCLf\LCLo@@@\ǰ@@t0\\\\\\\\@@@@ఐe%body2\LCLq\LCLv@B@@n @@\LCLe\LCLw@@u@P@{ @%@@ @@@uN@{N@zX@@\LxL\LxL@@19@@R@zm@@m@@ఐU)parameter\LL\LL@@@N@{%|@ఐ᠐$body\LL\LL@@@N@{&@@\LL\LL@@0N@{$N@{!@@A\I@I\\LM @@5N@z[@@\MM(\MM)@@$k@@Q@zY@@@@ఐ)parameter] MM] MM@Ӱ@@N@{0@ఐ$body]MM]MM@@@N@{1@@]MM] MM@@N@{/N@{,@@A]&HH@@@@](HH @@ภ]-MM].MM@Q&ఐ-current_param]7MM]8MM@@@]K@@J@{C0]9]8]8]9]9]9]9]9@@@]S@@@ఐ堐]MNC@Q@@@ N@{^Z@@@ @@N@{_^@@ఐb(next_exp]MND]MNL@g@@ k@@]MM]MNM@@ n@@v@@ J@{Ap@@@v@]FaFv]NNNd@@&@ఐ T < ;@@M@{i@ 6 1@M@{h@M@{g@M@{f@M@{e@M@{dA@@ఐ *#env]N}N]N}N@ @@ mN@@ఐ 3current_method_name]N}N]N}N@@@ [@@ఐ +comment_opt]N}N]N}N@@@ h@ mภo]XภR^N}N^N}N@R@@@ tN@{}y@@@ z@@N@{~}@@ఐ$body^N}N^N}N@@@ N@{@@]@@ }@^F<FO@@pJ@y@@A^C C @@@@A^ AA^!NN@@@@^(NN^)NN@@2@@M@x@@@@ภRc^2O!O+ @Ra@ @@ J@J@@@A^9AbAh @@ J@x0^7^6^6^7^7^7^7^7@@@@@A A@@ J@x@J@"0^=^<^<^=^=^=^=^=@@@@ @ J@xJ@xt 3(#default^@^@@A (@ J@xkJ@xh0^K^J^J^K^K^K^K^K@ N@@@@A m ,A@ J@xeJ@xb0^Q^P^P^Q^Q^Q^Q^Q@ l@@@@A  2A@ J@x_J@x\0^W^V^V^W^W^W^W^W@ @@@@A  8A@@  @@+0^[^Z^Z^[^[^[^[^[@ @@@]# Analysis of a method expression to get the method parameters. @param first indicates if we're analysing the method for the first time ; in that case we must not keep the first parameter, which is "self-*", the object itself. ^l?@^m@A@@@@@@@^oAA J@@ K@ [@ࠠ7analyse_class_structure-^|OO^}OO@@@@&)@@@J@3@Y@@@J@9@,/class_signature@@@J@?@@@@J@E@-@@@J@K@)Parsetree/class_structure@@@J@Q@Z+8@@@J@W@@@`J@]$listI*Odoc_class/inherited_class@@@@@@ɠ-class_element@@@@@@@@J@^@@_J@X@@YJ@R@@SJ@L@@MJ@F@@GJ@@@@AJ@:@@;J@4@@5J@2 :@@#env/^OO^OO@@@x0^^^^^^^^@ H^OO_lm0@@@@@@2current_class_name0_ OO_ OO@@@0_ ___ _ _ _ _ @ @@_"@@@@@,tt_class_sig1_OO_OP@@@0________@@@_3@@@@@(last_pos2_-OP_.OP @@@0_+_*_*_+_+_+_+_+@@@_D@@@@@)pos_limit3_>OP_?OP@@@0_<_;_;_<_<_<_<_<@@@_U@@@@@%p_cls4_OOP_POP@@@0_M_L_L_M_M_M_M_M@@@_f@@@@@&tt_cls5_`OP_aOP$@@@0_^_]_]_^_^_^_^_^@@@_w@@@@@&_table6_qOP%_rOP+@@@0_o_n_n_o_o_o_o_o@@@_@@@@Aࠠ$iter7_P.P<_P.P@@@@@@@@CK@,@@@:K@d@@@@K@N@@@ZK@e@@@@jK@f@_*+class_field@@@K@@@@lK@j1K@g٠'K@@@@K@h@@s@@r@@q@@p@K@o0________@P\@S@_@@@@)acc_inher8_P.PA_P.PJ@@@M0________@X@T@I@>@9,*@@i@@k@@l@@m@@nL@c@a@_@@@@@*acc_fields9_P.PK_P.PU@@@_K@w0________@".q@%@` @@@@@(last_pos:`P.PV`P.P^@@@gK@K@}0````````@$@@`@@@@@[QĠTI`PjPt`PjPv@TH@@@@uK@K@0````````@&@@`3@@@@@ࠠ!s=`-PzP`.PzP@@@/Q@@@M@0`0`/`/`0`0`0`0`0@@@@ఐ)\2get_string_of_file`?PzP`@PzP@(@@@/o@@M@@/l@@M@/k@@M@@M@@M@@@ఐZ(last_pos`YPzP`ZPzP@:@@V'@@ఐ,)pos_limit`fPzP`gPzP@@@4@@+@@85@@`kPzP@@@@`uPP`vPP@@,@@@M@0`w`v`v`w`w`w`w`w@^UO@P@`@@@ࠠ(ele_coms>`PP`PP@@@,,,@@@@@@M@@@`PP`PP@@#@@@డ0i+all_special%My_ir`PP`PP@@-"@@@@-!@@@- @@@-/@@@@@@@@@@@@@-@-@@@-;@@M@@-:@@M@-9@@M@ؠ-8H@@M@@@M@@M@@M@@M@_@@డ_ `PP`PP@@@@-h@@N@N@N@@@N@@N@z@@ఐ*^)file_nameaPP@* @@!@@O@O@O@@@% @@@@ఐ蠐!saPPaPP@@@-@@N@N@N@@@y @@M@@@a#PP@@@ࠠ,ele_comments?a.PQ a/PQ@@@_P@@@]M@D@@@RM@0a7a6a6a7a7a7a7a7@@@aP@@@డ`$List)fold_leftaLQQ&aMQQ4@@@!a@0@!b@0 @@1@@1@ @X @@@1@@1@@1@@1@XX@@X[@@@@>M@@O$info@@M@*M@ @M@ @M@@ @@@M@@M@@M@@M@0a}a|a|a}a}a}a}a}@F@@@@@#acc@aQ5QJaQ5QM@@@$@@@"scAaQ5QUaQ5QW@@@-M@!0aaaaaaaa@g6@@a@@@@ఐ"scaQ[QsaQ[Qu@@@aٰ@@0aaaaaaaa@#@@@*Odoc_types&i_descaQ[QvaQ[Q@,&i_descM@@@O$text@@@6@@@5@@,,)i_authors$listI&stringO@@@8@@@7@A@AU  U  @@q,)i_version#@@@:@@@9@B@AV  V  @@r,&i_sees2"#see@@@<@@@;@C/@AWW0@@s,'i_sinceB֠0@@@>@@@=@D>@AXPTXPl@@t,(i_beforeQAB@@@AV@@@B@@@@@@?@ET@AYY@@u,,i_deprecatedgd@@@D@@@C@Fb@AZZ @@ v,(i_paramsue%param@@@F@@@E@Gr@A[CG[C]@@w,3i_raised_exceptionsu%0raised_exception@@@H@@@G@H@A \ \@@*x,.i_return_value)@@@J@@@I@I@A]]@@8y,(i_custom@@@M@@@N@@L@@@K@J@A/^480^4Y@@Nz@A3T R V4T R k@@Rp@@@@@)@@@(@Ġ$NonebQQbQQ@]@@@@͠@@Q@2@@Q@10bbbbbbbb@@@@ @@@ఐ#accbQQbQQ@@@5M@> @Ġ$SomebQQbQQ@]gࠠ!tBbQQbQQ@@@@@@9@@@@@@@Q@;@@Q@:@@@@డa!@bQQbQQ@@!a@i@@@@  @@@@@@@@@@@<6ww<6wwA@@\@@@@@O@F@@@O@E@@O@C@O@B@O@A0bbbbbbbb@GJD@E@c@@@@ఐ~#accc QQc QQ@h@@@@ภSHcQQcQRAW ภ-Class_comment cQR @8-Class_comment8@@@R@*Odoc_types$text@@@Q@AB@C@A-odoc_class.mlX.0X.R@@@SDఐ!tc:QR c;QR @>@@@@P@_P@dP@cH@@1 @@P@^K@ภSm7AWz@8A@bϠQ@U@@P@ZP@iX@@cUQQA@@z%@@P@QP@Y`@@SH@@.M@PM@?e@@AcbQ[QmN@@2M@%@@AcfQ5QQR@@@@N@yN@x0cfcececfcfcfcfcf@@@@@AcmQ5QEcnQR@@@@@N@@N@N@{9@@ภWc}RR c~RR"@W@@@OM@@@ఐ(ele_comscR#R3cR#R;@P@@2#@@N@N@N@@@L @@)\@@cPQ @@ఐנ)acc_inhercRKRXcRKRa@@@ 0cccccccc@ly@z@c@@@డbz!@cRKRncRKRo@@@@@@L@@@@L@@@L@@L@@L@!@@ఐ栐*acc_fieldscRKRccRKRm@Ȱ@@.@@ఐ,ele_commentscRKRpcRKR|@8@@)@@M@M@M@C@@ @@.D@@cRKRWcRKR}@@j5@L@K@Z@@@@@x@@@DK@K@@ĠWcR~RdR~R@Wࠠ$item;dR~Rd R~R@@@^0dddddddd@@@@ࠠ!q<dR~RdR~R@@@cl@@@@@@@@@@@ࠠ#locCd%RRd&RR@@@(Location!t@@@M@0d-d,d,d-d-d-d-d-@1@,@dG("@#@dI@@@ఐ:$itemdBRRdCRR@@@@)Parsetree'pcf_locdKRRdLRR@,'pcf_loc@@@9(@@@9@A,(pcf_desc 0class_field_desc@@@9@@@A5parsing/parsetree.mlinnnn@@,.pcf_attributes*attributes@@@9@B@A oo oo1@@@Annno@@0&@@H@@@dsRR(@@ఐw$itemdRRdRR@L@@0d}d|d|d}d}d}d}d}@Qc]@^@d@@@)Parsetree(pcf_descdRRdRR@8@@7@@@@Ġ)Parsetree+Pcf_inheritdRSdRS@8+Pcf_inheritJ@@@9@(Asttypes-override_flag@@@9*class_expr@@@9&optionJ#loc&stringO@@@9@@@9@@@9@C@@G@Alorotmoro@@@@dRSdRS@@,@@O@0dddddddd@S@@@ࠠ'p_clexpDdRSdRS&@@@1@@@@@dRS(dRS)@@30.@@O@@@O@@@O@@@@dRSdRS+@@@@O@$@@$@@@ࠠ(tt_clexpMeS0S@eS0SH@@@`pE@@@ N@s0eeeeeeee@5/@0@e @@@@ࠠ!nNeSKS]eSKS^@@@#intA@@@O@t@డc$List&lengthe1SKSae2SKSl@@\!a@13@@@1< @@@1;@@1:@\k\k @@\C@@@K@y@@O@x0@@O@w@O@vF@@ఐ)acc_inhere\SKSme]SKSv@g@@S@@/@@AT@@eaSKSY@@డb:get_nth_inherit_class_expr0Typedtree_searchepSzSeqSzS@@`?S@@@@?N@@@v@@@@@@@@?f@;@@@@@N@@?\@@N@@@N@@N@@N@0eeeeeeee@{u@v@e@@@@ఐA&tt_clseSzSeSzS@)@@@@ఐ!neSzSeSzS@@@?@@O@O@O@%@@E @@&@Ġ)Not_founde SSe SS@C9@@@@e @@Q@4@@డd%raisee SSe SS@?@@@?@@O@N@O@@O@I@@ภ'Failuree SSe SS@%డ 'inherit_classexp_not_found_in_typedtree-Odoc_messagese TTe TTN@@#intA@@@p5@@@p@@p@?;;?;;@@@@@@@P@,B@@P@+@P@*|@@ఐ!nf TTOf TTP@@@'@@Q@3Q@5Q@4@@f  STf! TTQ@@&-@@P@(P@7Q@2@@f* SSf+ TTR@@?l@@P@"P@'@@f@@\@@f3SzS @@,@ @@-)@@f6S0S< @@@ࠠ(info_optOfD TbTsfE TbT{@@@4.@@@Y@@@XN@;0fKfJfJfKfKfKfKfK@ESM@N@fd@@@ࠠ,ele_commentsPf[ TbT}f\ TbT@@@4.@@@[@@@ZN@<@@fh TbTrfi TbT@@&@@?@ఐ.5get_comments_in_classfwTTfxTT@.m@@@5,@@N@I@5+@@N@H5*.@@N@E@@N@D5&.@@N@G@@N@F@N@C@N@B@N@AF@@ఐ(last_posfTTfTT@@@S@@ఐ֠'p_clexpfTTfTT@@@ @@Q@d@bk@)Parsetree'pcl_locfTTfTT@,'pcl_loc@@@9!t@@@9@A,(pcl_desc /class_expr_desc@@@9@@@Ayeezee@@ ,.pcl_attributesx@@@9@B@Affff0@@)@Aeeef@@-5&@@x@@P@f@c@(Location)loc_startfTTfTT@C@@R@@O@h@e@&Lexing(pos_cnumgTTgTU@NQ@@5@@O@\O@iO@g@@ @@N@W@@g TbTn@@@ࠠ(text_optQgUU&gUU.@@@bu[@@@N@@@@N@k0g#g"g"g#g#g#g#g#@@@g=@@g?@@@ఐ(info_optg8U1UEg9U1UM@@@5ޠ/@@@n@@@m0g=g<g<g=g=g=g=g=@@@@Ġ$NonegMU1USgNU1UW@bd@@@@5/@@Q@v@@Q@u/@@/@@ภ$Noneg]U1U[g^U1U_@bt@@@CN@:@Ġ$SomeglU`UpgmU`Ut@b$ࠠ!iRguU`UugvU`Uv@@@/@@@}9@@@@@6/@@Q@@@Q@~A@@A@@ఐ!igU`UzgU`U{@@@g@@@@O@@0gggggggg@o' @@@*Odoc_types&i_descgU`U|gU`U@@@N@N@@@AgU1U?@@@@gUU" @@@ࠠ$nameSgUUgUU@@@c@@@N@0gggggggg@@@g@@@ఐҠ5tt_name_of_class_exprgUUgUU@@@@G@@N@c @@N@@N@@@ఐڠ(tt_clexpgUUgUU@@@G@@O@O@O@,@@  @@0-@@gUU @@@ࠠ%inherTgUUgUU@@@ @@@N@0gggggggg@BOI@J@h@@@ະ,'ic_name ,@@@] 0$Name!t@@@X@@ ,(ic_class &optionJ ?#cct@@@Z@@@YAA@Aa`da`@@ DR,'ic_text$text@@@\@@@[@B @Abb@@ US@A`!`3@@ YQ'ic_nameh=UVh>UV @డ.9=full_class_or_class_type_name(Odoc_envhKUV hLUV2@@/@@@Z@)Odoc_name!t@@@Z!t@@@Z@@Z@@Z@.7@  .8@  b@@0S@@@0@@O@J@@@O@I@@O@H@O@G@O@Fy@@ఐ #envhUV3hUV6@ q@@ @@ఐ٠$namehUV7hUV;@@@c@@P@@@H@@6@@O@@(ic_classhV>VNhV>VV@ภ$NonehV>VYhV>V]@c@@@@@O@@@O@O@@'ic_texthV`VphV`Vw@ఐ(text_opthV`VzhV`V@@@@@O@@@O@O@O@@@@hUUhVV@@@@hUU@@ఐ Y$iterhVVhVV@ @@@ Y@ N@ C@ > 1 /@M@@M@@M@@M@@M@0hhhhhhhh@@@h@@@@డg!@hVVhVV@+@@@ + v@@N@.@' |@@N@- % @@N@+@N@*@N@)#@@ఐ J)acc_inheriVViVV@ "@@ 0@@ภYUi!VVi"VVA]ఐ7%inher i+VV@@ @@ C@ภYSi2VVA]a@A@h P@=@@O@BO@HQ@@i<VV@@a @@O@9O@AY@@iDVViEVV@@ K@8^@@డh!@iTVViUVV@@@@  @@N@P@ @@N@O  @@N@M@N@L@N@K}@@ఐ *acc_fieldsiqVVirVV@ g@@ @@ఐ#,ele_commentsi~VViVV@S@@ @@O@[O@`O@^@@iVViVV@@ @@ఐ'p_clexpiVViVV@@@@@P@g@e@)Parsetree'pcl_lociVViVW@@@=@@O@i@f@(Location'loc_endiVWiVW!@5@@@@N@k@h@&Lexing(pos_cnumiVW"iVW1@-@@ &@@ఐ!qiW2W@iW2WA@@@ ,@@@@K@'@ @@@@@ @4@@@ @@@ @@ K@r@Ġ)Parsetree'Pcf_vali WCWKi WCW\@8'Pcf_valN@N#locS%label@@@9@@@9Z,mutable_flag@@@9 Q0class_field_kind@@@9@@9@AA@G@Ar;r=r;rw@@@ V ঠ#txtj WCW`j WCWc@;ࠠ%labelEj$ WCWfj% WCWk@@@.@@@0j%j$j$j%j%j%j%j%@@@@@@j, WCW^j- WCWm@@::@@O@O@@@O@ @ࠠ,mutable_flagFj> WCWoj? WCW{@@@A@@@@ࠠ!kGjK WCW}jL WCW~@@@H@@@'@@jR WCW]jS WCW@@) @O@/@@@n@@@@O@3@@3@@@ࠠ$virtijg!WWjh!WW@@@^@@@N@o0jjjijijjjjjjjjjj@SM@N@j;5@6@j0*@+@j@@@ఐ7!kj!WWj!WW@ @@@@@q@Ġ)Parsetree+Cfk_virtualj!WWj!WW@8+Cfk_virtual@@@9@ )core_type@@@9@A@@B@AEwwFww@@@ @j!WWj!WW@@@@Q@v?@@@@@@@Q@wC@@C@@ภRj!WWj!WW@S@@@PN@M@Ġ)Parsetree,Cfk_concretej!WWj!WW@8,Cfk_concrete4@'-override_flag@@@9 *expression@@@9@BA@B@A|ww}ww@@@ #@j!WWj!WW@@@@Q@}v@@@@@Q@~{@@@# @@@@Q@@@@@ภ_ j!WWj!WW@_ @@@N@N@@@Aj!WW@@@@j!WW @@@ࠠ-complete_namejk"WWk "WX @@@f]@@@ N@0k k k k k k k k @@@k$@@@డh$Name&concatk "WXk!"WX@!@@@fu@@N@@fz@@N@f}@@N@@N@@N@ @@ఐ 32current_class_namek:"WXk;"WX,@ @@ -@@ఐ#%labelkG"WX-kH"WX2@ְ@@Q@@O@=@@.@@A>@@kO"WW@@@ࠠ(info_optkk]#X6XGk^#X6XO@@@:3@@@=@@@N@ @@k#X6XFk#X6X^@@&@@#@ఐ45get_comments_in_classk#X6Xak#X6Xv@3@@@:E@@N@-@:D@@N@,:C4@@N@)@@N@(:?4@@N@+@@N@*@N@'@N@&@N@%F@@ఐ (last_posk#X6Xwk#X6X@ @@ S@@ఐ#lock#X6Xk#X6X@H@@!]@@P@G@Ei@(Location)loc_startk#X6Xk#X6X@!j@@!7@@O@I@Fw@&Lexing(pos_cnumk#X6Xk#X6X@!3@@:@@O@@O@JO@H@@a @@pN@;@@k#X6XB@@@ࠠ(type_expmk$XXl$XX@@@B@B?@@@\N@L0llllllll@@@l@@l@@@డi5search_attribute_type0Typedtree_searchl%XXl%XX@@gF@@@@gxgugt@@@)@@@@@@@@B@>\@@@@@N@R@@@N@Q7@@N@P@N@O@N@N6@@ఐ 점&tt_clslH%XXlI%XY@ ԰@@ C@@ఐ1%labellU%XYlV%XY @@@_@@O@bS@@?@@XT@Ġ)Not_foundld&Y Yle&Y Y'@I@@@@k@@Q@nb@@డk8%raisels'Y+Y;lt'Y+Y@@E@@@E@@O@t{N@pO@s@O@rw@@ภ'Failurel'Y+YBl'Y+YI@,డi attribute_not_found_in_typedtree-Odoc_messagesl'Y+YKl'Y+Yy@@&@@@p!@@@p @@p@iA<<jA<<9@@h@@@3@@P@@@P@@P@@@ఐ-complete_namel'Y+Yzl'Y+Y@P@@h @@Q@@@l'Y+YJl'Y+Y@@,@@P@P@Q@@@l'Y+YAl'Y+Y@@F @@P@yP@~@@_@@U@@l%XX @@@@l$XX @@@ࠠ$codenl)YYl)YY@@@h;< @@@N@@@@N@0llllllll@@@m@@@డk##l*YYl*YY@#@@@#D@@N@N@N@@@N@@N@@@డ#)keep_code+Odoc_globalm*YY@#@@#:@@O@O@O@5@@( @@ 6@ภ$Somem*+YYm++YY@gఐ6S2get_string_of_filem6+YYm7+YY@5@@@nn4[[A@_@@@@ఐ{(type_expnz4[[Bn{4[[J@@@4c@@Q@Q@ Q@ @@2 @@#@@P@P@ Q@@#-val_recursiven5[M[]n5[M[j@ภbn5[M[mn5[M[r@b@@@##@@P@P@@#.val_parametersn6[u[n6[u[@ภb߰n6[u[n6[u[@b@@@#,#)@@P@ @@P@P@&@#!(val_coden7[[n7[[@ఐ預$coden7[[n7[[@@@#4#3@@P@/@@P@.P@2P@0@#-'val_locn8[[n8[[@ຠ!(loc_impln8[[n8[[@ภ$Somen8[[n8[[@iఐ ՠ#locn8[[n8[[@ x@@'@@Q@BQ@IQ@MQ@L,@@ @@!۠ @@Q@AQ@H3@!ա)loc_intero8[[o8[[@ภ$Noneo8[[o8[[@j2@@@!!@@Q@V@@Q@UQ@\M@@@o(8[[o)8[\@@#@@P@9P@_U@@@o02ZZo19\\@@'@@O@O@b]@M+att_mutableo=:\\$o>:\\/@డn GcGeoG:\\?oH:\\@@Gb@@@N@@O@uO@l@Gc@@O@k@O@j@O@i|@@ఐ",mutable_flago`:\\2oa:\\>@@@@@ภ(Asttypes'Mutableon:\\Aoo:\\Q@8'Mutable@X,mutable_flag@@@@@@AB@@A@FgWu@GgW~@@@@]S@@@1P@x@@ @@@@O@gO@zP@t@+att_virtualo;\T\bo;\T\m@ఐ/$virto;\T\po;\T\t@@@@@O@O@O@@@@o1ZZo<\w\@@@@o0ZZ@@ఐ,$itero>\\o>\\@ڰ@@@,@!@@@M@@M@@M@@M@@M@0oooooooo@@@o@@@@ఐ)acc_inhero>\\o>\\@ְ@@G@@డn!@o>\\o>\\@ @@@ IK@@@N@@ @@N@ @@N@@N@@N@2@@ఐ *acc_fieldso>\\o>\\@@@ ?@@డn!@p>\\p >\\@ 9@@@9yO@O@@@O@@ 9 @@O@7@@O@@O@@O@b@@ఐ,ele_commentsp)>\\p*>\\@@@\#@@P@P@P@w@@ภ`op;>\\p<>\\Ad4ภ/Class_attribute pD>\\@8/Class_attribute '@*Odoc_value+t_attribute@@@O@A@@C@A $V %V@@@vBఐ#attp]>\\p^>\\@@@@@P@P@P@@@- @@XP@@ภ`po>\\4Ad@5A@ofQ@@@P@P@@@pz>\\?@@ p@@P@P@@@YF@@ @@O@O@O@@@p>\\p>\\@@K@@@ఐ x#locp>\\p>\\@ @@&0@@O@@@(Location'loc_endp>\\p>\\@&(@@& @@N@@@&Lexing(pos_cnump>\\p>\]@&@@N@@@ఐ !qp>\]p>\]@ @@#K@@@ @@K@@-@@@  @@@ @@@ @@k@ @@@ @@ K@ni@Ġ)Parsetree*Pcf_methodp@] ]p@] ](@8*Pcf_method F@ F#loc K%label@@@9@@@9 R,private_flag@@@9@@@9@@9@AB@G@A usuu usu@@@L ঠ#txtq@] ]-q@] ]0@Aࠠ%labelHq@] ]3q@] ]8@@@,@@@0qqqqqqqq@ @@@@@q"@] ]+q#@] ]:@@88@@O@O@@@O@ @ࠠ,private_flagIq4@] ]<q5@] ]H@@@?@@@ @Ġ)Parsetree+Cfk_virtualqC@] ]JqD@] ]_@@qH@] ]`qI@] ]a@@@@O@-@@@ @@H@@O@1@@qR@] ]*qS@] ]b@@3! @O@9@@@qZ@] ]q[@] ]c@@ @@O@?@@?@@@ࠠ-complete_namepqiA]g]wqjA]g]@@@l@@@N@0qlqkqkqlqlqlqlql@ ^X@Y@qF@@A@q@@@డo!$Name&concatqA]g]qA]g]@(@@@l@@N@@l@@N@l@@N@@N@@N@#@@ఐ2current_class_nameqA]g]qA]g]@@@0@@ఐ%labelqA]g]qA]g]@9@@@@O@@@@.@@DA@@qA]g]s@@@ࠠ(info_optqqB]]qB]]@@@@i:9@@@&@@@%N@0qqqqqqqq@]jd@e@q@@@ࠠ,ele_commentsrqB]]qB]]@@@@t:G@@@(@@@'N@ @@qB]]qB]]@@&@@ @ఐ:y5get_comments_in_classqB]]qB]]@9@@@@@@N@@@@@N@@:w@@N@@@N@@:v@@N@@@N@@N@@N@@N@F@@ఐ(last_posrB]]rB]]@@@S@@ఐ #locr.B]]r/B]]@ @@'@@P@0@.i@(Location)loc_startr<B]]r=B]^@'ΰ@@'@@O@2@/w@&Lexing(pos_cnumrJB]^rKB]^@'@@@@@O@)O@3O@1@@a @@pN@$@@rXB]]@@@ࠠ(met_typesrcC^#^3rdC^#^;@@@@S)type_expr@@@N@50rirhrhririririri@@@r@@r@@@డB;0Signature_search2search_method_type(Odoc_sigrD^>^PrD^>^|@@A@@@@@@@,@@@@@@@@AH  AI@@@AL@@@@@N@@ @@N@>@@N@@N@@N@;@@ఐ%labelrD^>^}rD^>^@A@@@@O@K@@ఐ,tt_class_sigrD^>^rD^>^@@@1X@@A@@_Y@Ġ)Not_foundrE^^rE^^@PK@@@@r@@Q@g@@డq%raiserE^^rE^^@L!@@@L!@@O@N@O@@O@|@@ภ'FailurerE^^rE^^@3డ5method_type_not_found-Odoc_messagessE^^sE^^@@@@@o@@@@oI@@@o@@o@@o@/55/55@@ǰ@@@@@P@@@@P@[@@P@@P@@P@@@ఐ'2current_class_names.E^^s/E^^@@@@@ఐ!%labels;E^^s<E^^@ɰ@@M@@Q@@@sBE^^sCE^^@@3O@@P@P@Q@@@sLE^^sME^^@@L@@P@P@@@v@@l@@sUD^>^L @@@@sWC^#^/ @@@ࠠ)real_typesbG__scG__'@@@SY@@@ N@0sesdsdsesesesese@ @@s~@@@డr (get_descsyH_*_>szH_*_F@@Sp@@@0Ss)type_desc@@@/@@.@Q! ! Q! !0@@Swh@@@S@@O@@@O@@O@0ssssssss@)@@@@ఐ;(met_typesH_*_GsH_*_O@4@@S@@P@P@P@@@0 @@(@@@@Ġ&TarrowsI_U_csI_U_i@8&Tarrow9@@@@Q)arg_label@@@S@@@S@@@S*commutable@@@@DAAL@AR E  R E  @@@SI@sI_U_ksI_U_l@@@@Q@K@@sI_U_nsI_U_o@@S@@Q@S@ࠠ!tsI_U_qsI_U_r@@@S@@@`@@sI_U_tsI_U_u@@,@@Q@h@@@FsI_U_v@@|@@Q@m@@m@@ఐ!ttJ_z_tJ_z_@@@t@@N@0t ttt t t t t @'@@@@tK__tK__@@@@Q@@@@@ఐ(met_typet"M__t#M_`@@@N@ N@ @@At*H_*_8@@@@t,G__ @@@ࠠ$codet7O``t8O``!@@@oC`@@@2N@ @@@!N@0t@t?t?t@t@t@t@t@@@@tY@@@డs*t*vtSP`$`3tTP`$`4@*s@@@*sL1@@N@N@N@@@N@@N@@@డ*^)keep_code+Odoc_globaltpP`$`I@*\@@*@@O@O@O@5@@( @@ 6@ภ$SometQ`O`]tQ`O`a@o9ఐ=2get_string_of_filetQ`O`ctQ`O`u@=L@@@C@@N@(@C@@N@'C@@N@&@N@%@N@$X@@ఐ#loctQ`O`vtQ`O`y@)@@*>@@P@9@7n@(Location)loc_starttQ`O`ztQ`O`@*K@@*@@O@;@8|@&Lexing(pos_cnumtQ`O`tQ`O`@*@@C@@O@4O@@@@**@@P@@@P@P@P@@*'val_locv4_bAbQv5_bAbX@ຠ)(loc_implv?_bAb]v@_bAbe@ภ$SomevG_bAbhvH_bAbl@pఐ,#locvQ_bAbmvR_bAbp@ϰ@@/+@@Q@Q@Q@Q@,@@ @@)2 @@Q@Q@3@),)loc_intervj_bAbsvk_bAb|@ภ$Nonevr_bAbvs_bAb@q@@@)<);@@Q@@@Q@Q@M@@@v_bAb[v_bAb@@*@@P@P@U@@@vXa%a?v`bb@@/"@@O@PO@]@M+met_privatevabbvabb@డudNNvabbvabb@N@@@@@O@O@@N@@O@@O@@O@|@@ఐ,private_flagvabbvabb@C@@@@ภ(Asttypes'Privatevabbvabb@8'PrivateG,private_flag@@@@@@@B@@AGe1EGe1L@@@GO@@@1P@@@ @@@@O@O@P@@+met_virtualvbbbvbbb@ภ!vbbbvbbb@!@@@@@O@O@@@@vWaa#vcbc@@@@vVaa @@డufcGc@@@/@@O@ O@O@&@@B @@\@@M@N@ ,@ఐԠ$iterwVhccwWhcc@@@@@@@@M@@M@@M@@M@@M@D@@ఐ)acc_inherwohccwphcc@z@@Q@@డvC!@w~hccwhcc@@@@K@-@@N@/@@@N@. @@N@,@N@+@N@*r@@ఐ*acc_fieldswhccwhcc@@@@@డvq!@whccwhcc@ݰ@@@ݠO@QO@A@@O@C@ݠ @@O@B۠@@O@@@O@?@O@>@@ఐ,ele_commentswhccwhcc@\@@#@@P@OP@RP@P@@ภhwhccwhccAkؠภ,Class_method whcc@8,Class_method@(t_method@@@P@AA@C@AWW-@@@Cఐؠ#metwhccxhcc@ް@@@@P@^P@`P@_@@+ @@VP@]@ภh2xhcc2Al@@3A@wdQ@T@@P@YP@e@@xhcc=@@An@@P@NP@X@@WD@@J@@O@:O@gO@M @@x-hccx.hcc@@K@9@@ఐ#locx?hccx@hcc@@@-@@O@m@k&@(Location'loc_endxMhccxNhcc@-ʰ@@-@@N@o@l4@&Lexing(pos_cnumx[hccx\hcc@-@@N@n?@@ఐW!qxjhccxkhcc@5@@K@pN@@@@K@(Q@m@@R@} @@C@Y @@0@J @@ @  @@ @  @@@@@ K@ @Ġ)Parsetree*Pcf_methodxjcdxjcd@ঠ#txtxjcd xjcd#@Iࠠ%labelJxjcd&xjcd+@@@@@@10xxxxxxxx@!@@@@@xjcdxjcd-@@@@O@5O@3@@O@2 @ࠠ,private_flagKxjcd/xjcd;@@@@@@<@Ġ)Parsetree,Cfk_concretexjcd=xjcdS@ @xjcdTxjcdU@@@@O@A-@@@ @@O@B2@@@ @@@@O@C6@@xjcdxjcdV@@8& @O@D>@@@xjcdxjcdW@@@@O@ED@@D@@@ࠠ-complete_namexkd[dkxkd[dx@@@tF@@@N@s0xxxxxxxx@yc]@^@yKE@F@y@@@డv$Name&concaty kd[d{y kd[d@/@@@ta@@N@y@tf@@N@xti@@N@w@N@v@N@u#@@ఐ2current_class_namey&kd[dy'kd[d@@@0@@ఐ%labely3kd[dy4kd[d@9@@E@@O@@@@.@@DA@@y;kd[dg@@@ࠠ(info_optyIlddyJldd@@@GA@@@@@@N@0yPyOyOyPyPyPyPyP@]jd@e@yi@@@ࠠ,ele_commentsy`lddyaldd@@@GA@@@@@@N@@@ymlddynldd@@&@@@ఐB5get_comments_in_classy|lddy}ldd@Ar@@@H1@@N@@H0@@N@H/A@@N@@@N@H+A@@N@@@N@@N@@N@@N@F@@ఐ(last_posylddyldd@@@S@@ఐ#locylddyldd@4@@/I@@P@@i@(Location)loc_startylddylde@/V@@/#@@O@@w@&Lexing(pos_cnumyldeylde@/@@H@@O@O@O@@@a @@pN@@@yldd@@@ࠠ#expymee'ymee*@@@uXs@@@N@0yyyyyyyy@@@z @@z @@@డww8search_method_expression0Typedtree_searchz ne-e?z ne-eh@@K@@@@LK@@@&@@@@@@@@La@J @@@Y@@N@@LY@@N@4@@N@@N@@N@3@@ఐՠ&tt_clsz1ne-eiz2ne-eo@@@s@@@ఐ%labelz>ne-epz?ne-eu@D@@ P@@O@P@@<@@UQ@Ġ)Not_foundzMoevezNoeve@W@@@@y@@Q@_@@డy!%raisez\oevez]oeve@S@@@S@@O@xN@O@@O@t@@ภ'Failurezqoevezroeve@:డ&R=method_not_found_in_typedtree-Odoc_messageszoevezoeve@@&@@@p$#@@@p#@@p"@&RBsf4fR{?sf4fS@@t@@Q@&X@@@({Dsf4fT@@@@Q@']@@]@@ఐ!t{OtfXfh{PtfXfi@@@{c@@N@,0{Q{P{P{Q{Q{Q{Q{Q@'@@@@{^ufjfy{_ufjfz@@@@Q@)x@@x@@ఐ#exp{lwff{mwff@@@u/@@O@2@0@)Typedtree(exp_type{zwff{{wff@O@@N@1N@.@@A{rff@@@@{qee @@@ࠠ$code{yfg {yfg @@@vJ@@@YN@G@@@HN@70{{{{{{{{@@@{@@@డzq1̠1ΰ{zgg{zgg @1˰@@@1ˠS@@N@EN@BN@:@@N@;@N@9@@డ1)keep_code+Odoc_global{zgg5@1@@1@@O@@O@CO@A5@@( @@ 6@ภ$Some{{g;gK{{g;gO@vఐE2get_string_of_file{{g;gQ{{g;gc@D@@@K@@N@O@K@@N@NK@@N@M@N@L@N@KX@@ఐޠ#loc|{g;gd|{g;gg@@@1@@P@`@^n@(Location)loc_start|{g;gh|{g;gz@1@@1p@@O@b@_|@&Lexing(pos_cnum|{g;g{| {g;g@1l@@KQ@@O@[O@cO@a@@ఐ#loc|7|gg|8|gg@@@1@@P@h@f@(Location'loc_end|E|gg|F|gg@1°@@1@@O@j@g@&Lexing(pos_cnum|S|gg|T|gg@1@@K}@@O@ZO@kO@i@@|^{g;gP|_|gg@@@@@@w@@@I@ภ$None|l~gg|m~gg@w@@@N@p@|rzgg@@@@|tyfg@@@ࠠ#met|gg|gh@@@X@@@uN@q0||||||||@@@|@@@ະV)met_value|hh!|hh*@1J(val_name|hh/|hh7@ఐ-complete_name|hh:|hhG@S@@w@@P@'@1R(val_info|hJhZ|hJhb@ఐt(info_opt|hJhe|hJhm@Ȱ@@55@@P@@@P@P@P@D@1a(val_type|hph|hph@డB*subst_type(Odoc_env|hph|hph@B˰@@@D@@P@@B@@P@B@@P@@P@@P@h@@ఐ#env|hph|hph@@@yu@@ఐ=)real_type}hph}hph@i@@B@@Q@Q@Q@@@2 @@1@@P@P@Q@@1-val_recursive}hh}hh@ภq=}%hh}&hh@q<@@@1@@P@P@@1.val_parameters}3hh}4hh@ఐ(֠hh}?hi@(@@@D@@P@@(@@P@@> > @@P@@@P@((ˠqm@@P@@@P@@w@@P@qD@@P@@@P@@P@@P@@P@@P@@P@@@ఐ#env}shi}thi@e@@@@ఐ-complete_name}hi}hi&@+@@x@@Q@@@ఐG(info_opt}hi'}hi/@@@>T>S@@Q@@@Q@Q@Q@@)ภdx}vx@}v@)q@@Q@@@Q@$@@ఐʠ#exp}hi0}hi3@@@wz@@Q@Q@Q@8@@ @@2=2:@@P@@@P@P@P@D@22(val_code}i6iF}i6iN@ఐK$code}i6iQ}i6iU@S@@2E2D@@P@@@P@P@P@a@2>'val_loc}iXih}iXio@ຠ0С(loc_impl}iXit}iXi|@ภ$Some~iXi~iXi@xఐ栐#loc~ iXi~ iXi@@@6@@Q@$Q@+Q@/Q@.@@ @@0 @@Q@#Q@*@0桠)loc_inter~$iXi~%iXi@ภ$None~,iXi~-iXi@yC@@@00@@Q@8@@Q@7Q@>@@@~9iXir~:iXi@@2@@P@P@A@@@~Ahh-~Bii@@6@@O@wO@D@ +met_private~Nii~Oii@డ}VtVv~Xii~Yii@Vs@@@ g@@O@WO@N@Vt@@O@M@O@L@O@K@@ఐ,private_flag~qii~rii@u@@@@ภ(Asttypes'Private~ii~ii@@@@%P@Z@@@@ E@@O@IO@\P@V@ A+met_virtual~ii~ij@ภr~ij ~ij@r@@@ P@@O@aO@e@@@~hh~jj"@@"@@~gg@@డ|:kk?@@@@O@S@@?kk:@kk@@@ @O@T@@@/@@@@O@U@@@@ఐ Р$iterRkjkvSkjkz@ ~@@@ @ @ @   @M@@M@@M@@M@@M@@@ఐ )acc_inherkkjk{lkjk@ v@@ @@ఐ *acc_fieldsxkjkykjk@ n@@ @@ఐd#lockjkkjk@@@6@@O@@@(Location'loc_endkjkkjk@6@@5@@N@@@&Lexing(pos_cnumkjkkjk@5@@!N@@@ఐ!qkjkkjk@@@!K@@@h@@K@K@@Ġ)Parsetree/Pcf_initializerkkkk@8/Pcf_initializer,@@@@9@AD@G@Avvvwvw@@@" ࠠ#expLkkkk@@@@@@Zb@@@kkkk@@@@O@[h@@h@@ఐ!q$iterkkkk@!@@@!q@!f@![@!V!I!G@M@@M@@M@@M@@M@0@*$@%@@@@@ఐ!C)acc_inherkkkk@!@@!@@ఐ!1*acc_fieldsklkl @!@@!-@@ఐR#exp0kl 1kl@.@@b@@P@@ 6@)Parsetree(pexp_loc>kl?kl!@,(pexp_loco@@@8s!t@@@8p@A,)pexp_desc "/expression_desc@@@8o@@@A))))@@",.pexp_loc_stack".location_stack@@@8q@B@A)))*@@",/pexp_attributes"@@@8r@C@A **# **?@@"@A))))@@"@1@@7@@O@@s@(Location'loc_end{kl"|kl2@6N@@6@@N@@@&Lexing(pos_cnumkl3klB@6ְ\@@!N@@@ఐ!qklCklD@c@@!K@@@@@K@ K@@Ġ)Parsetree-Pcf_attributelFlPlFlg@8-Pcf_attribute@")attribute@@@9@AE@G@A\ww]ww;@@@# @lFlhlFli@@@@O@`C@@@@@n@@O@aG@@G@@ఐ"P$iterlmlylml}@!@@@"P@"E@":@"5"("&@M@@M@@M@@M@@M@_@@ఐ")acc_inherlml~lml@!@@"gl@@ఐ" *acc_fieldslmllml@!@@"y@@ఐ䠐#loc lml lml@@@7@@O@/@-@(Location'loc_endlmllml@7@@7v@@N@1@.@&Lexing(pos_cnum%lml&lml@7r@@"N@0@@ఐ!!q4lml5lml@@@"K@2@@h@@gK@*K@@Ġ)Parsetree-Pcf_extensionJllKll@8-Pcf_extension@#)extension@@@9@AF@G@AwQwSwQwo@@@#@\ll]ll@@@@O@f@@@@@ @@O@g@@@@ภvlllmll@v@@@v@@M@8@sll@@K@4@@AwRR @@K@0uttuuuuu@@@@ @@J@@A}P.Pa@@"K@K@"M@@A"A@"K@K@|0@"}@@@@A"A@"K@yK@v0@"@@@@A""A@@# "@@0@"@@@@P.P4'@@ఐ#$iterlllm@"ɰ@@@#Π#@@J@@@J@@#Ǡ#@@J@@@J@@7@@J@@9# @@J@@@J@!#@@J@@J@@J@@J@@J@@J@"@@ภwlmlm@w@@@$K@#@@ภwlmlm@w @@@##@@K@K@#@@ఐ#Ǡ(last_poslm lm@#@@$R#@@ఐ#%p_clslmlm@#@@$O#.@)Parsetree,pcstr_fieldslm lm/@,,pcstr_fields$W@@@9$listI#f@@@9@@@9@A,*pcstr_self$g'pattern@@@9@@@Ammmm@@$k@Ammmm@@$o*lm$+@@#@@K@@@K@K@K@#b@@$7@@$f#c@$8@@$iJ@b#w@@A#$;A@$tJ@\087788888@#@@@@A#$?A@$J@V0<;;<<<<<@#@@@@A#$CA@$J@P0@??@@@@@@#@@@@A$ $GA@$J@J0DCCDDDDD@$@@@@A$$KA@$J@D0HGGHHHHH@$@@@@A$3$OA@$J@>0LKKLLLLL@$2@@@@A$H$SA@$J@80POOPPPPP@$G@@@@A$_$WA@@$$@@0TSSTTTTT@$^@@@ Analysis of a [Parsetree.class_struture] and a [Typedtree.class_structure] to get a couple (inherited classes, class elements). eO/O3fOO@@@@@@@$i@$i$h@.Aࠠ2analyse_class_kindsmmtmm@@@@K@@@J@@~@@@J@@DEDD@@@@@@J@@8@@@J@@@@@J@@c@@@J@@@@wڠK@@@)J@@@@J@$*class_kind@@@J@@@@@ @@ @@ @@ @@ @@@J@0@/ %H%B@%C@@@@@#envmmmm@@@W0@b@^@Y@T@K@F@A@<:/@@@@@@@@@@@@@@@@K@@q@@@@@@2current_class_namemmmm@@@uJ@0@(4@+@ @@@@@+comment_optmmmm@@@J@0@"@@@@@@@(last_posmmmm@@@J@0@"@@0 @@@@@,p_class_expr*mm+mn@@@J@J@$0,++,,,,,@$@@E @@@@@,tt_class_exp?mn@mn@@@J@8J@*0A@@AAAAA@&@@Z @@@@@%tableTmnUmn@@@J@00TSSTTTTT@$@@m @@@@ఐE,p_class_exprknn'lnn3@%@@A0ihhiiiii@$@@ @@@)Parsetree(pcl_descxnn4ynnF@@@@@@;@ఐM,tt_class_expnnHnnT@/@@I@)Typedtree'cl_descnnUnnf@2[ @@2W@@@>)@@nn&nng@@" @@@0@Ġ)Parsetree*Pcl_constrnmnvnmn@8*Pcl_constr@@@9@ #loc)Longident!t@@@9@@@9,@@@9@@@9@B@@H@A pflfn qflf@@@&ࠠ#lidnmnnmn@@@&$@@@Q@@@P0@t@@@@nmnnmn@@$O@@M@S@@M@R @@@Cnmn@@ @@M@T@ࠠ1tt_class_exp_descnmnnmn@@@2@@@U@@nmnunmn@@ @M@V&@@&@@@ࠠ$namennnn@@@g@@@FL@#0@IC@D@/("@#@1@@@ఐ/1tt_class_exp_desc*nn+nn@ @@2@@@%0+**+++++@@@@Ġ)Typedtree)Tcl_ident=nn>no @2ࠠ!pFno Gno@@@2@@@.@@OnoPno@@22@@O@0@@O@/(@@[no\no@@2y@@O@2@@O@14@@@(eno@@3)@@O@39@@9@@డ$Name)from_pathunovno%@2@@@2@@M@<@@M@;@M@:0{zz{{{{{@g@:@;@@@@@ఐH!pno&no'@@@2@@N@GN@KN@J@@$ @@L@8@@o(o6o(o7@@3f@@O@5v@@v@@డO$Name.from_longidentooop @@)Longident!t@@@@@@@@@YP y yZP y @@XR@@@@@M@Q@@M@P@M@O@@ఐ#lidop op@@@).@@N@\N@jN@a@@N@`@#txtopop@Vװ@@N@b@@@@@D@@L@[L@M@@Ann @@@@nn @@@ࠠ¶mspppp@@@ff@@@w@@@vL@^0        @@@&@@@ఐ栐,tt_class_exp!pp"pp@Ȱ@@0@@@@)Typedtree'cl_type+pp,pp@3ް @@3@@@a @Ġ%Types*Cty_constr=pq>pq@8*Cty_constrf3*class_type@@@ X@$Path!t@@@ PFfE@@@ R@@@ Q@@@ S@C@@C@Ad"JJd"JK@@@fMࠠ#_p2gpqhpq@@@#@@@jI@ࠠ-type_exp_listtpqupq$@@@mfl@@@l@@@kZ@ࠠ&_cltyppq&pq,@@@G@@@mg@@@Opq-@@4<@@O@nl@@l@@ఐ#-type_exp_listquqquq@#@$@@@L@u0@?9@:@4 #@@@@@@qqqq@@4]@@O@p@@@@ภzqqqq@z@@@L@{L@x@@App@@@@pp @@ภzqqqq@z@@@z@@K@0@@@@@@ภ,Class_constrqqqq@8,Class_constr&@@@t@( ,class_constr@@@q@AB@D@A#w  #w  @@@(]ະ,(cco_name@@@k!t@@@f@@ ,)cco_class @@@h@@@gAA @A#n#n@@(,Y,3cco_type_parameters$listI%Types)type_expr@@@j@@@i@B @A#o " &#o " Q@@(AZ@A#mz~#mz@@(EX(cco_name)qr *qr@డM%/full_class_name(Odoc_env7qr8qr.@@N@@@Z@!t@@@Z!t@@@Z@@Z@@Z@M!z ' 'M"z ' ^@@NQ@@@N@@L@@@@L@@@L@@L@@L@@@ఐ#enviqr/jqr2@s@@@@ఐd$namevqr3wqr7@d@@@@M@@@F@@6@@L@@)cco_classr:rIr:rR@ภ$Noner:rUr:rY@@@@}@@L@@@L@L@@3cco_type_parametersr\rkr\r~@డq$List#mapr\rr\r@L8@@@@M@@L@(L@@@L@L@.L@'L@@L@@L>@@L@L=@@L@@L@@L@@@డM*subst_type(Odoc_envr\rr\r@MȰ@@@O@@N@@M@@N@M@@N@@N@@N@@@ఐ.#envr\rr\r@@@)@@r\rr\r@@@M@@M@%M@@M@$@M@#4@@ఐ ¶msr\rr\r@>@@Lc@@M@ M@+M@)I@@l @@a@@L@L@-L@ R@@@#qq$rr@@D@@K@K@1Z@@P@@r@@K@^@@/qq0rr@@h @K@2e@v@@$@=@@J@J@"!@Ġ)Parsetree-Pcl_structureJrrKrr@8-Pcl_structure@)@@@9@AA@H@A#ff#ff@@@)ࠠ1p_class_structure^rr_rr@@@)@@@c0_^^_____@@@@@@@@!@@M@d@Ġ)Typedtree-Tcl_structurerrrsrs @8-Tcl_structure5@bU@@@@AA@G@AD,,D,-@@@ࠠ2tt_class_structurers rs@@@bg@@@h(@@@@@6P@@M@i,@@rrrs@@0 @M@j3@@3@@@ࠠ,tt_class_sigssss@@@h/class_signature@@@DL@40@?TN@O@.(@)@@@@ఐ,tt_class_expssss@d@@~0@@@@)Typedtree'cl_typessss@6z @@6y@@@7 @Ġ%Types-Cty_signaturessss@8-Cty_signature@8@@@ T@AA@C@Ag#KK g#KK+@@@hࠠ)class_sigssst@@@J@@@=3@@@@@6@@O@>7@@7@@ఐ)class_sigstst@@@@@_L@C0@[@@@@ tttt@@6@@O@@R@@R@@డ%raisett#tt(@b^@@@b^@@M@IL@EM@H@M@Gg@@ภ'Failure0tt*1tt1@I? =analyse_class_kind: no class signature for a class structure.8tt39ttp@@;tt2<ttq@@IH@@N@TN@VN@U@@Ett)Fttr@@b@@N@NN@S@@2@@(@@ANss @@@@Pss @@@ࠠ1inherited_classes^tt_tt@@@**@@@@@@L@e0eddeeeee@@@~@@@ࠠ.class_elementsuttvtt@@@**@@@@@@L@f@@tttt@@&@@i@ఐ+7analyse_class_structuretttt@Ӱ@@@Q:@@L@@@@L@~@+ @@L@}@>@@L@|@X@@L@{@*@@L@z@*@@L@y@bJ@x**@@L@u@@L@t**@@L@w@@L@v@L@s@L@r@L@q@L@p@L@o@L@n@L@m@L@l@L@kb@@ఐ#envtttt@@@ao@@ఐ2current_class_nametttt@ڰ@@|@@ఐO,tt_class_sigtu tu@@@+`@@M@M@M@@@ఐ(last_posuu(uu0@Ӱ@@@@ఐ,p_class_expru1u?u1uK@Ѱ@@@)Parsetree'pcl_loc u1uL!u1u]@#_ @@?@@N@@@(Location'loc_end.u1u^/u1un@?@@?@@M@@@&Lexing(pos_cnum<u1uo=u1u~@?(@@Yf@@M@M@M@@@ఐ1p_class_structurePuuQuu@@@+@@M@M@M@@@ఐޠ2tt_class_structureduueuu@@@+@@M@M@M@@@ఐ(%tablexuuyuu@ @@$@@@@L@@@tt@@ภ~uuuu@~@@@~J@@@K@0@):4@5@%@ @@@@ภ/Class_structureuuuv @8/Class_structure@+@@@m@@@l+@@@o@@@n@B@@D@A't  't  @@@+[ఐd1inherited_classesuv uv@0@@%+@@K@@@K@K@K@?@ఐc.class_elementsuvuv-@D@@2+@@K@@@K@K@K@U@@Huv.@@/@@K@Z@@uuuv0@@f @K@a@t@@@@@J@J@3M@Ġ)Parsetree'Pcl_funv2v;v2vL@8'Pcl_funZ@&f)arg_label@@@9&] C@@@9@@@9@@@9&p@@@9@DB@H@A&gg&ggI@@@,mࠠ&_label.v2vN/v2vT@@@%@@@{0/../////@@@@ࠠ/_expression_opt<v2vV=v2ve@@@- o@@@}@@@|@ࠠ(_patternMv2vgNv2vo@@@4@@@~@ࠠ-p_class_expr2Zv2vq[v2v~@@@&@@@,@@@Zav2v@@$@@M@1@Ġ)Typedtree'Tcl_funnvvovv@8'Tcl_fun8@a)arg_label@@@֠?@@@נϠ{!t@@@ڠI@@@@@@@@ؠk@@@ܠE@@@@EB@G@AE--G-H-d@@@@vvvv@@.@@M@p@ࠠ#patvvvv@@@t@@@}@ࠠ/_ident_exp_listvvvv@@@>=@@@@@@@@@@@@ࠠ.tt_class_expr2vvvv@@@k@@@@ࠠ(_partialvvvv@@@E@@@@@@vvv@@9@@M@@@v2v:vv@@ @M@@@@@@ࠠ)parameterwnw~wnw@@@Sm@@@L@0@@@@@!@@#@@%nh@i@' c]@^@)!MG@H@+"B<@=@-#@@@ࠠ1next_tt_class_exp$wnw%wnw@@@l)@@@L@(@@-wnw}.wnw@@3 @@/@ఐ#pat>ww?ww@+@@@@@0?>>?????@@@@@)Typedtree(pat_descKwwLww@w%@@@@@@@@M@@Ġ)Typedtree(Tpat_varhwwiww@kࠠ%identqwwrww@@@k@@@0rqqrrrrr@s@@@@{ww|ww@@kf@@O@@@O@ @@@ww@@@@O@@@O@@ @@డ\ddwxwx@d@@@@@M@'M@@d@@M@@M@@M@0@:4@5@&@@@@డU$Name*from_identwwwx@_@@@_@@N@@@N@@N@@@ఐ\%identwxwx@(@@v@@O@(O@,O@+2@@  @@;3@@%*opt*wxwx@@wxwx@@JM@.B@@0@@d@@M@0N@H@ఐ(.tt_class_expr2xpxxpx@@@l@@N@5@3[@)Typedtree'cl_descxpxxpx@:а@@:@@@4g@Ġ)Typedtree'Tcl_letxxxx@8'Tcl_let:@ (rec_flag@@@ux@@@@@@~*!t@@@@@@@@@@@m?@@@@DD@G@AlI--mJ-.@@@@JxxKxx@@/@@P@A@ĠOTy yAUy yC@Mঠ&vb_pat_xx`xx@xঠ(pat_descixxjxx@xCĠ)Typedtree(Tpat_varsxxtxx@vࠠ"id|xy}xy@@@v@@@h@@xyxy@@up@@P@j@@P@i@@@xy@@@@P@l@@P@k@@@xxxy@@b@@P@nP@m@'vb_expry y4y y;@yࠠ#expy y<y y?@@@n@@@r@@@xxy y@@@y@@P@tP@s@@y yDy yE@@@y@@P@v@@P@u"@@@ @@y@@P@x@@P@w*@@y yGy yH@@@@P@{@@P@|@P@z@@P@y=@ࠠ.tt_class_expr3y yJy yX@@@m@@@}J@@@y yY@@;@@P@~O@@O@@@ࠠ$namey]ywy]y{@@@S@@@O@0@d@@'c]@^@()#@$@ )@@@డ$Name*from_identy]y~y]y@ð@@@@@O@t@@O@@O@!@@ఐ"id1y]y2y]y@)@@@@P@P@P@5@@  @@96@@=y]ys @@@ࠠ)new_paramHyyIyy@@@U@@@O@0KJJKKKKK@KXR@S@d*@@@ภ+Simple_nameZyy[yy@TະT'sn_namefyygyy@ఐq$nameoyypyy@@@@@P@%@T'sn_type{zNzj|zNzq@డTw*subst_type(Odoc_envzNztzNz@Tu@@@V2@@P@@Tu@@P@Tp@@P@@P@@P@I@@ఐ ۠#envzNzzNz@ @@ .V@@ఐ#expzNzzNz@@@u@@Q@@j@(exp_typezNzzNz@c8@@T@@Q@Q@Q@x@@@ @@U@@P@P@Q@@T'sn_textyzyz@డ2desc_from_info_opt.Odoc_parameteryzyz:@Lٰ@@@OO@@P@@@P@@L@@P@OL@@P@@@P@@P@@P@@@ఐ +comment_optyz;yzF@ @@ @@ఐ$nameyzGyzK@ð@@f@@Q@@@6@@VV@@P@@@P@P@P@@@@&yy'zz@@U@@O@O@@@@@V@@@@@2yy @@ఐ)new_param=zz>zz@@@Q+@@A0=<<=====@@@@ఐc.tt_class_expr3LzzMzz@@@@& @@PzzQzz@@T-@N@@%@@@@@-L@L@V@@b{{c{{@@='@@P@@@@@డ5%raisep{{q{{@h@@@h@@N@"L@N@@N@@@ภ'Failure{{{{@O analyse_class_kind: strange case{{{{@@{{{{@@O@@O@ O@O@@@{{{{@@h@@O@O@ @@2@@(@@Ax"x3{{@@ML@ 0@@@@@{{{{@@@@O@ @@O@s@ @s@@@ࠠ)new_param|S|h|S|q@@@W2@@@N@R@ఐW:tt_param_info_from_pattern|t||t|@Pe@@@W{@@N@@@.@@N@WnWk@@N@@@N@AN@@7L@@N@@@N@W^@@N@@N@@N@@N@~@@ఐ 7#env||||@ @@ @@డ>2desc_from_info_opt.Odoc_parameter||||@N@@@PӠP@@P@@@P@@N@@P@PߠN@@P@@@P@@P@@P@@@ఐ 3+comment_opt3||4||@ @@ /@@7||8||@@@N"@@O@PN!@@O@@@O@@O@@@ఐ#patO}}P}}@<@@@@O@@@@@@@W|S|d@@ఐ)new_paramb}-}?c}-}H@@@v,@@hL@0dccddddd@f@@@ఐ.tt_class_expr2s}-}Jt}-}X@\@@OL@@@y}-}>z}-}Y@@ @M@@)@@UL@L@ @@Aww @@W@@wnwy@@@ࠠ¶ms}h}x}h}~@@@ J@(J@*J@0@@@$|@}@%@@@ࠠ!k}h}}h}@@@ J@J@!J@@@}h}w}h}@@! @@@ఐ P2analyse_class_kind}h}}h}@ @@@ P@ K@ F@ =@ 8@ 3@ . , !@L@@L@@L@@L@@L@@L@@L@@L@;@@ఐ #env}}}}@ @@ mH@@ఐ 2current_class_name}}}}@ @@ U@@ఐ +comment_opt}}}}@ @@ b@@ఐ (last_pos }} }}@ ذ@@ o@@ఐ-p_class_expr2}}}}@@@ |@@ఐ1next_tt_class_exp#}}$}~@@@ @@ఐ ࠐ%table0}~1}~@ °@@ @@q@@L@@@7}h}s@@ภJ?~~-@~~/@8ఐM)parameterI~~#J~~,@@@ 0GFFGGGGG@@@a-@@c.@@@ఐƠ¶ms[~~0\~~6@@@@@@@ J@$@@K@'@ఐ !km~~8n~~9@@@$@@q~~"r~~:@@@K@++@A@@@@@ DJ@"J@y@Ġ)Parsetree)Pcl_apply~<~E~<~X@8)Pcl_apply @,@@@9,)arg_label@@@9&@@@9@@9@@@9@BC@H@A-Jii-Kij5@@@2ࠠ-p_class_expr2~<~Z~<~g@@@-@@@0@ J@@@@~<~i~<~j@@)(@@M@&@@M@@M@@@M@@@@A~<~k@@*@@M@@Ġ)Tcl_apply~<~m~<~v@>/ࠠ.tt_class_expr2~<~x~<~@@@q@@@/@ࠠ5exp_opt_optional_list~<~~<~@@@>?>>@@@><@@@@@@@@@@@K@@@,~<~@@?@@M@P@@ ~<~D ~<~@@@ @M@W@@W@@@ࠠ,applied_name~~~~@@@n@@@SL@-0@ wq@r@7/JD@E@90?9@:@;1@@@ఐU.tt_class_expr267@@@r;@@M@2@0098899999@@@@)Typedtree'cl_descEF@@@@@ @@@1 @Ġ)Typedtree)Tcl_identWX@?Ӡࠠ!p`a@@@?@@@;0a``aaaaa@E@@@@jk@@?٠?@@O@=@@O@< @@vw@@?ؠ@@O@?@@O@>@@@)@@@D@@O@@@@@@డ-$Name)from_path@?@@@?@@M@I@@M@H@M@G0@{A;@<@3@@@@ఐI!p@@@?@@N@TN@XN@W@@$ @@L@E@@)*@@@@@O@B@@@@ఐ-p_class_expr2@@@."@@N@_@]@)Parsetree(pcl_desc@, @@, @@@^@Ġ)Parsetree*Pcl_constr@?ࠠ#lid@@@CA@@@h@@@g@@@@@(k@@P@j@@P@i@@@  @@,<@@P@k@@@@డ$Name.from_longidentOcOv@ j@@@ j@@N@tt@@N@s@N@r0"!!"""""@82@3@;4@@@@ఐB#lid7Ow8Oz@@@ @@O@O@O@@@O@@#txtIO{JO~@d3@@O@&@@2@@4L@~L@p+@@XY@@,@@P@m@@@@డ?9*object_end-Odoc_messagesg h @?7@@L@L@0@@Ao@@"L@Z @@As @@XS@@u~~@@@ࠠ*param_exps  @@@4H@@@eL@2@@@@L@0@n{u@v@2@@@డa$List)fold_left  @2R@@@@"L@@?@@L@cL@ 1L@'@@L@&L@@L@ L@@L@@L@@@2^@@L@@L@@L@@L@0@5@@@@@#acc   @@@/@@@Š@  @@20@S>@@6@@@ࠠ'exp_optà  $@@@:@@  %@@FA@O@!@@ఐ'exp_opt )? )F@M@@7@@O0@$@@@Ġ$NoneL^Lb@&@@@@^0        @@@@@_@@ఐM#accLfLi@:@@xL@, @Ġ$Some(j|)j@ࠠ!eĠ1j2j@@@L@)3@@@@@4@@4@@డ!@@jAj@1q@@@5q@@N@4@1m@@N@35k@@N@1@N@0@N@/0NMMNNNNN@Q("@#@g8@@@@ఐ#accajbj@@@@@ภkjljAdఐD!e uj@! @@C$@ภA@A@P@C@@O@HO@M2@@j@@1@@O@?O@G:@@-"@@ L@>L@-?@@A )9(@@L@$@@A ,@@@@M@YM@X0@@@@@A  j@@@@@M@@M@M@[@@ภ߰@@@@.L@`@@ఐϠ5exp_opt_optional_list@@@3c@@M@M@fM@a@@+ @@$;@@  @@@ࠠ+param_typesƠ@@@YNk@@@L@m@@@zL@h0@Vic@d@5@@@డ$List#map@Y}@@@@@@L@L@o"@L@p@Yz @@L@nYy+@@L@l@L@k@L@j0@&@@@@@!eǠ@@@ @@ఐ!e#$@,@ @7:@@.0#""#####@F@@@)Typedtree(exp_type01@i@@VL@ @@A67@@@B_@M@|M@Y@@ఐƠ*param_expsFG"@c@@YƠV@@M@{M@M@H@@_ @@xo@@S @@@ࠠ+params_codeȠ^&4_&?@@@Yנd@@@L@@@@L@0gffggggg@@@9@@@డ?$List#map|BN}BV@Z@@@@C@@L@L@"@L@@Z @@L@Z+@@L@@L@@L@0@&@@@@@!eɠWjWk@@@ @@ఐ^ɠ2get_string_of_fileWoW@^k@@@d@@M@@d@@M@d@@M@@M@@M@0@Q&<@@<@@@@ఐ4!e@@@P@'exp_loc@j= @@Kj@@O@@#@(Location)loc_start@Kw@@KD@@N@@1@&Lexing(pos_cnum@K@&@@e%@@N@N@N@A@@ఐq!e @Q@@T@'exp_loc@jz @@K@@O@@`@(Location'loc_end"#@K@@K@@N@@n@&Lexing(pos_cnum01@K}&@@eZ@@N@N@N@~@@ @@L@@@A>We?@@@@M@M@@@ఐΠ*param_expsN O@k@@ZΠ@@M@M@M@@@ @@@@[&0 @@ภd%0e%2@@@@J@@@K@0hgghhhhh@@@;@@@ภ+Class_applyx4?y4J@8+Class_apply@7+class_apply@@@p@AA@D@A3Vv . 03Wv . L@@@7\,)capp_name@@@e.!t@@@^@@ ,*capp_class .7't_class@@@`@@@_AA @A3vg`d3wg`@@7U,+capp_params)type_expr@@@b@@@a@B@A3h3h@@7V,0capp_params_code,&stringO@@@d@@@c@C/@A3i3i:@@7W@A3f3f1@@7T)capp_nameKZKc@డ\/full_class_name(Odoc_envKfK~@@@@^@@L@@@@L@@@L@@L@@L@@@ఐ2#envKK@@@@@ఐ,applied_nameKK@y@@Z@@M@@@.@@@@L@@{*capp_class@ภ$None @6@@@@@L@@@L@L@@+capp_params12@ఐe+param_types:;@ΰ@@@@L@&@@L@%L@)L@'@0capp_params_codeN O @ఐ+params_codeW X  @@@@@L@3@@L@2L@6L@4@@@fKXg!@@@@K@K@:@@@@@@K@@@r%/s! @@ @K@; @@@ @'@@@@@@ @@GJ@J@,_@Ġ)Parsetree'Pcl_let#"+#"<@8'Pcl_let@2(rec_flag@@@98-value_binding@@@9@@@92@@@9@CD@H@A3Lk-k/3Mk-kf@@@8@#">#"?@@@@M@0@G@@@@#"A#"B@@! @@M@@@M@ @ࠠ-p_class_expr2#"D#"Q@@@3@@@@@@A#"R@@1@@M@@Ġ)Typedtree'Tcl_let#"T#"e@ Š@#"g#"h@@ @@M@2@@#"j#"k@@ ɠ@@M@@@M@>@@#"m#"n@@ ̠ @@M@ޠ@@M@@M@@@M@Q@ࠠ.tt_class_expr2 #"p#"~@@@x@@@^@@@7#"@@E@@M@c@@#"*#"@@M @M@j@@j@@ఐ2analyse_class_kind(%)%@Y@@@@@@@@@@K@E@K@D@K@C@K@B@K@A@K@@@K@?@K@>087788888@{u@v@R=93@4@T>@@@@ఐ#envN&O&@X@@@@ఐn2current_class_name[&\&@R@@j!@@ఐh+comment_opth&i&@L@@d.@@ఐb(last_posu&v& @D@@^;@@ఐ-p_class_expr2& &@D@@L@_J@@ఐ.tt_class_expr2'&'4@Q@@L@`Y@@ఐP%table'5':@2@@Lf@@|@@oJ@\J@<k@Ġ)Parsetree.Pcl_constraint)<E)<]@8.Pcl_constraint @4 @@@9: *class_type@@@9@BE@H@A4ill4jll@@@:ࠠ-p_class_expr2)<_)<l@@@4%@@@i@ࠠ._p_class_type2)<n)<|@@@!@@@v@@@.)<}@@2@@M@{@Ġ)Typedtree.Tcl_constraint**@EȠࠠ.tt_class_expr2**@@@x@@@@@**@@EӠE@@M@@@M@@@**@@EԠE@@M@@@M@@@**@@E֠E@@M@@@M@@@(*)*@@E@@M@@@@<.*@@F@@M@@@3)<D4*@@R @M@@@@@@ࠠ!lʠF+G+@@@L@d0FEEFFFFF@|@}@a?wq@r@c@\V@W@eA@@@ࠠ*class_kindˠ\+]+@@@J@J@e@@c+d+@@ @@h@ఐ2analyse_class_kindr+s+@@@@@@@@@@۠@L@q@L@p@L@o@L@n@L@m@L@l@L@k@L@j<@@ఐɠ#env,,@@@I@@ఐ2current_class_name,,@@@V@@ఐ+comment_opt,,%@@@c@@ఐ(last_pos,&,.@@@p@@ఐ-p_class_expr2,/,<@x@@0M@@@ఐ٠.tt_class_expr2-=M-=[@@@8M@@@ఐ%table-=\-=a@u@@@@u@@L@@@+@@@ࠠ/class_type_kind̠00@@@; /class_type_kind@@@L@0@@@B@@C@@@ภ*Class_type 8  8@8*Class_type@@@@;:0class_type_alias@@@@AA@B@A6S6S@@@;?kະ,(cta_name@@@2!t@@@@@ ,)cta_class 22@@@@@@AA @A7 M7 M@@;]h,3cta_type_parameters1/)type_expr@@@@@@@B@A7N7N/@@;ni@A7 L7!L@@;rg(cta_nameV8W8"@డF4*object_end-Odoc_messagesb8%c8=@F2@@?@@M@M@k@=)cta_classp9@Yq9@b@ภ$Nonex9@ey9@i@@@@M2g@@M@@@M@M@@I3cta_type_parameters9@l9@@ภ°9@9@@@@@XW@@M@@@M@M@@@@89@@@@@L@L@@@@@@@@@@0 @@ఐo!l;;@@@o0@@@D@@@ภ0Class_constraint;;@80Class_constraint@@@@r@@@s@BC@D@A7| ) +7| ) ]@@@;^ఐ*class_kind;;@ڰ@@'@ఐ/class_type_kind;;@/@@@@K@K@K@9@@/;@@:@@K@>@@;;@@ @K@E@T@@@@@J@J@b@@ = =@@4=@@M@ H@@M@ @M@ @ @ @@డ%raise>>@ta@@@ta@@K@J@K@@K@@@ภ'Failure3>4>@[B 8analyse_class_kind: Parsetree and typedtree don't match.;><>2@@>>?>3@@[K@@L@L@L@@@H>I>4@@t@@L@L@@@2@@(@@AQnn  @@J@50ONNOOOOO@@@@@A A@J@2J@/0UTTUUUUU@@@@@AA@J@,J@)0[ZZ[[[[[@@@@@A8A@J@&J@#0a``aaaaa@5@@@@AQA@J@ J@0gffggggg@P@@@@Aj%A@J@J@0mllmmmmm@i@@@@A+A@J@J@0srrsssss@@@@@A1A@@@@0wvvwwwww@@@@? q Analysis of a [Parsetree.class_expr] and a [Typedtree.class_expr] to get a pair (class parameters, class kind). m2m6m2m@@@@@@@mmC@@D@Ϡ@ࠠ-analyse_class͠AA@@@@cE@@@J@@@@@XJ@@38$info@@@@@@J@@=+class_infos7@@@J@@@@J@$@Ƞ)type_expr@@@,@@@+J@*@{@@@J@0@w@J@6U@@@J@7@@8J@1@@2J@+@@,J@%@@&J@@@ J@@@J@@@J@&@@#envϠAA@@@c0@4oA[@@@@@@3current_module_nameРAA@@@m0@ y@@)F@@@@@+comment_optѠ#A$A@@@u0!  !!!!!@@@:G@@@@@,p_class_declҠ4A5A@@@u021122222@@@KH@@@@@.tt_type_paramsӠEAFA@@@u0CBBCCCCC@@@\I@@@@@,tt_class_expԠVAWA@@@u0TSSTTTTT@@@mJ@@@@@%tableՠgAhA@@@}0eddeeeee@@@~K@@@@@ࠠ$name֠xB yB @@@7#loc7@@@?@@@>K@<0@*@!@L@@@ఐd,p_class_declB B (@L@@@)Parsetree(pci_nameB )B ;@,(pci_nameݠ!a@6d@@@9{,*@@@9x@@@9w@B,(pci_virt8 ,virtual_flag@@@9p@@@A8[cpcu8\cpc@@>,*pci_params2)@@@9s8&(variance@@@9u8,+injectivity@@@9v@@9t@@9r@@@9q@A(@A8{cc8|cc@@>"=,(pci_expr=:@C.@A8cc8cc@@>(,'pci_locC8!t@@@9y@D:@A8cc8cd@@>4,.pci_attributesO8@@@9z@EC@A8dd8dd3@@>=@A8cc8cc@@>Ah^@@u@@B `@@@ࠠ-complete_nameנC?I C?V@@@]@@@VK@B0        @@@$M@@@డ$Name&concat C?Y!C?d@S@@@u@@K@H@z@@K@G}@@K@F@K@E@K@D @@ఐ,3current_module_name:C?e;C?x@@@-@@ఐѠ$nameIC?yJC?}@9@@Ϡ@@L@kL@b@@L@aE@#txtYC?~ZC?@nC@@ L@cM@@>@@QN@@_C?E@@@ࠠ#locؠjDkD@@@6@@@vK@q0mllmmmmm@cpj@k@N@@@ఐQ,p_class_declDD@9@@@)Parsetree(pci_exprDD@ @@J@J@wJ@t @)Parsetree'pcl_locDD@6װ@@,)@@D@@@ࠠ)pos_start٠EE@@@R@@@~K@x0@>KE@F@O@@@ఐT#locEE@@@SQ@@L@}@{@(Location)loc_startEE@S^@@S+@@K@@|%@&Lexing(pos_cnumEE@S'@@1.@@E@@@ࠠ/type_parametersڠF F #@@@J@-J@0@ANH@I@P@@@ఐ.tt_type_paramsF &F 4@@@*@@F @@@ࠠ$virt۠ G8B G8F@@@v@@@K@0        @#.(@)@%Q@@@డv9v;G8iG8j@v8@@@q@@K@K@@v9@@K@@K@@K@@@ఐ,p_class_decl8G8I9G8U@@@y*@)Parsetree(pci_virtAG8VBG8h@ @@ 3@@ภ(Asttypes'VirtualOG8kPG8{@8'Virtualo9,virtual_flag@@@@@@@B@@Ao'io(i@@@o>U@@@@@@ࠠ&cltypeܠmHnH@@@dT*class_type@@@K@0srrsssss@huo@p@R@@@డdv0subst_class_type(Odoc_envHH@@f1@@@Z@dt*class_type@@@Z&@@@Z@@Z@@Z@doN 2 2dpN 2 t@@f>V@@@fF@@K@@@@K@8@@K@@K@@K@5@@ఐ#envHH@@@B@@ఐt,tt_class_expHH@\@@Q@)Typedtree'cl_typeHH@L @@D@@L@L@L@a@@R @@hb@@H @@@ࠠ*parametersݠII@@@f]@@@@@@K@0@~@@ S@@@ࠠ$kindޠII@@@L@@@K@@@ I I@@" @@@ఐ2analyse_class_kindII@I@@@f@@K@@r@@K@@__@@K@@@K@@Tv@@K@@:@@K@@:@@K@@Pof@@K@@@K@@@K@@K@@K@@K@@K@@K@@K@@K@@K@X@@ఐ\#envWJXJ@B@@e@@ఐ\-complete_namedKeK)@@@@@L@L@L@y@@ఐY+comment_optxL*4yL*?@A@@@@ఐޠ)pos_startM@JM@S@@@T@@L@L@L@@@ఐk,p_class_declNT^NTj@S@@@)Parsetree(pci_exprNTkNT}@ʰ @@@@ఐ_,tt_class_expO~O~@G@@@@ఐ[%tablePP@7@@@@@@K@@@I@@ ,'cl_name /@@@7!t@@@u@@  ,'cl_info $#@@@w@@@vAA @A<B  <B  $@@A`,'cl_type*class_type@@@x@B@A<C U Y<C U u@@Aa,2cl_type_parameters$@@@z@@@y@C#@A<D v z<D v @@Ab,*cl_virtual1$boolE@@@{@D/@A<E  <E  @@A(c,'cl_kind=P@@@|AE8@A<F  <F  @@A1d,-cl_parametersF.Odoc_parameter)parameter@@@~@@@}AFK@A<G<GI@@ADe,&cl_locY=(location@@@AGW@A<HJN<HJt@@APf@A=A  =A  @@AT_'cl_name8S9S@ఐ9-complete_nameASBS@ϰ@@@@K@ 0BAABBBBB@Te_@`@\TPJ@K@^U@@@z'cl_infoTTUT@ఐ>+comment_opt]T^T@&@@@'cl_typefUgU@ఐ&cltypeoU pU@z@@@@K@"K@$K@#2@2cl_type_parametersW/7W/I@ఐ/type_parametersW/LW/[@w@@D@*cl_virtualVV%@ఐ$virtV(V,@"@@@@K@3K@5K@4]@'cl_kindX^fX^m@ఐ$kindX^pX^t@i@@@@K@:K@@@8@@@J@Ġ)Typedtree*Tmod_identaa@8*Tmod_identK@@@?@!t@@@0#loc!t@@@2@@@1@B@@F@AF44G44@@@Ԡࠠ!p(a)a@@@"@@@0)(()))))@@@@@2a3a@@$"@@M@@@M@ @@@;<a@@@@M@@@@@డ$Name)from_pathLaMa@Oh@@@Oh@@K@@@K@@K@0RQQRRRRR@5/@0@kX@@@@ఐ=!peafa@@@O@@L@L@L@@@$ @@J@@Ġ)Typedtree/Tmod_constraint~bb)@8/Tmod_constraint}@b@@@9t+module_type@@@:6module_type_constraint@@@;/module_coercion@@@<@DD@F@A5F5H5]5@@@ؠࠠ%m_expb+b0@@@@@@@@b2b3@@)@@M@@@b5b6@@*@@M@@@b8b9@@,@@M@@@@Fb:@@ @@M@@@@@ఐ^8tt_name_from_module_exprb>bV@>@@@^Y@K@0@,71@2@Y@@@@ఐ?%m_expbWb\@@@oL@@@@@mJ@@Ġ)Typedtree.Tmod_structurec]ec]}@8.Tmod_structure@j)structure@@@3@AA@F@A144244@@@oՠ@c]~c]@@@@P@i@@@@@[@@P@m@@m@Ġ)Typedtree,Tmod_functor"d#d@8,Tmod_functor!@1functor_parameter@@@4 @@@5@BB@F@AZ44[45@@@֠@8d9d@@@@P@@@@@@P@@@@! @@@@P@@@@@J@@@@O@@Ġ)Typedtree*Tmod_applyTeUe@8*Tmod_applyS@8@@@6<@@@7@@@8@CC@F@A55 55E@@@נ@leme@@M@@O@@@@R@@O@@@ @@@O@@@@(@@@@O@@@@@@@@@N@@Ġ)Typedtree+Tmod_unpackff@8+Tmod_unpack@P@@@=+module_type@@@>@BE@F@A6#6%6#6T@@@٠@ff@@d@@N@@@@@@N@@@@" @@@@N@@@@@@@@@M@ @@డO*struct_end-Odoc_messagesgg@O@@@p`@O^BYB]O^BYBg@@O  @@PJ@J@$@@A`@@TJ@0@(@@@@AEA@@_Z@@x0@D@@@ Get a name from a module expression, or "struct ... end" if the module expression is not an ident of a constraint on an ident. ]^=s@@@@@@@_tx&@@'@f@ࠠ;tt_get_included_module_listjZbjZ}@@@@@@@J@{ES/included_module@@@@@@J@|@@}J@zw@@,tt_structure堰jZ~jZ@@@0@)jZ^x>n@@@@@@ࠠ!f'k(k@@@@EL1@@@K@@@@K@@@@@K@K@@@K@@@K@0?>>?????@.:M@1@X[@@@@#acc蠰RkSk@@@'0POOPPPPP@3YkZv%4@@@@@@$item頰ekfk@@@+0cbbccccc@ =@@|]@@@@ఐ$itemwlxl@=@@^@@?0wvvwwwww@!@@@(str_descll@>@@g@@@ @Ġ)Typedtree,Tstr_includemm@Ҡࠠ$inclmm@@@@@@'@@@@@@@N@+@@+@@డu!@nn@A@@@E@@L@@Aݠ@@L@E۠@@L@@L@@L@0@H,&@'@_@@@@ఐ#accnn@i@@@@ภotAԠະ,'im_name@@@K7!t@@@F@@ ,)im_module &optionJD#mmt@@@H@@@GAA@A.odoc_module.mljj@@JY,'im_info*Odoc_types$info@@@J@@@IAB#@Akk @@]Z@AiQUiQg@@aX'im_namep]qp]x@ఐ8tt_name_from_module_expr'p]{(p]@@@@ @@N@@@N@@N@o@@ఐ$incl>p]?p]@{@@z@@O@@(incl_modHp]Ip]@,(incl_mod-include_infos!a@ @@@@@ ,)incl_type F)signature@@@@A @A)EE)EF@@9,(incl_loc.!t@@@@B@A*FF*FF1@@:,/incl_attributes%à@@@@@@@C#@A+F2F7+F2FW@@;@A(EE(EE@@8D9@@e@@O@O@O@@@cA@@@@N@@)im_moduleqq@ภ$Noneqq@@@@@@N@@@N@N@@'im_inforr@ภ$Nonerr@@@@@@N@@@N@N@@@@s@@N@@ภtA@A@M @@M@M@@@n@@B@@M@M@@@ @@K@@@u u!@@@@N@k@@k@@ఐ#accv%1@@@K@K@w@@Al@@K@0@{@@@@AA@K@0@@@@@AA@@@@0@@@@@@డ$List)fold_left x>D x>R@D@@@@J@@@@J@J@ @J@@J@@ @D @@J@@J@@J@@J@0@@@8\@@@@ఐ !f2x>S3x>T@@@@GS6@@K@@@K@@@@K@ @K@@K@@@ภ|Kx>ULx>W@{@@@OJ@,@@ఐL,tt_structure\x>X]x>d@@@e;@)str_itemscx>eH@,)str_itemsd@@@D@@@A@@@@@@,(str_typea)signature@@@B@A @A6666@@,-str_final_env!t@@@C@B@A6666@@@A6h6j6h6@@ڰ3s@@E2@@K@K@K@s@@|@@t@@}@@J@W@@AA@@@@0@@@@a I Get the list of included modules in a module structure of a typed tree. i iY@@@@@@@@@@ࠠ>replace_dummy_included_modules|'|E@@@@.module_element@@@Q@@@SJ@@@@@U@@@TJ@Y@@@PJ@@@J@@@J@0@K@@Z@@@@/module_elements|F|U@@@/0@;|#%@@@@@@0included_modules|V|f@@@30@ E@@a@@@@Aࠠ!f}iw}ix@@@@H\@@@HK@@@@K@ʠT(@@@0K@@@@K@@@K@K@Q@@@UK@@K@032233333@8Dm@;@Lb@@@@ĠzI~J~@y@@@@30GFFGGGGG@C@?#@@L@@B@dc@@@@W~X~@@4 @@Z~[~@@F;@N@@@ภef@@@@:K@K@ @Ġpuv@nĠ7Element_included_module~@87Element_included_module@@@B@@@@:@AB@J@AZIKZIw@@@Nࠠ"im@@@@@@0@O@@@@@@@K@K@@ࠠ!q@@@,@@@@@@@@K@@Ġ@ࠠ'im_repl@@@)@ࠠ$im_q@@@N@@@7@@@@@K@;@@@@+@N@B@@ภa8D8F@ڠภ7Element_included_module@lະ @@L@$L@"   @@L@+@@L@*L@''im_info  '@ఐ~"im*,@~@@'d@@@@M@@0@ }w@x@4eg@b@6f_Y@Z@8g@@@'im_info,--4@.@@10@@M@@@M@M@M@@@ఐ'im_replBC@ @@(@FG6@@F@@L@L@10@@NO7@@4K@ L@ 7@ఐO!f^8H_8I@@@@O3@L@3F@@ఐǠ!qp8Kq8L@P@@ZK@:X@ఐ$im_q}8N~8R@Y@@[K@;e@@8J8S@@qK@<j@@8G8T@@Zm@@=@@]K@K@r@ĠU}U@Ġ7Element_included_moduleUaUx@#ࠠ"imUyU{@@@@@@0@d@@@@@U`U|@@K@@ࠠ!qUU@@@@@@@@@@@@K@@ĠUU@@@@@K@"@@U_U@@ @N@)@@ภb@֠ภ7Element_included_module@hఐF"im@F@G@h@@@@L@JL@LL@K0@Y F@@A@i@@@@@@L@I @ఐQ!q@@@K@A@@L@EL@NL@M@@ @@K@CK@?$@Ġ$)*@"ࠠ#ele23@@@K@010011111@@@@ࠠ!q>?@@@@@@@@@@@-K@@ࠠ!lOP@@@-K@@@UV@@ @N@%@@ภc_`@Xఐ7#eleij@7@8@}j@@90ihhiiiii@%D82@3@k)#@$@l@@@ఐq!f@4@@@qU@L@W@@ఐT!q@"@@|K@^)@ఐP!l@-@@P4@@@@K@_9@@@@z<@@B@@}K@SK@OA@@A}i{@@@@@=g@@}io @@ఐ!f@r@@@@@J@B@@J@D@@J@F@@J@E@J@CU@@J@A@J@@@@ఐ/module_elements@@@*@ఐ0included_modules$@@@&@@@@:,@K@RK@b@@? @@$@J @@'J@@@AA@7J@0@@@@@AA@@H=@@g0@@@@ʐ This function takes a [module element list] of a module and replaces the "dummy" included modules with the ones found in typed tree structure of the module. zpt{@@@@@@@$@$#@9Aࠠ )filter_module_with_module_type_constraint!"@@@@w(t_module@@@J@l@%Types+module_type@@@J@m@@@4J@n@@@J@098899999@b@@R`@@@@!mLM@@@)0JIIJJJJJ@7@3@,"@@o@@pK@h@8@lm .filter_module_type_with_module_type_constraint@-t_module_type@@@J@q@=+module_type@@@oJ@r@@@)J@s@@t@@uK@i@z{@@n 2filter_module_elements_with_module_type_constraint@@@@NJ@@@@J@v@)signature@@@J@w$listI@@@MJ@x@@y@@zK@j@N@@o 9filter_extension_constructors_with_module_type_constraint@).Odoc_extension7t_extension_constructor@@@J@%@@@4J@{@-J@|$listI@@@J@}@@~@@K@k@!Z@@p@@@@@"mt!@@@J@0@@@q@@@@ఐ!m$0$1@@@0@$@@r@@@&m_kind$2$8@,&m_kind@@@tP+module_kind@@@kAE,,&m_name Y!t@@@e@@@AG B FG B W@@\j,&m_type@@@fAA@AH X \H X @@ek,&m_info.$info@@@h@@@gAB"@A-I  .I  @@vl,.m_is_interface0$boolE@@@i@C.@A9J  :J  @@m,&m_file<&stringO@@@j@D:@AEK  FK  @@nH,%m_locH@(location@@@lAFF@AQM ` dRM ` @@p,*m_top_depsT!t@@@n@@@mAGV@AaN  bN  @@q,&m_codeds,@@@p@@@oAHe@ApO  qO @@r,+m_code_intfs;@@@r@@@qAIt@AP48P4]@@s,+m_text_onlyR@@@s@J~@AQQ@@t@AL = AL = _@@o@@@@@@ఐĠ"mt$:$<@@@@@@@@@@Ġ-Module_structBJBW@8-Module_struct@@@d@@@@W@@@V@A@@H@A|  |  1@@@ bࠠ!l BXBY@@@ @@@@@@@@@' @@@@M@@Ġ%Types-Mty_signatureB[Bn@8-Mty_signature+module_type@@@ u@V@@@ q@AA@D@A(CMM)CMN@@@ ࠠ$lsig BoBs@@@h@@@ @@@ @@)J@J@@@@Y @@5 @M@@@@@ఐ͠!mww@8@@0@(VP@Q@-s("@#@/t@@@&m_kind#w$w@)ภ-Module_struct+w,w@~ఐ 2filter_module_elements_with_module_type_constraint7w8w@@@@@@M@@M@&@@ఐ!lHwIw@/@@J@J@6@@ఐ_$lsigXwYw@=@@C@@\w]w@@F@@4@@`@@M@M@L@P@@@@K@L@R@ఐ+!mst@@@P^@&m_typez{@jఐ"mt@@@n@@@NJ@p@t@@J@t@@@@@@M@@M@@ @@@ภ@@@@ J@J@@@A$*@@$J@0@@@@@A A@J@J@0@@@@@AgA@@@@0@f@@@x This function removes the elements of the module which does not belong to the given module type, if the module type is expanded and the module has a "structure" kind. '+@@@@@@@$@mmQP@R@@j@c[@@@J@0@@@@@$mtyp @@@z0@@@@@@"mt   @@@J@0@@@u@@@@ఐ)$mtyp@@@0@$@@v@@@'mt_kind  &@,'mt_kind@@@"d0module_type_kind@@@@@@AE,'mt_namen!t@@@@@@A(c)c@@q|,'mt_info:'$info@@@@@@AA@A9d:d@@},'mt_type,K@@@@@@AB'@AGeHe@@~,/mt_is_interface:@@@@C1@AQf;?Rf;W@@,'mt_fileD@@@@D;@A[g\g@@@N,&mt_locNV(location@@@AFG@Agjhj@@B@Akhlh@@Al`@@ZY@@@@@@p@ఐ"mtz({*@x@@{@@@@@@@Ġ$Some080<@GĠ2Module_type_struct0=0O@82Module_type_struct@@@@@@@z@@@y@A@@E@A[[@@@wࠠ!l 0P0Q@@@@@@$@@@#@@@& @@@@M@%@@@3@@@@M@'@@M@&@Ġ%Types-Mty_signature0S0f@ࠠ$lsig 0g0k@@@J@@@*@@@@@J@vJ@wJ@(@@@[@@+ @M@+@@@@ఐ#$mtypoyo}@ @@0@PJ@K@w*$@%@x@@@'mt_kindo~o@ภ$Someoo@Ǡภ2Module_type_structoo@ఐ 2filter_module_elements_with_module_type_constraint$o%o@@@@@@M@Q@M@P/@@ఐ!l5o6o@8@@J@X>@@ఐi$lsigDoEo@E@@@@J@]N@@KoLo@@Q@@NoOo@@?@@M@?M@FM@L[@@I @@I @@M@>M@Eb@f@@@@K@fL@dh@ఐ$mtypmn@@@ t@'mt_typetu@>ภ$Some|}@4ఐ"mt@@@@@@@R!@@L@nL@u@$ @@J@x@@@J@5@@  @@@@M@1@@M@0@M@/@@ @@ภ@@@@$J@{J@y@@A@@(J@0@@@@@A A@J@J@0@@@@@AA@@`@@0@t@@@ This function removes the elements of the module type which does not belong to the given module type, if the module type is expanded and the module type has a "structure" kind. @@@@@@@$@ZZ65@7@@W@KD@@@J@0@@@@@!l OP@@@g0@@@@@@$lsig QU@@@@@@z@@O@ O@@?@@O@@O@@O@0-,,-----@@@GXR@S@I@@@@ఐ"n1C2KD2M@@@@@ఐm"n2P2PQ2R@@@+O@#@@@@f@@@ '@Ġ]bXmcXq@]@@@@u@@Q@6@@6@@ఐ  .filter_module_type_with_module_type_constraintsXutX@ @@@ @  @P@@P@H@@ఐ"mtXX@w@@ $Q@%W@@ఐ1!tXX@@@ *Q@&f@@&@@ %g@ภ^9XX@^:@@@@@O@,r@2@@_L@+L@w@Ġʰ@@@@@@@Q@@@@@ภհ@@@@L@/L@-@@A0@@"L@@@@2@@@@N@@ภ@@@@5L@7L@5@@A`l@@L@L@0@@@@Ġ-Element_value @8-Element_value p@*Odoc_value't_value@@@=@AE@J@A]]@@@JQࠠ!v @@@@@@0@@@@@@!@@@@@@@R $Ġ%Types)Sig_value6F6U@8)Sig_value@!t@@@ }@@@ ~x@@@ @C@@G@AjROOkROOH@@@!ࠠ%ident ;6W<6\@@@@@@0<;;<<<<<@@:@;@U@@@@H6]I6^@@@@P@ @@P6`Q6a@@@@P@@@@:V6b@@L@L@@@@ࠠ"n1 ef|ff~@@@@@@O@0hgghhhhh@-82@3@@@@డ$Name&simple}f~f@b@@@@@O@@@O@@O@@@ఐ!vff@S@@m0@@P@@/@(val_nameff@iR@@iN@@P@9@@*@@=:@@fx@ࠠ"n2 @@@Q@@@O@L@డN$name%Ident@L@@@L@@O@h@@O@@O@c@@ఐ%ident@m@@c@@P@P@P@w@@  @@/x@@ @@డ  @ @@@F@@N@N@@ @@N@@N@@N@0@@@VP@Q@@@@@ఐ"n1@@@@@ఐk"n2@@@+N@#@@@@L@&@}@@L@@@+,@@@@ภJ23@I@@@L@L@@@A: ,;@@L@L@0;::;;;;;@@@@Ġ,Element_typeKL@8,Element_type @)Odoc_type&t_type@@@@@AH@J@A^`ln_`l@@@Tࠠ!t de@@@@@@0eddeeeee@@@@@@!@@[@@[@@@ (Ġ%Types(Sig_typey0@z0N@8(Sig_type@!t@@@ @@@ @@@ @@@ @DA@G@ASOIOKSOIO@@@ࠠ%ident %0P0U@@@!@@@0@VD>@?@@@@@0V0W@@@@P@ @@0X0Y@@@@P@@@0Z0[@@@@P@@@@F0\@@L@L@"@@@ࠠ"n1 &@@@#@@@O@0@5@:@;@@@@డ$Name&simple@˰@@@;@@O@>@@O@@O@@@ఐ!t@[@@)Odoc_type&t_type@@P@@4@'ty_name@,'ty_name@@@p$Name!t@@@a@@  ,'ty_info &optionJ*Odoc_types$info@@@c@@@bAA@A,odoc_type.mlA  A  @@,`,-ty_parameters#$listI%Types)type_expr@@@f$boolE@@@g@@@h@@e@@@d@B7@A%B  &B  ,@@Pa,'ty_kindGW)type_kind@@@i@CB@A0D z ~1D z @@[b,*ty_privateRb,private_flag@@@j@DM@A;E  <E  @@fc,+ty_manifest]Pq-type_manifest@@@l@@@k@E]@AKF  LF  @@vd,&ty_locmZ(location@@@mAFi@AWG  XG  @@e,'ty_codeyl&stringO@@@o@@@nAGz@AhH  iH  *@@f@Al@  m@  @@_@@@@P@@@@@@@@ࠠ"n2 '@@@M@@@=O@@డJ$name%Ident@H@@@H@@O@7d@@O@6@O@5@@ఐ:%ident@@@_@@P@>P@@P@? @@  @@/ @@ @@డ @@@@B@@N@ON@F@@@N@E@N@D@N@C0@&3-@.@VP@Q@@@@@ఐ="n1   @@@@@ఐk"n2@@@+N@R#@@@@L@N&@}@@L@M@@'%(&@@i@@ภF.*//@E@@@L@VL@T@@A6&70@@L@L@076677777@@@@Ġ6Element_type_extensionG1;H1Q@86Element_type_extension@.Odoc_extension0t_type_extension@@@>@AF@J@AZ^[^7@@@Rࠠ"te `1Ra1T@@@@@@0a``aaaaa@@@@@@!@@W@@W@@@ࠠ!l )rXhsXi@@@ J@0qppqqqqq@*@@@@@ఐ ٠ 9filter_extension_constructors_with_module_type_constraintlzl@ ݰ@@@ @  @N@@N@@@ఐ6"te@ @@ 0t_type_extension@@O@@*@/te_constructors@,/te_constructors @@@  @@@@@@AD,'te_info &optionJ*Odoc_types$info@@@@@@A@@A1odoc_extension.mlg g :@@ Q,,te_type_name# $Name!t@@@@A @Ah\`h\v@@ R,2te_type_parameters0 %Types)type_expr@@@@@@@B3@A!iw{"iw@@ 0S,*te_privateC 7,private_flag@@@@C>@A,j-j@@ ;TN,&te_locN;(location@@@AEJ@A8l9l*@@ GV,'te_codeZM&stringO@@@@@@AF[@AIm+/Jm+P@@ XW@AMkNk@@ \Uq@@ kJ@AJ@@@ఐ 1$lsig#$@ @@ -@@@@ f@@(Xd@@ఐԠ"te45@@@@@@054455555@@@N@@@/te_constructorsBC @ఐ٠!lKL@@@@@@@@M@N@@డ$"<>_%`'@@!a@@z@@@'@@&@@%)%notequalBA@@@@@@eR@@@ M@@@@M@@M@@M@G@@ఐ!l#$@Q@@T@@ภǰ(*@@@@ J@a@@@@p@@M@N@g@@ *@56@@ kL@ L@t@@ภcN:>@cO@@@ pL@L@@@A0?@@@ L@@M@ @@ +@@X@Y@@!@@ภ@]@b@@@@L@L@ @@A@S@c@@M@@ @@!@@@"@@@ L@L@n@Ġ1Element_exceptiondnd@81Element_exceptionp@.Odoc_exception+t_exception@@@?@AG@J@A_8:_8k@@@JSࠠ!e dd@@@@@@0@ @@@@@!@@ @@ @@@R /Ġ%Types*Sig_typext@8*Sig_typext @ !t@@@ 5extension_constructor@@@  *ext_status@@@  @@@ @DB@G@ArTOOsTOO@@@)ࠠ%ident ,CD@@@%@@@0DCCDDDDD@ HB@C@]@@@@PQ@@*@@P@ @@XY@@,@@P@@@`a@@ @@P@@@@Jf@@ (L@L@"@@@ࠠ"n1 -uv@@@@@@2O@#0xwwxxxxx@5@:@;@@@@డ*$Name&simple@ r@@@@@O@(@@O@'@O@&@@ఐ!e@[@@.Odoc_exception+t_exception@@P@;@94@'ex_name@,'ex_name@@@$Name!t@@@@@ ,'ex_info &optionJ*Odoc_types$info@@@@@@AA@A1odoc_exception.ml[[>@@,G,'ex_args#)Odoc_type0constructor_args@@@@B!@A\`d\`@@:H,&ex_ret1$%Types)type_expr@@@@@@@C4@A"]#]@@MI,(ex_aliasD7X/exception_alias@@@@@@@DD@A2^3^@@]J,&ex_locTA(location@@@AEP@A>_?_E@@iK,'ex_code`S&stringO@@@@@@AFa@AO`FJP`Fk@@zL@ASZTZ@@~Fw@@q@@P@:@@{@@@@2}@ࠠ"n2 .;<@@@ @@@O@$@డ $name%IdentOP$@ ְ@@@ @@O@ @@O@@O@@@ఐ!%identd%e*@@@ @@P@P@P@@@  @@/@@p @@డ?y.Cz.D@@@@@@N@N@@@@N@@N@@N@0@ @@VP@Q@@@@@ఐ$"n1.@.B@@@@@ఐk"n2.E.G@@@+N@#@@@@ dL@&@}@@L@"4@@HXHY@@Pn@@ภ԰H]Hb@@@@L@L@z@@AHc@@ L@L@0@@@@Ġ-Element_classdnd{@8-Element_classW@*Odoc_class't_class@@@;@AC@J@A[xz[x@@@1Oࠠ!c d|d}@@@@@@0@ @@@@@!@@ @@ @@@9 3Ġ%Types)Sig_class@8)Sig_class r@ o!t@@@ 1class_declaration@@@  g@@@  e@@@ @DE@G@AWXPyP{XXPyP@@@ࠠ%ident 0()@@@#@@@,0)(()))))@ F@@A@B@@@@56@@(@@P@- @@=>@@ @@P@.@@EF@@ @@P@/@@@HK@@ L@'L@$"@@@ࠠ"n1 1Z[@@@@@@BO@30]\\]]]]]@5@:@;@v@@@డ$Name&simplers@ W@@@@@O@8@@O@7@O@6@@ఐ!c@[@@$@@P@K@I/@'cl_name@Ͱ@@@@P@J9@@*@@=:@@@ࠠ"n2 2@@@ F@@@]O@4L@డ C$name%Ident@ A@@@ A@@O@W ]@@O@V@O@Uc@@ఐ%ident %@m@@ X@@P@^P@`P@_w@@  @@/x@@  @@డ)>)?@@@@;@@N@oN@f@@@N@e@N@d@N@c0@@@VP@Q@ @@@@ఐ"n1);)=@@@@@ఐk"n2)@)B@@@+N@r#@@@@ L@n&@}@@L@2@@ CS!CT@@@@ภ?'CX(C]@>@@@L@vL@t@@A/0C^@@ L@&L@#00//00000@@@@Ġ2Element_class_type@_iA_{@82Element_class_type@k,t_class_type@@@<@AD@J@AQ\R\@@@Pࠠ"ct W_|X_~@@@@@@ @@@@@ M @@ M @@@ 7Ġ%Types.Sig_class_typekl@8.Sig_class_type @ !t@@@ i6class_type_declaration@@@  @@@  @@@ @DF@G@AYPPYPQ@@@vࠠ%ident 4@@@#@@@0@ JE?@@@@@@@@@(@@P@ @@@@ @@P@@@@@ @@P@@@@H@@ uL@L@"@@@ࠠ"n1 5@@@@@@ O@0@5@:@;@@@@డw$Name&simple@ @@@/@@O@2@@O@@O@@@ఐ"ct@[@@^,t_class_type@@P@@1@(clt_name@,(clt_name @@@T!t@@@@@ ,(clt_info TY$info@@@@@@AA@AYXSWYXS@@^>m,(clt_type6 *class_type@@@@B@AYYYY@@^Jn,3clt_type_parameters(66)type_expr@@@@@@@C+@AZ ZZ Z@@^[o,+clt_virtual9?@@@@D5@AZ[!Z[5@@^ep,(clt_kindC#L@@@AE>@AZ\LPZ\Lt@@^nq,'clt_locLZ+(location@@@AFJ@AZ(]uyZ)]u@@^zr@AZ,W;?Z-W;R@@^~lm^@@X@@P@@@b@@@@cd@ࠠ"n2 6lm@@@ @@@'O@@డ $name%Ident'@ @@@ @@O@! #@@O@ @O@@@ఐ%ident(-@˰@@ @@P@(P@*P@)@@  @@/@@ @@డpƠȰ1F1G@Ű@@@@@N@9N@0@@@N@/@N@.@N@-0@@@VP@Q@@@@@ఐ"n11C1E@@@@@ఐk"n21H1J@@@+N@<#@@@@L@8&@}@@L@@@K[K\@@4R@@ภK`Ke@@@@L@@L@>^@@AKf@@L@L@0@e@@@Ġ6Element_module_commentgqg@86Element_module_comment@$text@@@A@AI@J@Aaa@@@`U@gg@@@@O@@@@@@@@@@@b 8@&g'g@@L@L@@@ภh̰1g2g@h@@@L@L@@@A9g@@L@L@@Ġ7Element_included_moduleHI@ʠ@MN@@K@@O@@@@ @@B@@B@@@ 9@Z[@@L@L@@@ภief@i@@@"L@L@@@Am@@3L@L@@@Asm}@@7'@@umu@@డE$List&exists@@@!a@0Au@@@1@@1@@@@1@@@1@@1@@1@$8$8$8$d@@c@@@@e@J@$J@K@@@K@@K@@@@K@@@K@@K@@K@0@l~@@}@@@@ఐ!f@@@@@@L@@@L@@L@@@ఐ預$lsig@@@&@@]@@'@k@@K@@@AA@@@@@@X^ @@డ$List&filter@@@!a@0@@@2-@@2,@~ @@@2+e@@@2*@@2)@@2(@_G**`G**@@^k@@@@@@J@@J@@@@J@@@J@@J@@J@0@@@7{@@@@ఐ'$pred12@@@@r@@K@!@@K@@K@@@ఐb!lFG@J@@&@@W@@J@)@g@@J@1@@AZ A@yJ@J@0ONNOOOOO@X@@@@AnA@@}@@&0SRRSSSSS@ @@@@Z@@@@@@@@J@0`__`````@'@@@@!l :p[q\@@@0nmmnnnnn@$@@@@@$lsig ;~]a@@@J@JJ@*0@7@@@@@@@ࠠ$pred <dndr@@@@@@@tK@1@@@IK@2@@3K@00@ 0&@'@@@@@"xt =dsdu@@@0@@@@@డ$List&existsxx@@@@@@@9@GJ@QK@<D@@K@>@K@=@C@@K@;@@K@:@K@9@K@80@:5F@,@@@@@@' AĠ%Types*Sig_typext@ՠࠠ%ident >@@@@@@V#@@@@@@O@W+@@  @@@@O@X3@@@@a@@O@Y;@@@(@@Q=@@@ࠠ"n1 ?$%@@@y@@@lN@]0'&&'''''@P82@3@@@@@డ$Name&simple<=@!@@@@@N@b@@N@a@N@`@@ఐ"xtST@v@@*@'xt_nameZ[@,'xt_name@@@!t@@@@@ ,'xt_args )Odoc_type0constructor_args@@@@A @A^os^o@@K,&xt_ret )type_expr@@@@@@@B@A__@@L,1xt_type_extension*@@@@C%@A``@@M,(xt_alias3ܠ/extension_alias@@@@@@@D5@AaNRaNt@@N,&xt_locC(location@@@AEA@Abuybu@@O,'xt_textO$info@@@@@@AFR@Acc@@P@A]X\]Xn@@Jnf@@`@@O@s@@j@@@@l@ࠠ"n2 @@@@o@@@N@^@డl$name%Ident&@j@@@j@@N@@@N@@N@~@@ఐ%ident',@̰@@@@O@O@O@@@  @@/@@ @@డ)+ 0E0F@(@@@d@@M@M@@)@@M@@M@@M@0@@@1VP@Q@3@@@@ఐ "n1-0B.0D@@@@@ఐk"n2:0G;0I@@@+M@#@@@@@@M@N@)@ @@@@M@M@@@OJXPJY@@t@@ภnVJ]WJb@m@@@M@~@@A\]Jc@@@@@L@L@L@KL@0`__`````@@@@@ఐ$lsigpdnqdr@̰@@@@@@K@6@@AA@@@@ @@zdj @@డJ$List&filter||@@@@@@@J@(@J@'@ @@J@&@@J@$@J@#@J@"0@@ @@@@@ఐ$pred||@@@@@@K@=@@K@<@K@;@@ఐR!l||@9@@&@@;@@J@3)@K@@J@/#@@AJ A@iJ@,J@)0@G@@@@A^A@@#m@@I0@@@@@@@@Aࠠ1analyse_structure B@@@@@@@J@U@=@@@J@V@@@@J@W@@@@)J@X@cM)structure@@@J@Y@ @@@J@Z=Q@@@xJ@@@@@CJ@[@@@@@@@@@@@J@@@#env E#$@@@B0!  !!!!!@O@K@F@A@<@7@0+@@\@@]@@^@@_@@`@@aK@R@X@J6analyse_structure_item C@]J@b@YJ@c@^!t@@@J@d@XJ@e@ɠ^@@@@@@J@f@c3structure_item_desc@@@J@g@`J@h@c`@@@̠\@@@@@@J@i@wt @@@ϠW@@@ѠT@@@@@@@@J@j=@@@J@kJ@lcԠJ@@@@J@m@@n@@o@@p@@q@@r@@s@@t@@u@@v@@wK@S@® pw¯ p@@.analyse_module D@J@x@J@y@@@@pJ@z@qJ@{@d+module_expr@@@J@|@=@@@J@}@@@J@~@@@@@@@@@@@@K@T@gpg~@@@@@@@3current_module_name F(@@@J@0@@@@@@@@(last_pos G)1@@@J@0@"@@@@@@@)pos_limit H2;@@@J@0@"@@+@@@@@)parsetree I%<&E@@@*J@J@0&%%&&&&&@#@@?@@@@@)typedtree J9F:O@@@3J@098899999@#@@R@@@@@ࠠ%table KOR]PRb@@@@@@ߠ@@@@@@K@0ZYYZZZZZ@"0&@'@s@@@ࠠ,table_values LjRdkRp@@@@@@@@@@@@@@@@@K@"@@ÂR\ÃRq@@5@@)@డ&tables0Typedtree_searchÔRtÕR@@'@@@@@@53@@@1@@@@@@-+@@@)@@@(@@@@@@@@@@@@@Y@Ѱ/.@@@",@@K@@@K@`^@@K@Ơ\@@K@@@K@ŠXV@@K@ɠT@@K@ˠS@@K@@K@@@K@@K@@K@@@ఐĠ)typedtreeRR@@@@)str_itemsRR@ @@dn@@L@@@L@L@L@@@{@@K@@@RX@@Aࠠ$iter M@@@@K@@@@@K@@ïe.structure_item@@@!K@@@@)K@a^@@@K@@@@@@K@0;::;;;;;@@@U@@W@@@@#env NQR@@@20ONNOOOOO@=@9@7@2%@@@@@@L@@@@p@@@@@(last_pos Ojk@@@IK@K@0lkklllll@*R@!@ą@@@@@ ^ĠĀ@@@@@WK@K@ 0āĀĀāāāāā@&@@Ě@@@@@ࠠ!s RĔĕ@@@@@@(M@0ėĖĖėėėėė@@@@ఐà2get_string_of_fileĦħ@e@@@@@M@@@@M@@@M@@M@@M@@@ఐZ(last_pos @:@@V'@@ఐ)pos_limit@@@4@@+@@85@@@@@@,-@@I@@@JM@/0@^UO@P@@@@ࠠ(ele_coms S/7@@@Wdg@@@L@@@KM@0@@+8@@"@@3@డ+all_special%My_ir ;L@df@@@@@M@<@@@M@;@@M@8d@@M@:@@M@9@M@7@M@6@M@5E@@డ{T{V3M4N@{S@@@{S@@N@NN@\N@Q@@N@R@N@P`@@ఐ)file_nameMW@W@@{n@@O@WO@ZO@Xt@@% @@u@@ఐΠ!sbXcY@@@@@N@MN@^N@]@@` @@rM@I@@p'@@డ@$List)fold_left}]i~]w@d1@@@@LK@L@d@d@@L@L@f @L@h@L@g@ @d2 @@L@e@L@c@L@b@L@a0ŒőőŒŒŒŒŒ@@@ū@@@@@#acc TŨxũx@@@'@@@"sc UŵxŶx@@@.L@0ŵŴŴŵŵŵŵŵ@$9@@@@@@ఐ"sc@@@@@0@#@@@*Odoc_types&i_desc@d@@dd@@@@@@@Ġ$None@@@@@d(d'@@P@@@P@0@&@@@ @@@ఐX#acc@B@@{L@ @Ġ$Some  @ ࠠ!t V@@@dM@@@K@@@@@dUdT@@P@@@P@S@@S@@డ!@*7+8@c[@@@g[+J@EJ@:J@J@$J@L@@@N@@cc@@N@ga@@N@@N@@N@0DCCDDDDD@|<6@7@]@@@@ఐ#accW3X6@@@@@ภa:bSAZภ6Element_module_comment jP@cఐ`!tsQtR@*@@o@@O@O@O@4@@ @@LO@7@ภ#A@$A@YP@@@O@O@D@@Ǝ9-@@cb@@O@O@L@@?4@@L@L@Q@@Aƛ:@@L@@@AƟx>@@@ @M@M@0ƟƞƞƟƟƟƟƟ@@@@@AƦxƧT@@@(@$*@M@w@M@vM@0ƩƨƨƩƩƩƩƩ@@@@@ภƷUcƸUe@@@@6L@%@@ఐؠ(ele_comsftf|@/@@elF@@M@uM@M@:@@U @@N$@c @@O@ @@PK@:@Ġװ}}@ՠࠠ$item P}}@@@0@b@@@ࠠ!q Q}}@@@s@@@@@@@@v@@@ࠠ+comment_opt W@@@|@@@@@@M@0        @3@.@&*$@%@(@@@ࠠ,ele_comments X @@@"@@@@@@M@@@,-@@)@@!@ఐT6get_comments_in_module; < @@@@@@M@@@@M@R@@M@@@M@Q@@M@@@M@@M@@M@@M@I@@ఐ(last_posd e @ް@@V@@ఐ$itemw x @e@@Hi@)Parsetree(pstr_locǀ ǁ @,(pstr_locP@@@:B>@@@:A@A,)pstr_desc +@@@:@@@@Ac3RWc4Rv@@hR@Ac7w|c8w@@hS"@@})@@O@@ @(Location)loc_startǤ ǥ @}60@@}@@N@@@&Lexing(pos_cnumDz dz *@|>@@2@@N@N@N@@@ @@M@@@@@@ࠠ*pos_limit2 Y :J :T@@@M@0@@@@@@@@ఐ!q Wk Wl@̰@@c@@@0@@@@Ġ" r r@!@@@@t@@P@(@@(@@ఐ)pos_limit r r@԰@@ M@&4@Ġ  @ࠠ%item2 Z@@@K@K@K@,K@Q@ :@@$%@@Ǧ@@P@"C@@@@@ǫ@@P@#H@@H@@ఐ'%item2<=@'@(@P@@)0<;;<<<<<@r2@@@)Parsetree(pstr_locIJ@ɰ@@}@@O@.@+@(Location)loc_startWX@}@@}@@N@0@-@&Lexing(pos_cnumef@},@@qM@/M@'+@@Am We@@@@o :F @@@ࠠ*maybe_more [} ~@@@J@'J@0~}}~~~~~@@@ȗ@@@ࠠ'new_env \Ȏȏ@@@RJ@@ࠠ(elements ]Ț!ț)@@@J@J@@@ȡ Ȣ*@@& @@%@ఐs6analyse_structure_itemȱ-ȲC@w@@@u@t@s@k@i@`@Y@W@E+&%@M@@M@@M@@M@@M@@M@@M@@M@@M@@M@H@@ఐ#envDTDW@d@@U@@ఐ3current_module_nameXhX{@ް@@b@@ఐ $item||@߰@@q@)Parsetree(pstr_loc||@z @@z@@ఐ<*pos_limit2@@@<@@ఐ+comment_opt@C@@@@ఐ>$item#$@@@@)Parsetree)pstr_desc,-@ @@@@ఐ)typedtree9:@ڰ@@@@ఐ%tableF.G3@@@@@ఐ預,table_valuesS4DT4P@@@@@@@M@@@Z@@డ)!@d`ye`z@f@@@j@@ఐ)(elements`{`@B@@)K@@ఐ$iter``@~@@@@@@N@@N@@N@`@@ఐW'new_env``@f@@Wm@@డȹ``@@@@@@O@@@@O@@@O@@O@ @O@ @@ఐ.$item``@@@@)Parsetree(pstr_loc``@ @@@@Q@#@ @(Location'loc_end*`+`@@@@@P@%@"@&Lexing(pos_cnum8`9`@(@@@@P@P@&P@$@@ఐϠ*maybe_moreL`M`@ϰ@@@@P`Q`@@*@@ఐl!q\`]`@H@@0@@``a`@@(@@@@g@@M@M@-M@@@ @@K@@@@@@@@@@K@b@@At@@NK@ K@ @@AA@ZK@K@0yxxyyyyy@ @@@@A/A@@`^@@0}||}}}}}@.@@@@ʄ$@@ఐq$iterʎʏ@:@@@q@.@@J@@i@@J@@@J@gà@@J@@J@@J@@J@Q@@ఐ#envʯʰ@@@^@@ఐ(last_posʼʽ@@@k@@ఐ)parsetree @@@x@@?@@J@DJ@"J@#J@@Q @@@ @@ J@y@@AA@J@J@0@@@@@AA@J@J@0@@@@@AA@J@J@0@@@@@A!A@J@J@0@@@@@A'A@ J@J@0@@@@@A-A@@  @@0@@@@ɼ Q Analysis of a parse tree structure with a typed tree, to return module elements.@@@@@@@?@ӠӰa`@b@@@@@@@@@@@@@@@@@@@@@@@@@@@@@J@0!  !!!!!@ @@@@#env _1 p2 p@@@0/../////@ @@@@@3current_module_name `? p@ p@@@J@0>==>>>>>@  @@W@@@@@#loc aQ pR p@@@ J@J@0SRRSSSSS@#@@l@@@@@)pos_limit bf pg p@@@ rJ@(J@0hgghhhhh@&@@ˁ@@@@@+comment_opt c{ p| p@@@J@J@0|{{|||||@%@@˕@@@@@3parsetree_item_desc dˏ pː p@@@ 4J@J@0ˑːːˑˑˑˑˑ@%@@˪@@@@@*_typedtree eˤ p˥ p@@@ J@J@0˦˥˥˦˦˦˦˦@&@@˿@@@@@%table f˹!˺!@@@Ųů SJ@J@ RJ@J@@@J@J@0@#3)@*@@@@@@,table_values g!!@@@ aJ@J@ `J@J@@@J@ J@0@#@6@7@@@@@ఐq3parsetree_item_desc""@Q@@m0@.$@%@@@@Ġ)Parsetree)Pstr_eval#!)#!<@8)Pstr_eval @@@:[@aD@@@:Cg@@@:D@B@@O@Agg@@@miT@&#!='#!>@@aU@@M@0&%%&&&&&@,@@@@ @g@@M@@@@# @@@@@@@9%]h:%]i@@ J@@ఐ#envE%]kF%]n@@@ @ภN%]pO%]r@~@@@~$J@VJ@@@K@.@@Z%]g[%]s@@?J@J@5@Ġ)Parsetree.Pstr_attributen&t|o&t@8.Pstr_attribute_@J@@@:X@AM@O@Ahh@@@ma@~&t&t@@J@@N@X@@@@@Y@@Y@Ġ)Parsetree.Pstr_extension̎'̏'@8.Pstr_extension@JD@@@:Yh3@@@:Z@BN@O@Ah>46h?4`@@@mb@̢'̣'@@JU@@N@|@@@hE@@N@@@@ @@@@@@@ @@@@@̵(̶(@@~J@@ఐ#env((@~@@ @ภ((@@@@~J@@@K@@@((@@|J@J@@Ġ)Parsetree*Pstr_value))@8*Pstr_value@hE(rec_flag@@@:EI5W@@@:G@@@:F@BA@O@Ahh@@@nDUࠠ(rec_flag h))@@@@@@ 0@ @@@ࠠ,pat_exp_list i))@@@%5{@@@ @@@ @@@8) @@@@@@Aࠠ(iter_pat v). *. &@@@@n{,pattern_desc@@@L@ȍh#loch@@@@@@L@@@@L@@L@0BAABBBBB@JIC@D@\=7@8@^@@@@ȑ yĠ)Parsetree(Ppat_any[/2@\/2R@8(Ppat_any/@@@8n@@@@AQ@Ai  i  @@@nm@@  @@:0cbbccccc@"E@A:@@M@@D@̀@@@@ภ$Nonev/2Vw/2Z@ȍ@@@DL@@Ġ)Parsetree(Ppat_varͅ0[i͆0[{@8(Ppat_var*@NL@@@8C@@@8B@A@AQ@Ai5 3 5i6 3 M@@@nnࠠ$name w͝0[|͞0[@@@db@@@@@@0͢͢͢͢͢͢͡͡@?@@@@@$ @@{@@ภ$Someͯ0[Ͱ0[@gఐ$name͹0[ͺ0[@@@Ͱ@@0͹͸͸͹͹͹͹͹@W'@@@@@@L@L@@Ġ)Parsetree*Ppat_tuple11@8*Ppat_tuplet@JŠJ@@@8K@@@8J@ADAQ@Ai!!i!"@@@o'r@11@@J@@O@@@O@F@@@ @@G@@ภ$None11@ @@@L@L@T@Ġ)Parsetree/Ppat_constraint22 @8/Ppat_constraint@J@@@8acr@@@8b@BJAQ@Ai&&i&'@@@o\xࠠ#pat x2 2@@@K@@@0@@@@@'2(2@@c@@O@ @@@(-2@@ @@ఐ(iter_pat7282@ϰ@@@@M@076677777@%@ @P@@@@ఐ/#patL2M2"@@@K5@@N@@@)Parsetree)ppat_descZ2#[26@,)ppat_descKB@@@8A1@@@8=@@ ,(ppat_loc j=!t@@@8>@A @Ajsxjs@@oj,.ppat_loc_stackM@@@8?@B@Ajj@@ok,/ppat_attributesj@@@8@@C@Aj"j#@@ol@Aj&UZj'Ur@@oi<-@@ZN@N@@T0@@VL@P@@ΐ37EΑ37F@@do@@ภ$NoneΘ37JΙ37N@ɯ@@@hL@L@|@@AΠ. )@@@un@@$;@@Τ.  @@Aࠠ$iter zί5\nΰ5\r@@@%firstz-@@@&L@<@@L@=L@;@ @@@L@)@p@@@L@*@o@@@hL@D@@@RL@+@`7G@@@L@|@@@L@,"L@-L@.@@:@@9@@8@@7@@6@L@5@?z {z˰5\u5\A@zqD@@M@A0@WSz|OL@'@@@(@K@F@A@6+)@@/@@0@@1@@2@@3@@4M@&@g@)@@@@@ࠠk |l("5\z@*@@kL@WL@E0"!!"""""@(6zr@@@@@5@?@@@ఐAz 65\s7bNA@z@@@G076677777@@@@Ġzࠠz  }zJ5\{P@@Q@K@@@@z @@P@L@@@@ఐ z ' @ @g@5L@T0TSSTTTTT@3@@@Ġz 4w@@@zנ@@P@Q*@@*@@ภÃ!p@À@"@GM@U1@@At@IF@@?@@(last_pos ~w5\x5\@@@L@LL@`0yxxyyyyy@Xa]@^@ϒ@@@@@'acc_env ό5\ύ5\@@@L@f0ϋϊϊϋϋϋϋϋ@#@@Ϥ@@@@@#acc Ϟ5\ϟ5\@@@L@l0ϝϜϜϝϝϝϝϝ@ @@϶@@@@@(p_e_list ϰ5\ϱ5\@@@L@yL@r0ϲϱϱϲϲϲϲϲ@#@@@@@@ఐ(p_e_list66@@@ְ@@0@#@@@Ġ77@@@@@$0@@@@@%@@ఐZ'acc_env88@@@@V@ఐS#acc88@6@@O@@88@@L@L@ @Ġ9)9+@ঠ)Parsetree'pvb_pat 9 9@,'pvb_pat8r@@@:`L@@@:\@@ ,(pvb_expr eF@@@:]@A@Akk@@qfd,.pvb_attributesk@@@:^@B@Akk@@qoe,'pvb_locl!t@@@:_@C@Akk@@q{f@Akk@@qcࠠ#pat ?9@9@@@M&@@@|@A(pvb_exprK9L9#@6ࠠ#exp S9$T9'@@@e@@@@@@Z9[9(@@yO@~@ࠠ!q e9,f9-@@@@@@@@@@@@@@@@ࠠ.value_name_opt w:1Ex:1S@@@ҠCA@@@@@@@@@N@0ЂЁЁЂЂЂЂЂ@PJ@K@Н>8@9@П.(@)@С@@@ఐq(iter_patК:1VЛ:1^@2@@@o@@N@ig@@N@@@N@@@N@@N@&@@ఐz#patй:1_к:1b@0@@M@@O@@:@)Parsetree)ppat_desc:1c:1v@m@@@@O@O@O@J@@8 @@VK@@:1A @@@ࠠ,new_last_pos ;z;z@@@)@@@N@0@`uo@p@@@@ఐ#exp;z;z@l@@f)@@P@@@)Parsetree(pexp_loc;z;z@Oǰ@@@@O@@'@(Location'loc_end;z;z@@@r@@N@@5@&Lexing(pos_cnum!;z";z@n-@@A>@@%;z@@ఐ.value_name_opt/<0<@I@@̈@@@@@@@@@087788888@Xe_@`@Q@@@Ġ$NoneK=L=@b@@@@̤@@P@@@P@@@P@0TSSTTTTT@@@@ @ @@ఐ$iterc>0d>4@c@@|ݠa@@N@@@@@@N@@N@@N@@N@@N@@N@@ƐภRP̓@P@|w@@O@)@@ఐ,new_last_posь>5э>A@O@@6@@ఐ'acc_envљ>Bњ>I@@@ C@@ఐ #accѦ>Jѧ>M@@@P@@ఐN!qѳ>NѴ>O@&@@]@@T@@L@L@b@Ġ$Some?Pb?Pf@}ࠠ$name ?Pg?Pk@@@@@@@@@@@@ @@/@@P@@@P@@@P@@ @ @@@ࠠ'pat_exp AA@@@ J@J@0@.(@)@ @@@డt,search_value0Typedtree_searchAA@@+@@@@@@@@@@  @@@53/@@O@@72@O@@O@&@@ఐO,table_values&A'A@'@@K3@@ఐg$name5A6A@?@@T@@P@F@#txt@AAA@*@@^P@O@@@@@\P@@GA@@@ࠠ(info_opt UBVB@@@J@J@J@J@J@J@7J@9J@TJ@VJ@}J@J@J@J@UJ@WJ@J@ J@J@J@!0zyyzzzzz@@@ғ@@@ࠠ,ele_comments ҊBҋB@@@Ƽ@@@JO@+@@@-O@"@@ҙBҚB@@"@@.O@%"@ఐ%firstҪDoҫDo@,@@.@ఐ@+comment_optҷEҸE@!@@<;@ภEE@@@@4D@@EE@@)G@ఐ預6get_comments_in_moduleGG@4@@@T@@O@8@S@@O@7R@@O@4@@O@3N@@O@6@@O@5@O@2@O@1@O@0p@@ఐ(last_posH+H3@i@@}@@ఐ͠#pat I4P I4S@@@O@@R@S@Q@)Parsetree(ppat_locI4TI4f@@@@@Q@U@R@(Location)loc_start(I4g)I4y@@@@@P@W@T@&Lexing(pos_cnum6I4z7I4@-@@@@P@KP@XP@V@@q @@O@F@DDo@@@@FB@@@ࠠ(l_values QKRK@@@ǃ@@@@@@O@Z0XWWXXXXX@ @ @r@@t@@@ఐn0tt_analyse_valuemKnK@h@@@@@O@n@@@O@m@b_@@O@l@@O@k@V@@O@j@c@@O@h@@O@g@@O@fW@@O@i@O@e@A@@O@dΠ;@@O@c@@O@b@O@a@O@`@O@_@O@^@O@]@O@\K@@ఐ#envӲLӳL@o@@tX@@ఐ3current_module_nameӿMM$@g@@e@@ఐw(info_optN%?N%G@n@@wr@@ఐ#locOHbOHe@l@@@@ఐ'pat_expPfPf@g@@@@ఐ(rec_flagQQ@@@@@P@P@P@@@ @@@@K @@@ࠠ'new_env  S S@@@CO@0        @@@#@@@డ$List)fold_leftS S@rӰ@@@@\O@@@@O@O@ @O@@O@@ @rҠ @@O@@O@@O@@O@021122222@(@@@@@!e ETFT@@@"@@@!v RTST @@@+O@0RQQRRRRR@I4@@k@@@@డU)add_value(Odoc_envgU$@hU$R@@@@@Z@l!t@@@Z@@@Z@@Z@@Z@N^O^@@F@@@%@@P@@@@P@-@@P@@P@@P@0ԇԆԆԇԇԇԇԇ@6D:@;@Ԡ@@@@ఐY!eԚU$SԛU$T@C@@w@@ఐ[!vԩU$UԪU$V@@@W @(val_name԰U$WԱU$_@b @@^@@Q@*@@P@@O@O@/@@AԼT @@@@P@P@0ԼԻԻԼԼԼԼԼ@j@@@@ATV`{@@@@@P@@P@P@@@ఐM'acc_envW|W|@3@@I@@ఐ(l_valuesXX@Ӱ@@s@@P@P@P@@@ @@@@S @@@ࠠ%l_ele ZZ@@@s.@@@@O@@@@O@0@@@@@@డ$List#mapZZ@@@@@!.@@O@O@"@O@@ @@O@+@@O@@O@@O@0)(()))))@&@@@@@!v <Z =Z @@@ @@ภ-Element_valueEZFZ@!Wఐ!vOZPZ@3@@c@@50ONNOOOOO@M"@@@@@@UO@@@AZZ[Z@@@A^@P@P@X@@ఐ(l_valuesjZ kZ(@[@@U@@P@P@!P@G@@^ @@wn@@wZ @@ఐҠ$iterՁ[,BՂ[,F@@@@@N@*@@@@@N@)@N@(@N@'@N@&@N@%@N@$0ՑՐՐՑՑՑՑՑ@@@ժ@@@ภtrе@r@@@O@>@@ఐР,new_last_posծ\G_կ\Gk@q@@O@?@@ఐ'new_envս]lվ]l@@@*@@డԑ!@^^@r@@@v@@O@F@r@@O@Ev@@O@C@O@B@O@AI@@ఐO#acc^^@2@@KV@@డԽ!@^^@s)@@@w)*P@X@@P@Z@s'@@P@Yw% @@P@W@P@V@P@Uw@@ఐ,ele_comments^^@@@wJ!@@Q@fQ@iQ@g@@ఐ2%l_ele,^-^@@@sU6@@Q@eQ@lQ@j@@! @@s^i@@P@QP@nP@d@@A^B^@@rL@P@@ఐꠐ!qO_P_@°@@tL@p@@@@L@<@@@P@j @@J@[ @@@ @@@ @@f@Ġ)Not_foundda ea@@@@@ճ@@Q@ut@@ఐĠ$itersb/tb3@s@@q@@O@@@@@@O@~@O@}@O@|@O@{@O@z@O@y@֐ภb`ѣ@`@@@P@@@ఐ,new_last_pos֜b4֝b@@_@@P@@@ఐ#'acc_env֫bA֬bH@ @@@@ఐ#accָbIֹbL@@@@@ఐ`!qbM@7@@L@@@W@@yL@L@w@@@o@@}L@@@A<@@L@}@@@@@@Q@@A6@@L@w@@A-A@L@tL@q0@*@@@@AEA@L@nL@k0@E@@@@A]A@%L@hL@e0@]@@@@AxA@@wL@a@L@0@u@@@@7L@bL@DѠxx@@A@IrE@@@@@@0@@@@@5\f@@@ࠠ'new_env d\kd\r@@@J@J@_J@bJ@eJ@fJ@pJ@qJ@ J@-J@J@J@pJ@qJ@?J@LJ@KJ@NJ@hJ@iJ@0J@1J@J@J@?J@J@J@UJ@J@J@J@J@J@֑J@֒J@ԥJ@ԨJ@`J@aJ@J@J@ͶJ@͹J@J@J@̢J@̣J@VJ@WJ@J@J@ʧJ@J@J@7J@8J@J@J@>J@J@J@8J@9J@0L@@ࠠ%l_ele ךd\tכd\y@@@xˠ@@@2@@@1L@@@קd\jרd\z@@@@@ఐ $iter׶d\}׷d\@@@ 0@@L@@@L@@ @@L@@m@@L@@x@@L@@@L@@W@<@@L@@@L@@L@@L@ @L@ @L@ @L@ @L@ @ 0ภz]׺Ҟภd\d\@@@@@@M@7M@;@@@k@@M@<@@ఐ #locd\ d\@ @@  @(Location)loc_startd\d\@ @@p@@M@B@? @&Lexing(pos_cnumd\ d\@l@@l@@M@5M@CM@A )@@ఐ #env3d\4d\@ @@ 6@@ภo>d\?d\@n@@@M@J C@@ఐ :,pat_exp_listMd\Nd\@ @@Ԡ@@@M@4@@M@3M@MM@K [@@@@L@/ ^@@_d\f@@@gehe@@ 0J@T0feefffff@ ma[@\@؀@@؂@@@ఐi'new_envze{e@@@i@ఐ렐%l_ele؅e؆e@@@J@J@U!@@؍e؎e@@) @K@W)@6@@ @@@ s@  @@ =J@SJ@ T@Ġ)Parsetree.Pstr_primitiveاgبg @8.Pstr_primitive @y1value_description@@@:H@AB@O@AtUiktVi@@@yVࠠ(val_desc jؽg ؾg@@@@@@0ؾؽؽؾؾؾؾؾ@ @@@@@@@ 3@@ 3@@@ࠠ(name_pre h)h1@@@t@@@^L@Y0@ !@@@@@ఐ*(val_desch4h<@@@@@@M@_@\@)Parsetree)pval_nameh=hP@,)pval_nameM@@@8tV#loc-@@@8@@@8@@,)pval_typenl@@@8@A@AtD DtD D#@@zU,)pval_primVtU@@@8@@@8@B@AtD$D)tD$D@@@zd,/pval_attributes't@@@8@C@AtDADFtDADb@@zm,(pval_loc0t!t@@@8@D*@AtDDtDD@@zy@AtCCtCD@@z}QB@@<g@@L@]d@#txt@hQAhT@*\@@qL@`m@@Fh%@@@ࠠ#typ QjRj@@@HE@@@|L@h0UTTUUUUU@@@n@@@డ0search_primitive0Typedtree_searchjjkj@@ @@@X@@@@@@@r@@@*@@@@@@@@@H@@@ Ƞ@@L@o@@L@p@@L@n@ֈ@@L@m@@@L@l@L@k@L@j?@@ఐ %table٣j٤j@ @@ L@@ఐ᠐(name_preٰjٱj@V@@֬@@M@}M@M@`@@Q @@ea@@ټj @@@ࠠ$name kk@@@@@@L@0@v~@@@@@డ|$Name/parens_if_infixkk@@@@4@@L@7@@L@@L@@@ఐ%(name_prekk@@@I@@M@M@-@@@@1.@@k @@@ࠠ-complete_name  l  l '@@@^@@@L@0        @CPJ@K@%@@@డ׾$Name&concat!l *"l 5@@@@v@@L@@{@@L@~@@L@@L@@L@ @@ఐ3current_module_name;l 6<l I@@@-@@ఐ$nameHl JIl N@7@@՟@@M@M@M@A@@2 @@EB@@Tl  @@@ࠠ$code _mRb`mRf@@@պ@@@L@@@@L@0hgghhhhh@]jd@e@ځ@@@డA{niz|ni{@@@@Y@@L@L@L@@@L@@L@@@డ)keep_code+Odoc_globalژni@@@@@M@M@M@5@@( @@ 6@ภ$Someکoڪo@aఐҠ2get_string_of_fileڵoڶo@t@@@@@L@@@@L@@@L@@L@@L@X@@ఐ#locoo@f@@i@(Location)loc_startoo@n @@;@@M@@w@&Lexing(pos_cnumoo@7@@@@M@M@M@@@ఐ#locpp@@@@(Location'loc_end p p@ @@j@@M@@@&Lexing(pos_cnumpp @f@@C@@M@M@M@@@$o%p!@@@@~@@}@@@@ภ$None2r5E3r5I@I@@@L@@8niw@@@@:mR^@@@ࠠ)new_value EtYiFtYr@@@@@@ L@0HGGHHHHH@@@a@@@(val_nameZuw[uw@ఐZ-complete_namecuwduw@@@ֶ@@M@@ (val_infoovpv@ఐ+comment_optxvyv@@@.@(val_typeہwۂw@డ}*subst_type(Odoc_envۏwېw@{@@@8@@M@,@{@@M@+v@@M@*@M@)@M@(R@@ఐ|#env۩w۪w@f@@k_@@ఐe#typ۶w۷w@@@@@N@7N@;N@:s@@2 @@X@@M@&M@=N@6{@P-val_recursivexx!@ภx$x)@@@@_@@M@BM@F@Y.val_parametersy,<y,J@ภy,My,O@@@@he@@M@N@@M@MM@T@](val_codezRbzRj@ఐ$codezRmzRq@@@po@@M@\@@M@[M@_M@]@i'val_loc{t{t@ຠ(loc_impl${t%{t@ภ$Some,{t-{t@ఐ預#loc6{t7{t@ɰ@@@@@@J@J@J@J@J@|J@J@J@ܑJ@J@J@J@J@J@J@DJ@=J@˗J@˞J@ˡJ@J@J@ȎJ@n@@N@mN@t @5)loc_inters{tt{t@ภ$None{{t|{t@ג@@@ED@@N@@@N@N@:@@@܈{t܉{t@@@@M@eM@B@@@ܐtYuܑ|@@JE@@ܓtYe@@@ࠠ'new_env ܞ~ܟ~@@@G@@@L@0ܡܠܠܡܡܡܡܡ@Zga@b@ܺ@@@డ)add_value(Odoc_envܶ~ܷ~@O@@@_@@L@@O@@L@g@@L@@L@@L@ @@ఐ#env~~ @@@-@@ఐ)new_value~ ~@9@@{@@M@@A@(val_name~~@@@@@M@K@@<@@OL@@~@@@!.!/@@J@0@Zga@b@@@@ఐm'new_env !1 !8@ @@J@@ภI!;!SAภ-Element_value !H@)/ఐ⠐)new_value'!I(!R@@@);@@K@K@K@2@@ @@J@K@7@ภ\%Ai@&A@ܾJ@@@K@K@E@@E!:0@@s@@K@K@@K!-L!T@@SC @K@S@`@@@@@@ @@@ @@ E@Y @@ @ @@ @ @@J@J@X@Ġ)Parsetree)Pstr_typeiV^jVq@8)Pstr_typeZ@x(rec_flag@@@:IZe~0type_declaration@@@:K@@@:J@BC@O@Ay"y# @@@~Wࠠ"rf k݊Vs݋Vu@@@@@@0݋݊݊݋݋݋݋݋@@@@ࠠ2name_typedecl_list lݘVwݙV@@@'&@@@@@@@@@:ݣV@@@@@@@ࠠ,extended_env ݮݯ@@@L@0ݭݬݬݭݭݭݭݭ@/)@*@#@@@@@డ܈$List)fold_left@|y@@@@L@@Z@@L@L@ @L@@L@@ @|x @@L@@L@@L@@L@0@+@@@@@'acc_env  @@@"@@@1 ঠ)Parsetree*ptype_name*@,*ptype_name@@@9y^#locyI@@@8@@@8@@ ,,ptype_params[s|@@@8yy(variance@@@8y+injectivity@@@8@@8@@8@@@8@A@AyFF yFFC@@u,+ptype_cstrs0["s@@@8s@@@8z!t@@@9@@8@@@8@B9@AyFbFgyFbF@@,*ptype_kindL)type_kind@@@9@CD@AyFFyFF@@,-ptype_privateWy,private_flag@@@9@DO@AzFFzFG@@,.ptype_manifestbys@@@9@@@9@E]@AzG5G:zG5G[@@,0ptype_attributespz @@@9@Ff@AzGuGzzGuG@@,)ptype_locyzP!t@@@9@Gr@Az#GGz$GG@@@Az'EEz(EF@@ঠ#txtސ/ޑ2@zࠠ$name ޘ5ޙ9@@@@@@0ޙޘޘޙޙޙޙޙ@@@޲@@@@@ޣ-ޤ;@@@@O@O@@@O@@@@ޯް<@@O@@@@ࠠ-complete_name ޽@T޾@a@@@@@@N@0޿޿@(3-@.@@@@డr$Name&concat@d@o@b@@@*@@N@@/@@N@ 2@@N@ @N@ @N@  @@ఐ3current_module_name@p@@@@-@@ఐd$name@@@7@@Q@@O@'O@&?@@0@@C@@@@P @@డ(add_type(Odoc_env@@@@@Z@v!t@@@Z@@@Z@@Z@@Z@]]@@E@@@@@M@2@@@M@1@@M@0@M@/@M@.032233333@t{@|@L@@@@ఐ_'acc_envFG@@@}@@ఐ-complete_nameST@@@ڦ@@N@B!@@G@@VE>X@=ࠠ)type_decl M>LN>U@@@(F@ࠠ!q W>YX>Z@@@ڠ5@@@T@@@@@kU@@kU@@@ࠠ$name i^rj^v@@@e@@@N@0lkklllll@i+M@&@#@@@@@ఐ6)type_decl^y^@@@^@)Parsetree*ptype_name^^@ @@$@@N@"@#txt^^@@@.N@+@@^n@@@ࠠ-complete_name @@@@@@N@0@@MG@H@@@@డ]$Name&concat@M@@@@@N@@@@N@@@N@@N@@N@ @@ఐ3current_module_name@@@-@@ఐ~$name@7@@<@@O@O@?@@0@@C@@@ @@@ࠠ#loc @@@@@@N@0@Ub\@]@@@@ఐĠ)type_decl@@@@)Parsetree)ptype_loc"@ @@@@@@@ࠠ)loc_start )&:*&C@@@t@@@N@0,++,,,,,@.;5@6@E@@@ఐD#loc@&FA&I@@@@@O@@@(Location)loc_startN&JO&\@@@@@N@@%@&Lexing(pos_cnum\&]]&l@@@1.@@`&6@@@ࠠ'loc_end kp„lp‹@@@@@@ N@0nmmnnnnn@CPJ@K@@@@ఐ#locpp’@Q@@@@O@ @@(Location'loc_endp“p£@ @@@@N@ @%@&Lexing(pos_cnump¤p³@@@1.@@p€@@@ࠠ*pos_limit2 ··@@@MJ@,J@ƋJ@ƏJ@ 0@ERL@M@@@@ఐm!q@P@@G@@@0@@@@Ġ @@@@@X@@Q@%@@%@@ఐ)pos_limit@b@@8J@1@Ġ68@ࠠ"td 35@@@L@\L@#L@R@8@@9:@@∠@@Q@A@@@@@⍠@@Q@F@@F@@ఐ%"td>@@%@&@2@@'0@m0@@@)Parsetree)ptype_loc+A,T@@@@@P@%@"@(Location)loc_start9U:g@˰@@@@O@'@$@&Lexing(pos_cnumGhHw@,@@J@WJ@[J@&N@.@@AR @@@@T· @@@ࠠ*maybe_more bÍäcÍî@@@@@@PN@)0eddeeeee@@@~@@@ࠠ1name_comment_list uÍðvÍ@@@@@@S@@@U@@@T@@R@@@QN@*#@@ÍãÍ@@.@@-*@డ;name_comment_from_type_decl#Sig@@@@@Y@@@@Y@@@@Y@@@Y @@@Y?@@@Y@@@Y@@Y @@@Y @@Y @@Y @@Y@@Y@@,+@@@@@N@;@@@N@:@@@N@9@@N@3@@N@6h@@N@8@@N@7@N@5@@N@4@N@2@N@1@N@0@N@/@@ఐ'loc_end@G@@S@@O@XO@ZO@Y@@ఐe*pos_limit2 @@@e@@ఐҠ)type_decl  @@@@@@@N@O@@&Íß@@@ࠠ,tt_type_decl 1+A2+M@@@ߞ@@@rN@^054455555@@@O@@Q@@@డ7search_type_declaration0Typedtree_searchOPhPPĐ@@HE!@@@Ӡ?@@@@@@@@@@1@@@@@@@@Ŭ@P@@@!@@N@e@@N@f@@N@d@@@N@cG@@N@b@N@a@N@`F@@ఐՠ%tablePđPĖ@@@S@@ఐ.$namePėPě@@@@@O@sO@ËO@Êg@@S @@lh@Ġ)Not_foundĜĵĜľ@&@@@@@@Q@Ðv@@డ~%raiseĜĜ@@@@@@O@ÖN@ÒO@Õ@O@Ô@@ภ'FailureĜĜ@ݠడ;type_not_found_in_typedtree-Odoc_messagesĜĜ@@l@@@p @@@p@@p@890948909O@@@@@y@@P@å,@@P@ä@P@ã@@ఐW-complete_nameĜĜ @@@R@@Q@í@@ĜĜ @@@@P@áP@òQ@ë@@ĜĜ @@R@@P@ÛP@à@@_@@U@@Pd @@@@+= @@@ࠠ,tt_type_decl &!7'!C@@@@@@øN@õ0)(()))))@@@B @@@ఐ ,tt_type_decl;!F<!R@ @@@@N@ù@÷@)Typedtree(typ_typeI!SJ!e@@@!@@M!3@@@ࠠ'com_opt [iŀ\iŇ@@@N@û0ZYYZZZZZ@2?9@:@s @@@ࠠ,ele_comments jiʼnkiŕ@@@ٜo@@@N@@@@N@ü@@yiziŖ@@@@N@ÿ"@ఐ%first@@@.@ఐ +comment_opt @@@;@ภѰ@@@@4D@@ @@)G@ఐɠ6get_comments_in_module8N8d@@@@4@@N@@3@@N@2@@N@@@N@͠.@@N@@@N@@N@@N@@N@p@@ఐ(last_pos8e8m@@@}@@ఐ)loc_start8n8w@s@@f@@O@O@O@@@A @@xN@@@@x@@i{@@@ࠠ$kind ƍƣƍƧ@@@@@@ N@0@@@ @@! @@@డ-get_type_kind#Sigƍƪƍƻ@@@@@Y)@@@@Y&@@@Y(@@@Y'@@Y%@@@Y$@@@@Y#;@@@Y"@@Y!@@Y @@Y@@('@@@%@@N@@@@N@$@@N@@@N@@N@@@N@@#@@N@]@@N@@N@@N@@N@\@@ఐӠ#envpƼqƼ@0@@i@@ఐ1name_comment_list}Ƽ~Ƽ@@@@LK@@O@ J\@@O@@@O@@O@ @@O@ O@O@@@ఐ|,tt_type_decl@C@@@@O@#@!@%Types)type_kind@@@z@@O@ O@$O@"@@ @@@@ƍƟ @@@ࠠ'new_end ,B,I@@@e@@@6N@&0@@@ @@@డ,T,U@@@@@@N@,@@@N@+@@N@*@N@)@N@(@@ఐ'loc_end,L,S@>@@@@O@8O@:O@90@@ఐ*maybe_more ,V ,`@ΰ@@@@O@7O@ @@@ࠠ!t  dz!d{@@@1#@@@BN@>0#""#####@Zga@b@<@@@ 1 'ty_name5ǔǪ6ǔDZ@ఐ-complete_name>ǔǴ?ǔ@:@@@@O@G@1('ty_infoJK@ఐ'com_optST@H@@.@1$-ty_parameters\]@డ-$List$map2j*k3@@@!a@0v@!b@0t!c@0r@@1@@1@ޠ@@@1@@@@1@@@1@@1@@1@@1@[@@^-,@@@@@@O@6O@s@Ū!t@@O@O@q1t@@O@g1o@@O@h1l@@O@i@O@fO@SO@%O@o@O@u@O@t@>'@@O@r@=&@@O@p<#@@O@n@O@m@O@l@O@k0@@@@@@!p 4P4Q@@@C@@@!v 4R4S@@@IO@đ0@U@@@@@@@ࠠ"co WuWw@@@@@@Q@ė0@)@ @@@@ࠠ"cn WyW{@@@@@@Q@Ę@@WtW|@@  @@ě@డ(Variance)get_upper%Types1W2Wȗ@@@@@9@@@)@@@@@@@@};;~;;@@4@@@@@Q@M@@Q@=@@Q@@Q@@Q@P@@ఐ}!vaWȘbWș@Z@@y]@@4@@IQ@`@@hWp@@డf*subst_type(Odoc_envxȝȷyȝ@d@@@!@@P@+@d@@P@*_@@P@)@P@(@P@'0@@@y@z@@@@@ఐ#envȝȝ@Y@@@@ఐϠ!pȝȝ@@@!@@2@@O@TO@5&@ఐ"coȝȝ@-@@O@UO@;5@ఐ"cnȝȝ@:@@O@VO@<D@@ȝȶȝ@@( @P@=L@m@@,O@ĕ@@A A@@:3@P@AP@@0@@@@@A4Kȝ@@@I@D=@P@Ĉ@P@ćP@C@@ఐ̠,tt_type_decl@@@S@@P@I@F-@%Types+type_params@Q@@o@@P@ĆP@JP@G>@@ఐ,tt_type_decl(4@@@x@@P@O@LR@%Types-type_variance%5&H@3@@@@P@ąP@PP@Mc@@ @@3@@O@eO@RO@Ą@2㡠'ty_kind?Ka@Kh@ఐG$kindHKkIKo@y@@2@@O@[O@]O@\@2񡠐*ty_privateXrɈYrɒ@ఐ=,tt_type_declcrɕdrɡ@@@@@O@h@f@%Types,type_privateqrɢrrɴ@ǝ@@3@@O@iO@g@3 +ty_manifestɶɶ@ఐf,tt_type_decl@-@@@@P@{@x0@l@@@%Types-type_manifest@ǹ@@Ǹɓ@@@z@@@y@Ġ$None:>@@@@@̠ɧ@@R@Ń@@R@ł@@@@ภ$NoneBF@@@@3U3T@@P@@@P@P@ŗ@Ġ$SomeGbGf@䍠ࠠ!t ͠GgGh@@@@@@ŊP@@@@@@@R@Ō@@R@ŋX@@X@@ภ$Somelʇlʋ@䪠డ{2manifest_structure#Siglʍlʣ@@@@@Y@@@@Y @@@Y@@@Y@@Y@@@Y@  @@@Y@@@Y@@Y@@Y@@Y@@)(@@@&@@P@ŭ@65@@P@Ū4%@@P@Ŭ@@P@ū@P@ũ@@P@Ũ@$@@P@ŧ#@@P@Ŧ@P@ť@P@Ť@P@ţ0FEEFFFFF@$sm@n@_@@@@ఐ #envYlʤZlʧ@ @@ @@ఐ1name_comment_listflʨglʹ@)@@rq@@Q@àpa@@Q@@@Q@@Q@@@Q@Q@Q@4@@ఐ!tlʺlʻ@>@@o@@Q@Q@Q@H@@lʌlʼ@@4'@@P@šP@Q@ſR@@ @@P@U@@Alʽ@@4645@@O@u@@O@tO@@40&ty_locʿʿ@ຠ(loc_implʿʿ@ภ$Someʿʿ@}ఐӠ#locʿʿ@@@@@P@P@P@P@G@@ @@ @@P@P@N@)loc_interʿʿ@ภ$Noneʿʿ@@@@@@P@@@P@P@ h@@@ʿʿ@@4@@O@O@p@4|'ty_code  !  (@డ79C]C^@6@@@6@@O@&O@#O@@@O@@O@@@డ!)keep_code+Odoc_global3Cs@@@T@@P@!P@$P@"@@( @@ @ภ$SomeDy˒Ey˖@ఐm2get_string_of_filePy˘Qy˪@@@@@@O@3@}@@O@2|@@O@1@O@0@O@/@@ఐ A)loc_startjy˫ky˴@@@@@P@?P@AP@@@@ఐ'new_end~y˵y˼@V@@@@P@>P@CP@B@@y˗y˽@@5@@O@O@-O@EP@=@@Q @@5  @@O@O@,@ภ$None@@@@O@K@+A@@@@@~ǒ'@@@@dv@@@ࠠ+maybe_more2 Π=T=_@@@@@@hN@M0@@@@@@ࠠ.info_after_opt Ϡ=a=o@@@@@@j@@@iN@N@@=S=p@@#@@Q@డ2just_after_special%My_irṡs̟@@'@@@@&@@@%@@@$/@@@@@@@@@@@@@ @@@@@@@N@Z@?@@N@Y>@@N@V=H@@N@X@@N@W@N@U@N@T@N@S_@@డOQ.̴̠/̵̠@N@@@Nm@@O@lO@zO@o@@O@p@O@nz@@ఐ)file_nameH̠̾@R@@i@@P@uP@xP@v@@% @@@@ఐ|2get_string_of_file_̿`̿@@@@@@O@ƀ@@@O@@@O@~@O@}@O@|@@ఐ'new_endy̿z̿@Q@@@@P@ƌP@ƎP@ƍ@@ఐ ࠐ*pos_limit2̿̿@ #@@ @@̿̿@@@@O@kO@ƑP@Ɗ@@ @@N@g@@=O @@ఐ!t"#@@@6@@@ƕ0@@@@@@@@'ty_info$+@6డC+merge_infos#Sig/>@@>=<@@@Y8@@@Y7@;:9@@@Y6@@@Y5876@@@Y4@@@Y3@@Y2@@Y1@5@2 @@@[@@O@Ƨ@@O@Ʀ@W@@O@ƥ@@O@ƤS@@O@ƣ@@O@Ƣ@O@ơ@O@ƠR@@ఐ!t?@@J@@7@@P@ƾ@ƻf@'ty_infoAH@6@@S@@P@ƹ@@P@ƸP@ƿP@Ƽx@@ఐc.info_after_opt2I3W@@@a@@P@Ʒ@@P@ƶP@P@@@x@@7&7#@@O@ƞ@@O@ƝO@O@ƴ@@@Ҿ@@M@N@@@ࠠ+maybe_more3 Р_Zq`Z|@@@ L@L@0a``aaaaa@@@@ࠠ$eles ѠnZ~oZ͂@@@ >L@@L@@@uZpvZ̓@@ @@@ఐ !fZ͆Z͇@ 1@@  /@@N@@ z@ u@ p d b@N@@N@@N@@N@@N@1@ ภqo@o@ C@@O@;@@డrTVZ͔Z͕@S@@@DŽ@@O@@S@@O@R@@O@@O@@O@V@@ఐ d*maybe_moreZ͉Z͓@ @@Ǡ@@P@P@P@j@@ఐ+maybe_more2Z͖Z͡@)@@~@@P@P@P@~@@Z͈Z͢@@ @@డŚŜZͬZͭ@ř@@@@@O@@ř@@O@Ř@@O@@O@@O@@@ఐE'new_end Zͤ Zͫ@@@@@P@P@P@@@ఐd+maybe_more2 Zͮ!Z͹@o@@@@P@P@P@@@+Zͣ,Zͺ@@@@ఐ ࠐ!q7Zͻ8Zͼ@ ð@@@@@@N@@@>Zl@@ఐꠐ+maybe_more3IJ@@@]@@0IHHIIIII@@@c@@@డ"!@]^@@@@+M@ @@M@"@@@M@! @@M@@M@@M@$@@ఐ ,ele_comments|}@o@@!@@N@.N@1N@/9@@ภK@⇠ภ,Element_type@9Lఐ!t@ݰ@@9X@@N@=N@?N@>]@@@@tN@<b@ఐJ$eles@i@@Jm@@ @@^@@N@-N@7v@@I@@L@L@,{@@C@@l @M@B@H@@j@'I@@k@4J@@@%K@@@L@@ @M@@ @N@@  w@ O@@  @ P@@  @ Q@@ o@ R@@ #@ 9S@@ h@ |T@@ @ U@@ @ V@@ .@ BW@@ L@L@ r@@A]@@ L@ @@A `A@L@L@0@ @@@@AfA@L@L@0@@@@@A,lA@@+L@@L@H0@*@@@s@L@L@@@Az@w@@@K@@J0@@@@@@@@ࠠ*maybe_more Ҡ+5@@@ƴ@@@|L@S@ࠠ$eles Ӡ%7&;@@@(@@@~@@@}L@T@@2*3<@@@@W@ఐ@!fA?B@@@@@@@L@e@@L@d@@@L@^@@@L@c@٠2@@L@b@@L@ab@@L@`@@L@_@L@]@L@\@L@[@L@Z@L@Y@gภC'ภwIxM@@@@N@@M@ȃM@ȇ,@@@@@M@Ȉ0@@@NO@@uM@ȊM@ȉ=@@ఐ$Q#locPS@$1@@$MN@(Location)loc_startTf@9 @@@@M@Ȑ@ȍ\@&Lexing(pos_cnumgv@@@U@@M@ȁM@ȑM@ȏl@@ఐ12name_typedecl_listwΉ@@@P@@M@Ȁ@@M@M@ȔM@Ȓ@@@@L@{@@&@@ఐР*maybe_more΍Κ΍Τ@@@@@#J@ț0@@@@@@ఐL,extended_env΍Φ΍β@Y@@L@ఐࠐ$eles΍δ΍θ@@@J@Ȝ@@ ΍Ι ΍ι@@%` @K@Ȟ%@8@@@ @@@ @@t@ @@#J@ȚJ@h@Ġ)Parsetree+Pstr_typext&λ'λ@8+Pstr_typext$@v.type_extension@@@:L@AD@O@A=?=^@@@{Xࠠ%tyext m<λ=λ@@@@@@0=<<=====@$C@@@@@@@$@@$@@@ࠠ(tt_tyext ԠN%3O%;@@@C@@@L@Ƞ0RQQRRRRR@$Y!@@k@@@ఐ*%tyextf>Pg>U@@@@@@M@Ȧ@ȣ0ihhiiiii@@@@)Parsetree3ptyext_constructorsu>Vv>s@,3ptyext_constructorsN@@@91mm5extension_constructor@@@9-@@@9,@B,+ptyext_path#lock!t@@@9%@@@9$@@@A8+T T9+T T+@@,-ptyext_params"m@@@9((variance@@@9* +injectivity@@@9+@@9)@@9'@@@9&@A/@AX,T,T1Y,T,Tl@@B,.ptyext_privateB,private_flag@@@9.@C:@Ac.TTd.TT@@ ,*ptyext_locM!t@@@9/@DF@Ao/TTp/TT@@,1ptyext_attributesYn@@@90@EO@Ax0TTy0TU@@@A|-TmTr}-TmT@@#Ұxh@@ba@@@ȥ@@@Ȥw@Ġyχyω@@@@@ut@@O@Ȯ@@O@ȭ@@@@ภyϔyϙ@@@@@@M@@yύ@@L@Ƚ@Ġ ϚϬϚϮ@ ࠠ#ext ՠϚϨϚϫ@@@@@@ȶ@@#Ϛϯ$Ϛϰ@@@@O@ȸ@@O@ȷ@@@ @@@@O@Ⱥ@@O@ȹ@@@@డ0search_extension0Typedtree_searchBC@@;8토.@@@Š2@@@@@@@h@@@@@@@@@@@ԇ@l@@@.@@M@ɠ@@M@@@M@@~@@M@@@M@@M@@M@0nmmnnnnn@_Y@Z@@@@@ఐ%̠%table@%@@%@@ఐx#ext@@@@@O@@'@)Parsetree)pext_name@,)pext_name$@@@97#loc@@@93@@@92@@,)pext_kind:extension_constructor_kind@@@94@A@A\:UU]:UV@@,(pext_loc!t@@@95@B@Ah;VVi;VV@@,/pext_attributes'g@@@96@C@Aq<VV!r<VV=@@@Au9UUv9UU@@ְE6@@0@@N@N@N@@@N@o@#txt@аW@@N@w@@@@x@Ġ)Not_found3<@o@@@@B@@P@@@డ%raise@R@W@E@@@E@@N@L@N@@N@@@ภ'Failure@Y@`@&డ extension_not_found_in_typedtree-Odoc_messages&a}'aЫ@@@@@p h@@@p @@p @99~999~9@@@@@@@O@u@@O@@O@@@డ$Name&concatMЬNЬ@ڰ@@@@@P@#@@@P@"@@P@!@P@ @P@@@ఐ',3current_module_namegЬhЬ@'@@'(@@ఐ^#extxЬyЬ@@@@@R@@@= @)Parsetree)pext_nameЬЬ@@@@@Q@IQ@?@@Q@>@#txtЬЬ@À!@@ Q@A'@@ЬЬ@@@@P@1-@@a|Ь@@@@O@O@QP@7@@@XЬ@@@@O@ O@?@@@@@@@ϴ @@dL@D@@A>J @@hb@@%/@@@ࠠ'new_env ֠!(@@@L@00@s{@|@@@@డ$List)fold_left+7+E@@@@@L@5@f@@L@VL@7 @L@9@L@8@ @ @@L@6@L@4@L@3@L@20@(@@@@@'acc_env נFYF`@@@"@@@E ڠঠ)Parsetree)pext_nameFiF|@qঠ#txtFсFф@ࠠ$name ؠ#Fч$Fы@@@z@@@c0$##$$$$$@a4L@+@=@@@@@.F/Fэ@@@@O@gO@e@@O@d@@@:Fh;Fю@@XO@S@@@ࠠ-complete_name ٠HђѦIђѳ@@@@@@ʅN@q0KJJKKKKK@(3-@.@d @@@డ$Name&concat`ђѶaђ@@@@@@N@w@@@N@v@@N@u@N@t@N@s @@ఐ(?3current_module_namezђ{ђ@("@@(;-@@ఐd$nameђђ@7@@@@O@ʐO@ʏ?@@0@@C@@@ђѢ @@డ-add_extension(Odoc_env@@G@@@Z@S!t@@@ZR@@@Z@@Z@@Z@\ll\l@@TD@@@\@@M@ʛ@@@M@ʚd@@M@ʙ@M@ʘ@M@ʗ0@t{@|@!@@@@ఐ֠'acc_env@@@@@ఐ-complete_name@@@1@@N@ʫ!@@G@@L@ʥ$@W @@L@p@@AFd @@@ @M@ʷM@ʶ0@@@@@AFT,@@@@@M@H@M@GM@ʹ1@@ఐ(נ#env-;->@(@@1@@ఐנ%tyext?M?R@@@@@M@ʿ@ʼ*@)Parsetree3ptyext_constructors!?S"?p@@@ǠG@@M@FM@M@ʽ;@@T @@Md@@. @@@ࠠ)loc_start ۠9~Ҍ:~ҕ@@@@@@L@0<;;<<<<<@y|@}@U@@@ఐ)#locP~ҘQ~қ@(@@(@(Location)loc_startY~ҜZ~Ү@ @@@@L@@ @&Lexing(pos_cnumg~үh~Ҿ@@@,)@@k~҈@@@ࠠ'loc_end ܠvw@@@@@@L@0yxxyyyyy@>KE@F@"@@@ఐ)@#loc@) @@)<@(Location'loc_end@ @@@@L@@ @&Lexing(pos_cnum@@@,)@@@@@ࠠ&new_te ݠ@@@=@@@L@0@>KE@F@#@@@='te_info(6(=@ఐ)Z+comment_opt(@(K@);@@)V@= ,te_type_nameM[Mg@డ.full_type_name(Odoc_envjzjӑ@@@@@Z@!t@@@Z!t@@@Z@@Z@@Z@qq@@N@@@@@M@@@@M@@@M@@M@@M@U@@ఐU'new_envjӒjә@ٰ@@Ub@@డ$Name)from_path,jӛ-jө@H@@@H@@N@@@N@@N@|@@ఐ(tt_tyextCjӪDjӲ@z@@8@@O@@@*tyext_pathOjӳPjӽ@@@m@@O@ O@O@@@ZjӚ[jӾ@@@@N@ @@x@@h@@M@@=2te_type_parametersij@డ:$List#mapwx@@@@@@@M@ZM@>@@M@e@@M@f@M@dM@?@M@@M@.=@@M@'M@kM@TM@,@M@/@%@@M@-@@M@+@M@*@M@)0@@@@@@ ߠࠠ$ctyp ޠ@@@:@@ @@9@@ @@E@@P@A!@@డ*subst_type(Odoc_env!@@@@~@@N@J@@@N@I@@N@H@N@G@N@F0@+1e@,@%@@@@ఐ.'new_env")@@@.@@ఐH$ctyp*.@@@ @)ctyp_type / 8@/ @@@@O@UO@[O@Y.@@? @@M@D1@@A9@@@@N@;N@^b@@ఐ۠(tt_tyext);*C@`@@@@N@g@`@,tyext_params5D6P@꿰@@@@N@:N@hN@a@@ @@>m@@M@&M@jM@9@>a*te_privateOR`PRj@ఐ (tt_tyextZRm[Ru@@@O@@M@v@t@-tyext_privatefRvgRԃ@ΰ@@>@@M@wM@u@>ɡ/te_constructorstԅԓuԅԢ@ภꬰ{ԅԥ|ԅԧ@@@@KK@@M@˃@@M@˂M@ˉ@>&te_locԩԷԩԽ@ຠo(loc_implԩԩ@ภ$Someԩԩ@Xఐ+]#locԩԩ@+=@@+Y@@@@h@@N@˖N@˝ @|)loc_interԩԩ@ภ$Noneԩԩ@@@@@@N@˪@@N@˩N@˰&@@@ԩԩ@@>@@M@ˎM@˳.@>ס'te_code@డ  ,-@@@@@@M@M@M@˾@@M@˿@M@˽P@@డ)keep_code+Odoc_globalB@@@&@@N@N@N@g@@( @@ h@ภ$SomeH\H`@Πఐ?2get_string_of_file"Hb#Ht@@@@R@@M@@O@@M@N@@M@@M@@M@@@ఐ)loc_start<Hu=H~@@@n@@N@N@N@@@ఐڠ'loc_endPHQHՆ@@@z@@N@N@N@@@[Ha\HՇ@@?]@@M@˻M@M@N@@@Q @@?g @@M@˺M@@ภ$Nonet՟ճu՟շ@@@@M@@z{ո@@@@@}&~@@@@ @@Aࠠ>analyse_extension_constructors @@@@ø@@@ЃL@@ƠL@@@ЊL@Ѕ@@@ЇL@@&\@@@εL@@@@ЌL@"L@L@@@@$L@@@@@@@@L@0@ @ @$@@@@*maybe_more ᠰ"@@@?0@J@F@A@6+)@@@@@@@@M@@Q@&@@@@@(exts_acc ⠰#+@@@WL@ЉL@0@".c@%@'@@@@@+tt_ext_list 㠰,7@@@_L@ L@0@&@@(@@@@ఐ+tt_ext_list:N:Y@@@&)@@0@#@@@ĠS"_q#_s@R@@@@$0      @@@@@%@@ఐh*maybe_more0_x1_ւ@@@@@డ$List#rev@_քA_֌@@!a@1 @@@1[@@@1Z@@1Y@Z  Z  @@K@@@@@M@@@M@@M@<@@ఐ(exts_acck_֍l_֕@f@@I@@/@@J@@p_wq_֖@@L@L@Q@Ġy~ְֲ֗֗@wࠠ&tt_ext ֗֩֗֯@@@s@ࠠ!q ֳִ֗֗@@@@@@@@@@@@@@@@ࠠ-complete_name  ָ ָ@@@@@@>N@*0@+@&@*#@@+@@@డ[$Name&concat ָ ָ@K@@@@@N@0@@@N@/@@N@.@N@-@N@,#@@ఐ-3current_module_name ָ ָ@-@@-0@@ఐb&tt_ext ָ ָ@=@@CA@(ext_name ָ ָ@I @@HH@@O@UO@K@@O@JQ@#txt ָ ָ@@@ O@MY@@G@@]Z@@ ָ@@@ࠠ+ext_loc_end  / :@@@\@@@cN@[0@o|v@w@-,@@@ఐ&tt_ext* >+ D@~@@@'ext_loc1 E2 L@c @@@@O@b@_ @(Location'loc_end? M@ ]@@@@@N@d@a.@&Lexing(pos_cnumM ^N m@&@@:7@@Q +@@@ࠠ&new_xt \ q׉] q׏@@@N@@@̬N@e0_^^_____@LYS@T@x-@@@ఐ점&tt_exts ג׮t ג״@ǰ@@0qppqqqqq@@@@(ext_kind{ ג׵| ג׽@츰 @@@@@h @Ġ)Text_decl  @8)Text_decl@@@@#loc@@@@@@@@@ 5constructor_arguments@@@,@@@@@@@C@@B@ATTTUF@@@@  @@('%@@Q@u@@Q@t@@Q@s0@b@@@ࠠ$args   @@@.@@@v@ࠠ(ret_type   @@@5`@@@x@@@w@@@[ @@ @@Q@y$@@$@@@ࠠ'xt_args "@@@zy@@@̟P@̉0@60@1@/+%@&@0@@@డɊ-get_cstr_args#Sig%A%R@@Ǭǫ@@@Y0@Ǫ@@@Y/@ǩǦ@@@Y.+@@@Y-@@Y,@@Y+@@Y*@Ǣ@ǟ@@@@@P@̑@Ǿ@@P@̐@@@P@̏>@@P@̎@P@̍@P@̌@P@̋=@@ఐ'new_envD%SE%Z@@@J@@ఐ@+ext_loc_endQ%[R%f@@@@@Q@̡Q@̥Q@̤^@@ఐ$argse%gf%k@g@@L@@Q@̠Q@̧Q@̦r@@` @@ws@@q @@:'xt_name{؍ث|؍ز@ఐ᠐-complete_name؍ص؍@k@@@@P@̱0@@@1@@@:('xt_argsAఐ @@:7@@P@̽P@̿P@̾@:/&xt_ret @డz&Option#map2<@@@!a@.!b@.@@.@ߠ@@@.@@@.@@.@@.@oo@@I @@@@\@@P@P@:k@@P@P@P@P@@P@@#@@P@"@@P@@P@@P@0@i@@@@@$ctyp BF@@@)@@డ*subst_type(Odoc_envJ]@@@@¹@@Q@@@@Q@@@Q@@Q@@Q@0@)H@ @42@@@@ఐi'new_env.^/e@@@i@@ఐ@$ctyp=f>j@@@e @)ctyp_typeDkEt@j @@-@@R@R@R@.@@? @@oP@1@@AR=Su@@@}x@Q@Q@@@ఐ(ret_typebvc~@b@@@@Q@Q@Q@z@@ @@:@@P@P@P@@:񡠐1xt_type_extension|ـٞ}ـٯ@ఐҠ&new_teـٲـٸ@ǰ@@C@@P@P@P@@;(xt_aliasٺٺ@ภ$Noneٺٺ@@@@;;@@P@@@P@P@@; &xt_loc @ຠ(loc_impl@ภ$Some!@zఐG&tt_ext"(@"@@(@'ext_loc)0@ @@@@Q@#Q@*Q@0Q@.@@  @@ @@Q@"Q@)@)loc_inter3<@ภ$None?C@ @@@@@Q@9@@Q@8Q@?@@@E@@;f@@P@P@B@;`'xt_textHfHm@ภ$NoneHpHt@/@@@;p;o@@P@J@@P@IP@P1@@@%o؋&vړ@@N@̈@@@-@Ġ+Text_rebind4ڔڮ5ڔڹ@8+Text_rebind@!t@@@.#loc!t@@@@@@@BA@B@AvUGUIwUGUr@@@ࠠ$path XڔںYڔھ@@@"@@@̀@@aڔbڔ@@#!@@Q@̂@@Q@́@@@7kڔ@@@@Q@̃@@@@<'xt_namexy @ఐޠ-complete_name @h@@@@P@Z0@$5/@0@3@@@<%'xt_args9@@ภ*Cstr_tupleCM@8*Cstr_tupleF0constructor_args@@@K@FnFi)type_expr@@@J@@@I@AA@B@AFaFaB@@@FLภNP@@@@@@P@n@@P@mP@t>@@- @@<_@@P@fP@lD@/ސ@ٰ@@o@@O@)O@+O@*1@@ఐ栐*pos_limit2Q/ސR/ސ@;@@>@@2@@B?@@V/ސަ@@@ࠠ*maybe_more d0e0@@@ˏ@@@JN@/0gffggggg@Wd^@_@6@@@ࠠ+comment_opt w0x0 @@@˝@@@L@@@KN@0@@00@@"@@3@డX2just_after_special%My_ir00*@@@@@@N@<@@@N@;@@N@8ˠ@@N@:@@N@9@N@7@N@6@N@5E@@డݠ߰0+0,@ܰ@@@ܠ@@O@NO@\O@Q@@O@R@O@P`@@ఐ4)file_name05@@@@@P@WP@ZP@Xt@@% @@u@@ఐݠ!s0607@@@@@O@MO@^O@]@@` @@rN@I@@0@@ఐ&new_xt1;S1;Y@@@UT@@@b0@@@ 7@@"8@@@'xt_text1;Z1;a@?mఐ+comment_opt1;e 1;p@@@?y?x@@O@k@@O@jO@nO@l"@)@@@@M@rN@p(@ఐ>analyse_extension_constructors<2rߊ=2rߨ@m@@@@@@M@w@M@v@M@u@M@t>@@ఐ*maybe_moreS2rߩT2r߳@G@@K@@ภ]2r߼^2r߾@Vఐ &new_xtg2rߵh2r߻@@@_@ఐ(exts_accr2r߿s2r@m@@j@@v2rߴw2r@@L@Јo@@ఐ!q2r2r@ְ@@|@@L@@L@Ђ@@@@@@ @7@@w@ @@@/ @@+@? @@w@ @@ L@)@@A:H@@#L@ r@@AA@L@L@0@@@@@AA@ L@L@0@@@@@AA@@  @@0@@@@@$@@@ࠠ*maybe_more 44@@@@@@L@@ࠠ$exts 44@@@ V@@@@@@L@ @@44@@@@ @ఐ V>analyse_extension_constructors44@ @@@ @@L@@V:@@L@@@L@@t@@L@@@L@ H@@L@@L@@L@@L@@L@ 4@@@ 4 4@@UM@M@ A@@ภI44 @H@@@JS@@M@M@$ R@@ఐߠ(tt_tyext-4!.4)@d@@"@@M@)@& f@2tyext_constructors94*:4<@@@@@M@@@M@M@*M@' x@@g@@vL@ {@@K4@@ఐ &new_teW5@NX5@T@ @@I@@@/0XWWXXXXX@ @@r9@@t:@@@/te_constructorsh5@Ui5@d@Iఐ$extsq5@hr5@l@@@VV@@M@8@@M@7M@;M@9"@)@@@@K@?L@=(@ఐ٠*maybe_more6n}6n@1@@5YJ@D7@ఐנ'new_env6n6n@ [@@B@ภذ6n6nAภ6Element_type_extension 6n@Jeఐ &new_te6n6n@ @@Jq@@K@OK@QK@Pc@@ @@5oJ@MK@Nh@ภ6n&A@'A@NJ@F@@K@JK@Vw@@6n1@@@@K@I}@@6n|6n@@N @K@W@@@@@@ @= @@ '@ f @@  +@ ? @@  i@ } @@  @  @@  @0@@5J@CJ@ȟ@Ġ)Parsetree.Pstr_exception88@8.Pstr_exception5@J.type_exception@@@:M@AE@O@Axzx@@@OYࠠ#ext n88@@@@@@0@6@@@@@@@6@@6@@@ࠠ$name "9#9@@@~@@@`@@@_L@Y0)(()))))@60$@@B;@@@ఐ-#ext=9>9@@@C@@M@^@\@)Parsetree2ptyexn_constructorK9L9@,2ptyexn_constructorP@@@9;@@@98@@ ,*ptyexn_loc .!t@@@99@A @ABVVBVV@@,1ptyexn_attributes@@@9:@B@A CVV CVV@@@AAVVAVV@@ڰ3$@@@@L@a@]G@)Parsetree)pext_name{9|9'@۰A@@WP@@9@@@ࠠ-complete_name ;Vd;Vq@@@@@@vL@b0@evp@q@<@@@డ?$Name&concat;Vt;V@/@@@@@L@h@@@L@g@@L@f@L@e@L@d @@ఐ73current_module_name;V;V@7d@@7}-@@ఐ$name;V;V@9@@'#@@M@ҋM@҂@@M@ҁE@#txt;V;V@Ű@@ M@҃M@@>@@QN@@;V`@@@ࠠ&tt_ext ==@@@Y@@@ҥL@ґ0@dqk@l@ =@@@డu0search_exception0Typedtree_search> >+@@K@@@@̠}@@@@@@@@@@.@@@@@@@@X@=@@@@@@L@Ҙ@@L@ҙ@@L@җ@5@@L@ҖD@@L@ҕ@L@Ҕ@L@ғC@@ఐ7%tableB>,C>1@7S@@7P@@ఐ/$nameQ>2R>6@@@^@@M@ҦM@M@ҿ@@M@Ҿj@#txtc>7d>:@M@@M@r@@a@@ws@Ġ)Not_foundp?;Lq?;U@@@@@@@O@@@డD%raise@Yg@Yl@°@@@@@M@L@M@@M@@@ภ'Failure@Yn@Yu@ãడu exception_not_found_in_typedtree-Odoc_messages@Yw@Y@@2@@@p@@@p@@p @u:99v:99@@t@@@?@@N@@@N@@N@@@ఐ;-complete_name@Y@Y@а@@@@O@@@@Yv@Y@@@@N@N@O@@@@Ym@Y@@@@N@N@@@_@@U@@> @@@@= @@@ࠠ'new_env BB@@@˕@@@L@0@@ @>@@@డ-add_extension(Odoc_envBB@f@@@˭@@L@@f@@L@˵@@L@@L@@L@ @@ఐ8#envBB@8۰@@A-@@ఐ-complete_name+B,B@6@@~@@M@=@@.@@A>@@3B@@@ࠠ'new_ext >C?C@@@J@@@jL@0A@@AAAAA@S`Z@[@Z?@@@ఐk&tt_extWD1XD7@c@@<@@N@@0ZYYZZZZZ@@@@)Typedtree1tyexn_constructorfD8gDS@@@@@M@@@(ext_kindrDTsD\@@@@@@@Ġ)Text_declEbpEby@ @EbzEb{@@   @@O@%@@O@$@@O@#0@N@@@ࠠ'tt_args Eb}Eb@@@ @@@&@ࠠ+tt_ret_type EbEb@@@ .@@@(@@@'@@@2Eb@@@@O@)$@@$@@@ࠠ)loc_start FF@@@ @@@>N@90@5/@0@A*$@%@B@@@ఐ9#locFF@9o@@9@(Location)loc_startFF@w @@D@@N@?@<#@&Lexing(pos_cnumFF@@@@/,@@F@@@ࠠ'loc_end GG@@@M@@@EN@@0@ANH@I@C@@@ఐ9̠#locGG@9@@9@(Location'loc_end"G#G@ @@@@N@F@C @&Lexing(pos_cnum0G1G#@}@@,)@@4G@@@ࠠ'ex_args ?H';@H'B@@@ K@@@]N@G0BAABBBBB@>KE@F@[D@@@డ-get_cstr_args#SigWIEWXIEh@ G@@@ G@@N@O@@@N@N@ F@@N@M p@@N@L@N@K@N@J@N@I%@@ఐ:I#envvIEiwIEl@:3@@C82@@ఐ'loc_endIEmIEt@<@@@@O@_O@cO@bF@@ఐ'tt_argsIEuIE|@̰@@ ~@@O@^O@eO@dZ@@K @@^[@@H'7 @@K񡠐'ex_nameKK@ఐ,-complete_nameKK@@@ @@N@o0@v}@~@E@@@K'ex_infoLL@ఐ:X+comment_optLL@:9@@:T@K'ex_argsMMAఐ @"@L@@N@ӅN@ӇN@ӆ+@L&ex_retNN@డ&Option#mapO2O<@ D@@@@@@N@ӿN@ӖL@@N@ӏN@N@ӸN@Ӕ@N@ӗ@ J@@N@ӕ I@@N@ӓ@N@Ӓ@N@ӑ0@^@@@@@$ctyp (P=X)P=\@@@)@@డ%*subst_type(Odoc_env7P=`8P=s@#@@@@@O@Ӯ@#@@O@ӭ@@O@Ӭ@O@ӫ@O@Ӫ0BAABBBBB@)H@ @[F@@@@ఐi'new_envUP=tVP={@@@@@P@ӺP@ӼP@ӻ@@ఐG$ctypkP=|lP=@$@@l'@)ctyp_typerP=sP=@٘ @@[@@P@ӹP@P@Ӿ5@@F @@vN@Ө8@@AP=SP=@@@@O@ӣO@@@ఐ砐+tt_ret_typeQQ@ð@@ Ϡ@@O@ӢO@O@@@ @@L@@N@ӎN@N@ӡ@L(ex_aliasRR@ภ$NoneRR@@@@LL@@N@@@N@N@@L&ex_locSS@ຠ(loc_implSS@ภ$SomeSS@ఐ;#locSS@;t@@;@@@@*@@O@O@@)loc_interSS@ภ$NoneSS@@@@à@@O@@@O@O@@@@SS@@L@@N@N@@L'ex_codeT-T4@డ@BVMf VMg@?@@@?@@N@N@N@ @@N@ @N@ @@డ*)keep_code+Odoc_global<VM|@(@@]@@O@O@O@,@@( @@ -@ภ$SomeMWNW@ఐv2get_string_of_fileYWZW@@@@։@@N@$@ֆ@@N@#օ@@N@"@N@!@N@ O@@ఐ)loc_startsWtW@i@@֥@@O@0O@2O@1c@@ఐ'loc_endWW@@@@ֱ@@O@/O@4O@3w@@WW@@M}@@N@ N@N@6O@.@@Q @@M @@N@N@@ภ$NoneYY@@@@N@<@U7KZ@@@@@J['@@uL@8@@@r@@@@@@@Ġ+Text_rebind\(6\(A@ ࠠ'tt_path \(B\(I@@@ @@@0u@@\(K\(L@@  @@O@2@@O@1@@@\(M@@@@O@3@@@@N2'ex_name^cu^c|@ఐm-complete_name^c^c@@@J@@N@F0@5/@0@G@@@N>'ex_info__@ఐ<+comment_opt__@@NT&ex_retAaBa@ภ$NoneIaJa@`@@@NdNc@@N@r@@N@qN@xX@N[(ex_alias[b\b!@ภ$Somecc$8dc$<@ຠ,'ea_nameNk@@@N!t@@@@@ ,%ea_ex NN@@@@@@AA @ANVNV@@ND@ANUNU@@NC'ea_namec$?c$F@డΈ?full_extension_constructor_name(Odoc_envdIfdI@ W@@@C@@O@ԕ@ W@@O@Ԕ T@@O@ԓ@O@Ԓ@O@ԑ@@ఐ=#envee@=q@@Fv@@డc$Name)from_pathee@@@@@@P@Ԯ@@P@ԭ@P@Ԭ@@ఐ 'tt_pathee@ް@@@@Q@ԹQ@ԽQ@Լ@@ee@@8@@P@Ը@@R@@ @@O@ԣ@{%ea_exff@ภ$Noneff@@@@O\@@O@@@O@O@ @@@ c$= f@@O@@N@ԀN@ԇN@@@ @@O @@N@N@Ԇ@O&ex_loc g  !g@ຠ(loc_impl +g ,g @ภ$Some 3g# 4g'@ఐ=#loc =g( >g+@=а@@=C@@@@,@@O@O@J@)loc_inter Mg. Ng7@ภ$None Ug: Vg>@l@@@@@O@@@O@O@d@@@ bg cg@@@OY@@N@N@l@OS'ex_code ohCU phC\@ภ$None whC_ xhCc@@@@OcOb@@N@ @@N@ N@@@@ ]Qa ifw@@GL@AL@=@@A D+@@KF@@ C @@@ k k@@=^J@Վ0        @Ta[@\@ @@@@ఐ'new_env k k@_@@2:J@Տ@ภ k kAภ1Element_exception  k@Pɠఐ'new_ext k k@(@@P@@K@՚K@՜K@՛2@@ @@=zJ@՘K@ՙ7@ภ k&A@'A@ YJ@Ց@@K@ՕK@աF@@ k1@@@@K@ՔL@@ k k@@TD @K@բT@a@@@@@@ @@@ @@ _@s @@=J@ՍJ@X@Ġ)Parsetree+Pstr_module m m@8+Pstr_module=@R.module_binding@@@:N@AF@O@A@@@WZঠ)Parsetree(pmb_name m m@,(pmb_name@@@:g}#locsl@@@:c@@@:b@@@:a@@,(pmb_exprGi@@@:d@A@A6;6Q@@h,.pmb_attributes@@@:e@B@ARWRr@@i,'pmb_loc'!t@@@:f@C@Asxs@@j@A5@@gঠ#txt ]m ^m@GĠ$None em fm@|@@@@@?@@M@7@@M@6Y@@@ pm qm@@OON@@M@=@@M@r@@>r@@@ n  n @@>XJ@ը}@ఐ?n#env n  n@?X@@H]@ภհ n n@@@@Ԡ>VJ@ժ@@K@լ@@ n  n@@>VJ@էJ@գ@Ġ)Parsetree+Pstr_module p p4@ঠ)Parsetree(pmb_name p6 pH@ঠ#txt pJ pM@Ġ$Some pN pR@ࠠ$name o pS pW@@@@@@`0        @>@@@@@@@Ƞ@@M@b@@M@a @@@ pI pX@@ננ@@M@h@@M@gM@d@@M@c@B(pmb_expr pZ pb@ࠠ+module_expr p pc pn@@@HL@@@r-@@@ p5 po@@@@M@tM@s5@@@d@@?6@@?6@@@ࠠ.tt_module_expr  0t 1t@@@H`@@@L@կ0 3 2 2 3 3 3 3 3@?;WQ@R@ MH,&@'@ OI@@@డ-search_module0Typedtree_search Kt Lt@@DAH@@@;@@@@@@@@@@H@@@@@@@@@]@@@H@@L@ն@@L@շ@@L@յ@@@L@մH@@L@ճ@L@ղ@L@ձD@@ఐ?Ѡ%table t t@?@@?Q@@ఐ$name t t@Z@@@@M@M@M@e@@S @@if@@ t @@@ࠠ.new_module_pre  u u%@@@HJ@J@J@J@J@J@-J@.J@J@ظJ@؅J@|J@wJ@0        @@@ J@@@ఐI.analyse_module u( u6@I"@@@I @I@I@I@I@II @L@@L@@L@@L@@L@@L@@@ఐ@#env v7H v7K@@@@I)@@ఐ@3current_module_name wL] wLp@@@@@6@@ఐ$name xq xq@Ͱ@@IJJ@D@@ఐ@+comment_opt y y@@~@@@Q@@ఐ +module_expr !z "z@@@IX^@@ఐ.tt_module_expr .{ /{@h@@I\k@@_@@IYl@@ 3u@@@ࠠ$code  >} ?}@@@g@@@3L@!@@@"L@0 G F F G G G G G@@@ `K@@@డ {} Z~  [~ @z@@@z8@@L@ L@L@@@L@@L@0 e d d e e e e e@@@@@డf)keep_code+Odoc_global x~ 1@d@@™@@M@M@M@@@) @@!@@ࠠ#loc  7L 7O@@@h!t@@@M@ L@ఐ+module_expr 7R 7]@f@@I@@M@@ ]@)Parsetree(pmod_loc 7^ 7p@,(pmod_locI@@@:1$@@@:/@A,)pmod_desc 0module_expr_desc@@@:.@@@Ade@@ H,/pmod_attributesc@@@:0@B@Amn/@@J@Aqr @@I2#@@A@@ 7H%@@@ࠠ"st  t t@@@*@@@M@0        @`Z@[@ M@@@ఐi#loc t t@@@‰@@N@@@(Location)loc_start t t@–@@c@@M@@%@&Lexing(pos_cnum t t@_@@1.@@ t@@@ࠠ"en  ! "@@@l@@@M@0 $ # # $ $ $ $ $@CPJ@K@ =N@@@ఐ#loc 8 9@Q@@@@N@@@(Location'loc_end F G@ð@@¥@@M@@%@&Lexing(pos_cnum T U@¡@@1.@@ X@@ภ$Some _  `@ఐֈ2get_string_of_file k l#@*@@@ܛ@@L@)@ܘ@@L@(ܗ@@L@'@L@&@L@%0 v u u v v v v v@S`Z@[@ O@@@@ఐ"st $ &@`@@ܻ@@M@5M@7M@6@@ఐ|"en ' )@"@@@@M@4M@9M@8,@@  *@@b/@@L@@ h@@@#4@X@@@@@@ @@f@ภ$None ?P ?T@@@@L@>r@ ~ @@t@@ }@@@ࠠ*new_module  ev e@@@c@@@~L@?0        @@@ L@@@,bՐb@@L@PL@Nbѐc@@L@TL@RbϐbРb@@L@Z@@L@YL@Vbɐb@@L@^L@\bĐb@@L@bL@`cc@@L@fL@dbƐb@@L@jL@hbb b@@L@p@@L@oL@lb&m_code!"@ఐ점$code*+@V@@bϠb@@M@I@@M@HM@LM@Jd@bʐbˠb@@L@y@@L@xL@ubƐb@@L@}L@{@ఐ.new_module_preRS@@@@VW@@@@Yer@@@ࠠ'new_env de@@@ @@@֏L@0gffggggg@@@P@@@డj*add_module(Odoc_env|}@@%@@@Z@1!t@@@Z0@@@Z@@Z@@Z@c_d_@@2G@@@:@@L@օ@@@L@քB@@L@փ@L@ւ@L@ց5@@ఐC~#env@Ch@@LmB@@ఐ*new_module@N@@d@@M@֘@֖V@&m_name @c@@c@@M@֗`@@Q@@da@@@@@ࠠ(new_env2 !)@@@ւ@@@L@֡0@v}@~@Q@@@ఐ$*new_module,A,K@@@d@@M@֦@֤0@@@@&m_type,L,R@c@@d@@@֥ @Ġ%Types-Mty_signature@c/ࠠ!s @@@d@@@֫&@@@@@d@@O@֬*@@*@@డ-add_signature(Odoc_env./@@@@@Z@&stringO@@@Z#rel&optionJ@@@Z@@@Z@1)signature@@@Z@@@Z@@Z~@@Z}@@Z|@@Z{@,[!!-[!k@@C/.@@@@@M@ּ@,@@M@ֻ)'$@@M@ֺ@@M@ֹ@#@@M@ָ@@M@ַ@M@ֶ@M@ֵ@M@ִ@M@ֳ0srrsssss@f`@a@S@@@@ఐ"'new_env@@@1@@N@N@N@@@ఐР*new_module"@0@@ey@@N@@,@&m_name#)@d@@d@@N@6@pภ) jడ ^$Name&simple*F*Q@_@@@ @@N@ @@N@@N@T@@ఐ *new_module*R*\@l@@e@@O@@h@&m_name*]*c@d߰@@ ;@@O@O@O@v@@*E*d@@ A@@N@|@@@i@@N@@@ఐꠐ!s*e*f@@@@@N@N@N@@@ @@1L@ֱ@@gxgy@@e@@O@֮"@@"@@ఐ'new_env!}"}@@@@JL@L@0@@A),;@@NI@@+ @@@34@@CJ@ 021122222@Wd^@_@KR@@@ఐj(new_env2CD@ @@8J@ @ภMNAFภ.Element_module V@`ఐ*new_module_`@@@f>@@K@K@K@2@@ @@DJ@K@7@ภs&A@'A@J@@@K@K@F@@~1@@@@K@L@@@@TD @K@T@a@@@@@!@5 @@@ @@ C@] @@ @ @@ Y@Ġ)Not_found@@@@@@@N@#g@@@ࠠ-complete_name   ,@@@ @@@:M@&0@y@@@డ[$Name&concat / :@K@@@ @@M@,@ @@M@+ @@M@*@M@)@M@(@@ఐE3current_module_name ; N@E@@E*@@ఐ$name O S@@@ :@@N@EN@D<@@0@@@=@@  @@డ%raiseWfWk@<@@@<@@L@NDJ@ J@%L@M@L@L0@d^@_@T@@@@ภ'FailureWmWt@#డ=module_not_found_in_typedtree-Odoc_messages#Wv$W@@@@@pe@@@p@@p@<::<::@@@@@@@M@]r@@M@\@M@[4@@ఐ-complete_nameEWFW@>@@ @@N@eD@@LWuMW@@Y@@M@YM@jN@cN@@VWlWW@@@@M@SM@XV@@e@@]W@p@@\@@`qs}a@@_J@ծ@Ġ)Parsetree.Pstr_recmodulepq@8.Pstr_recmoduleEa@fr@@@:P@@@:O@AG@O@A!"D@@@[ࠠ$mods q@@@@@@y@@@x0@E@@@@@% @@F@@F@@@ࠠ'new_env IWI^@@@:PL@n0@E!@@U@@@డw$List)fold_leftama{@h@@@@:iL@s@@@L@וL@u @L@w@L@v@ @g @@L@t@L@r@L@q@L@p0@(@@@@@'acc_env ||@@@"@@@  ঠ)Parsetree(pmb_name||@ࠠ$name ||@@@ԠҠ@@@ט@@@ח@@@ז0@_2J@)@W@@@"(pmb_expr | |@ࠠ'mod_exp ||@@@OK@@@כ@@@||@@^O@ב@@ఐ6$name*+@6@7@>X@@   @@@פ@@@ף@@N@ע054455555@:M-'@(@OY@@@#txtCD@-@@N@ץ@Ġ$NoneRS@ i@@@@-,@@P@״@@P@׳0WVVWWWWW@"@@@ @@@ఐ'acc_envde @b@@L@ @Ġ$Somer  s $@ *ࠠ$name { %| )@@@R@@@׻G@@@@@ZY@@P@׽@@P@׼O@@O@@@ࠠ-complete_name -F-S@@@ @@@O@0@b& @!@Z@@@డH$Name&concat-V-a@8@@@@@O@@@@O@@@O@@O@@O@ @@ఐG3current_module_name-b-u@Gm@@G-@@ఐW$name-v-z@7@@'@@P@P@?@@0@@C@@@-B @@@ࠠ!e ~~@@@ڐ@@@O@0@Ub\@]@[@@@డ*add_module(Odoc_env~~@@@@ڨ@@O@@@@O@ڰ@@O@@O@@O@ @@ఐC'acc_env~~@@@a-@@ఐ-complete_name&~'~@7@@y@@P@=@@.@@A>@@.~@@@ࠠ*tt_mod_exp 9:@@@Pi@@@O@0<;;<<<<<@S`Z@[@U\@@@డ-search_module0Typedtree_searchS T'@@@@P@@O@ @@O@@@O@ @@@O@ P@@O@ @O@ @O@*@@ఐG%tableu(v-@G@@G7@@ఐ$name.2@@@@@P@P@3P@2K@@: @@OL@Ġ)Not_found3O3X@@@@@@@R@8Z@@డi%raise3\3a@@@@@@P@>rO@:P@=@P@<o@@ภ'Failure3c3j@Ƞడ=module_not_found_in_typedtree-Odoc_messages3l3@@@@W@@Q@M @@Q@L@Q@K@@ఐJ-complete_name33@@@0@@R@U@@3k3@@@@Q@IQ@ZR@S@@3b3@@0@@Q@CQ@H@@R@@H@@ @@@@ @@@ࠠ*new_module @@@TO@]0@@@]@@@ఐQ`.analyse_module@Qd@@@Qb@Qa@Q_@QZ@QX@QQQK@O@d@O@c@O@b@O@a@O@`@O@_@@ఐG!e./@@@<@H@@H8@@ఐϠ$nameJ=VK=Z@@@FP@zG@@ภ$NoneX[tY[x@o@@@AJ@~U@@ఐS'mod_expgyhy@,@@QP@d@@ఐ=*tt_mod_expvw@n@@QP@؀s@@g@@Qt@@}@@ఐ*new_module@@@^@@0@@@@&m_type@i@@jf@@@؄ @Ġ%Types-Mty_signature2@hƠࠠ!s 34@@@j@@@؊'@@@@@j@@Q@؋+@@+@@డڳ-add_signature(Odoc_env8Q8g@@@@n@@O@؛@@@O@ؚ@@O@ؙ@@O@ؘ@@@O@ؗ܄@@O@ؖ@O@ؕ@O@ؔ@O@ؓ@O@ؒ0@V:4@5@_@@@@ఐ !e8h8i@@@ܜ@@P@سP@صP@ش@@ఐ*new_module8j8t@~@@'@&m_name8u8{@j  @@j@@P@ط1@֐ภРడ$Name&simple'|(|@e @@@|@@P@ؿ@@P@ؾ@P@ؽO@@ఐ:*new_module>|?|@@@:^@&m_nameE|F|@j@ @@@@Q@Q@Q@l@@P|Q|@@@@P@r@@@ʠ@@P@v@@ఐ!sc|d|@@@@@P@دP@P@@@ @@>L@خL@ؐ@@xy@@kI@@Q@؍@@@@ఐ!e@C@@L@L@@@A@@L@0@@@@ @@@ @@Q@e@@@@@@@A@@>DL@ן<@@A~A@@@M@M@0@@@@@A| @@@@@M@׆@M@ׅM@@@ఐJ#env  @Jn@@Ss@@ఐ5$mods*.@@@d @@M@ׄM@M@@@ @@&@@IS @@Aࠠ!f <N<O@@@%firstT@@@ڬL@@@L@L@@2@@@L@@s @@@>L@8@@@L@~@@@ O@#@@@(L@@@@@@L@0@dnh@i@V@@@2 "<R<]A@7@@M@ 0@JFBL@@@@@>@9.@@@@@@M@@R@;`@@@@@ࠠV W 4<W@"@@VL@ٷL@ 043344444@ .]@@@@-@Qa@@@ఐ9% H<PIA@k@@@0IHHIIIII@@@@Ġ#( ࠠ  -\<XH@@}Q@@@@@Ԡ@@P@@@@@ఐ 9 @ @yc@5L@0feefffff@3@@@ĠF@@@@@P@*@@*@@ภ !h@ @"@IL@M@2@@Am@JG@@R@@(last_pos <_<g@@@L@L@(0@Yb^@_@b@@@@@1name_mod_exp_list <h<y@@@L@5L@.0@&@@d@@@@ఐ1name_mod_exp_list||@@@e@@0@#@@@Ġ @ @@@@$0@@@@@%@@ภ @ @@@L@٘L@ٕ @Ġ ְ@ Ԡঠ)Parsetree(pmb_name@ ঠ#txt@Ġ$None@@@@@ ՠ @@O@R@@O@Q0@L@@@@@@@   @@O@X@@O@WO@T@@O@S@5(pmb_expr@ ࠠ'mod_exp #$@@@TZ@@@a%@@@*+@@6O@:*@ࠠ!q 56@@@E@@@b8@@@@@9@@9@@@ࠠ)loc_start "GH @@@̒@@@٤N@ٛ0JIIJJJJJ@3-@.@df#@@fg@@@ఐ@'mod_expc#d*@@@T@@P@١@ٟ@)Parsetree(pmod_locq+r=@ °@@@@O@٣@٠*@(Location)loc_start>P@@@@@N@٥@٢8@&Lexing(pos_cnumQ`@ڰ-@@DA@@@@@ࠠ'loc_end #dxd@@@@@@ٯN@٦0@Vc]@^@h@@@ఐ'mod_expdd@e@@T@@P@٬@٪@)Parsetree(pmod_locdd@ @@V@@O@ٮ@٫'@(Location'loc_enddd@N@@0@@N@ٰ@٭5@&Lexing(pos_cnumdd@,-@@A>@@dt@@@@@@I@@@N@ټ@@@پN@ٽN@ٲ0@Yf`@a@i@@@ࠠ,ele_comments $@@@ 9 @@@N@@@@N@ٳ@@@@*@@N@ٶ"@ఐ%first'%:(%?@@@.@ภ$None3EZ4E^@J@@@C:@ภ m<E`=Eb@ l@@@3C@@@EYAEc@@(F@ఐe6get_comments_in_moduleL{M{@߰@@@@@N@@@@N@Πc@@N@@@N@Ƞʠb@@N@@@N@@N@@N@@N@o@@ఐ(last_posu{v{@ϰ@@|@@ఐ;)loc_start{{@ް@@@@O@O@O@@@A @@wN@@%7@@w@@@@@ࠠ$eles %@@@L@/L@ L@L@0@@@j@@@ఐޠ!f@@@.@@N@@@@N@@N@@N@@ภ@@<@@O@$@@ఐ9'loc_end@ٰ@@1@@ఐ!q@@@>@@2@@?@@@@డ!@@"@@@"M@@@M@@ @@M@ @@M@@M@@M@0@`oi@j@k@@@@ఐ ,ele_comments@m@@G%@@N@ N@N@@@ఐ$eles)*@#@@&@@@@^L@ )@I@@@@@5@O@@@ @@L@ٚ@Ġ 8=^>`@ 6ঠ)Parsetree(pmb_nameJ)K;@.ঠ#txtT=U@@>Ġ$Some\A]E@ࠠ$name eFfJ@@@<@@@|@@@@@DC@@O@~@@O@}@@@t<uK@@SSR@@O@ل@@O@كO@ـ@@O@@A(pmb_exprLT@Xࠠ'mod_exp U\@@@V@@@ٍ@@@(]@@L@d@ࠠ!q !ab@@@&@@@َ@@@@@ @@ @@@ࠠ-complete_name &fzf@@@ @@@(N@0@`Z@[@l60@1@m& @!@n@@@డp$Name&concatff@`@@@(@@N@@-@@N@0@@N@@N@@N@&@@ఐN3current_module_nameff@N@@N3@@ఐ$nameff@;@@O@@O@3O@2E@@0@@IF@@fv @@@ࠠ)loc_start '@@@Z@@@BN@90@[hb@c@+o@@@ఐ'mod_exp()@g@@Wa@@P@?@=@)Parsetree(pmod_loc67@ @@@@O@A@>'@(Location)loc_startDE@ְ@@ϣ@@N@C@@5@&Lexing(pos_cnumRS@ϟ-@@A>@@V@@@ࠠ'loc_end (a'b.@@@Ϭ@@@MN@D0dccddddd@S`Z@[@}p@@@ఐ預'mod_expz2{9@@@W@@P@J@H@)Parsetree(pmod_loc:L@ ٰ@@@@O@L@I'@(Location'loc_endM]@@@@@N@N@K5@&Lexing(pos_cnum^m@-@@A>@@#@@@ࠠ*tt_mod_exp )qq@@@W@@@cN@O0@S`Z@[@q@@@డ;-search_module0Typedtree_search@@@@Xa@@N@V@@N@W@@N@U@6@@N@TX @@N@S@N@R@N@Q*@@ఐO:%table@O@@O67@@ఐ$name@=@@Z@@O@dO@|O@{K@@: @@OL@Ġ)Not_found@@@@@^@@Q@ځZ@@డ%raise@a@@@a@@O@ڇrN@ڃO@چ@O@څo@@ภ'Failure34@Bడ=module_not_found_in_typedtree-Odoc_messagesBC1@ @@@@@P@ږĄ@@P@ڕ@P@ڔ@@ఐ-complete_nameW2X?@@@@@@Q@ڞ@@^_@@@k@@P@ڒP@ڣQ@ڜ@@hiA@@@@P@ڌP@ڑ@@R@@H@@q @@@@sq @@@ࠠ'com_opt *UjUq@@@IN@ڧ0@@@r@@@ࠠ,ele_comments +UsU@@@à@@@N@ڱ@@@ڳN@ڨ@@UiU@@P)@@ڴN@ګ"@ఐ|%first@ @@~.@ఐPG+comment_opt@P(@@PC;@ภ@@@@4D@@@@)G@ఐ6get_comments_in_module/E@;@@@[@@N@ھ@Z@@N@ڽY@@N@ں@@N@ڹU@@N@ڼ@@N@ڻ@N@ڸ@N@ڷ@N@ڶp@@ఐz(last_posFN@Z@@v}@@ఐ)loc_start OX@@@@@O@O@O@@@A @@xN@@@@x@@Ue@@@ࠠ*new_module ,(l)l@@@tN@0'&&'''''@@@As@@Ct@@@ఐY.analyse_module<l=l@Y@@@Y@Y@Y@Y@Y@YxYr@N@@N@@N@@N@@N@@N@@@ఐ 'new_envUV@N@@ ,@@ఐQ'3current_module_namebc@Q @@Q#9@@ఐ $nameop@@@kO@H@@ఐ'com_opt~ @Q@@U@@ఐ'mod_exp)0@ʰ@@YO@d@@ఐ砐*tt_mod_exp1E1O@@@YO@s@@d@@Yt@@l|@@@ࠠ$eles -cwc{@@@ N@0@@@u@@@ఐ砐!fc~c@@@7@@N@@@@N@@N@@N@@ภ@@E@@O@$@@ఐ}'loc_endcc@#@@O@ 3@@ఐJ!qcc@*@@L@ B@@6@@C@@cs@@డ!@@/@@@/M@@@M@@-@@M@+ @@M@@M@@M@ 0  @dmg@h@'v@@@@ఐ,ele_comments!"@@@T%@@N@N@!N@@@ภ34@,ภ.Element_module<=@mԠఐ*new_moduleFG@@@6@@JK@@KN@,;@ఐ$elesVW@C@@F@@Z@@Z@@N@N@'N@@A@@L@Q@q@@@@@:@J@@@@@@ @@@!@@S@g"@@ L@@@An|&@@L@3@@A)A@L@0L@-0qppqqqqq@@@@@A/A@@L@)@L@^0wvvwwwww@@@@6@L@*L@ H:V9V@@A=@@@@a@@`0@p@@@@<FD@@@ࠠ$eles .@@@@@@܃@@@܂L@f@ఐ֠!f@@@&@@L@q@@L@p@@@L@o@?@@L@n@@L@mF@@L@l@@L@k@L@j@L@i@L@h@ภHภt@u@@@@@M@܈M@܌@@@V@@M@܍@@ఐR#loc@R@@R@(Location)loc_start@ӎ @@[@@M@ܓ@ܐ@&Lexing(pos_cnum  )@W@@W@@M@܆M@ܔM@ܒ@@ఐ $mods*.@ z@@!@@M@܅@@M@܄M@ܗM@ܕ@@@@@@.@@@62=72>@@QJ@ܞ054455555@!@@Nw@@@ఐ 'new_envF2@G2G@?@@ @ఐ$elesQ2IR2M@@@EJ@ܟ@@W2<X2N@@$  @K@ܡ$@1@@E@@@Y@ @@RJ@ܝJ@m @Ġ)Parsetree,Pstr_modtypeqPXrPn@8,Pstr_modtypeRb@7module_type_declaration@@@:Q@AH@O@A} }@@@\ঠ)Parsetree)pmtd_namePpP@,)pmtd_name@@@:#loc@@@:@@@:@@,)pmtd_type+module_type@@@:@@@:@A @ALsMs@@8,/pmtd_attributes K@@@:@B@AUtVt@@9,(pmtd_loc)!t@@@:@C"@Aau(-bu(B@@:@Aerfr@@ 7ࠠ$name rPP@@@=;@@@@@@0@R@@@T)pmtd_typePP@Bࠠ'modtype sPP@@@IH@@@@@@@@@PoP@@~@@M@M@!@@@@@Sf"@@Sf"@@@ࠠ-complete_name /@@@W@@@ܷL@ܣ0@S E?@@@x.(@)@!y@@@డ$Name&concat@ժ@@@r@@L@ܩ@w@@L@ܨz@@L@ܧ@L@ܦ@L@ܥ#@@ఐS3current_module_name78@S߰@@S0@@ఐz$nameFG@;@@@@M@M@@@M@H@#txtVW@@@@ M@P@@>@@TQ@@\@@@ࠠ.tt_module_type 0gh@@@a@@@L@0kjjkkkkk@gtn@o@z@@@డ2search_module_type0Typedtree_search  <@@{xƠ]@@@r@@@@@@@@@@.@@@@@@@@@@@@]/@@L@٠@@L@@@L@@@@L@D@@L@@L@@L@C@@ఐT%table = B@Sΰ@@TP@@ఐ$name C G@@@=@@M@M@ M@@@M@j@#txt H K@Ȱ@@M@r@@a@@ws@Ġ)Not_foundL]Lf@g@@@@:@@O@@@డ%raisejxj}@=@@@=@@M@L@M@@M@@@ภ'Failure j j@డ "module_type_not_found_in_typedtree-Odoc_messages j j@@˭@@@p`@@@p@@p@;:.:2;:.:T@@@@@˺@@N@#m@@N@"@N@!@@ఐ>-complete_name @j Aj@а@@@@O@+@@ Gj Hj@@T@@N@N@0O@)@@ Qj~ Rj@@@@N@N@@@_@@U@@ Z  @@@@ \ @@@ࠠ$kind 1 j k@@@Šlk@@@L@s@@@tL@40 t s s t t t t t@ @@ {@@@ࠠ)sig_mtype 2  @@@ߠ{+module_type@@@L@@@@L@5@@,@@,@@8!@ఐ'modtype  @@@  @@@>@@@=0        @7@@@ఐT.tt_module_type  @B@@@@M@C@@@(mtd_type   (@@@@@@B@@@A!@@, @@, @@D&@Ġ$Some .< .@@ࠠ'modtype 3 .A .H@@@L@@@VB@@@@@TS@@O@X@@O@WJ@Ġ$Some!.J!.N@ࠠ(mty_type 4! .O! .W@@@V@@@]`@@@@@^]@@O@_@@O@^h@@6@@) @O@`m@@m@@ภ$Some!&[k!'[o@ޠడ8analyse_module_type_kind#Sig!5[q!6[@|zyvuРt@srqp@@@YH@@@YG@@@YFA@@@YE@@@YD@@@YC@on@@@YB@ml@@@YA@kj@@@Y@@ih@@@Y?@@@Y>@@Y=@@Y<@@Y;@@Y:@@Y9@d@a>=@@;Р@9@@M@݆@@M@݅@@M@݄A@@M@݃@@M@݂@@M@݁@8@@M@݀@7@@M@@6@@M@~@5@@M@}/@@M@|@M@{@M@z@M@y@M@x@M@w0!!!!!!!!@/@@!~@@!@@@ภ!@!@yР@ꐐw@@N@@@N@@@N@A@@N@@@N@@@N@'@@ఐV#env![![@V@@_4@@ఐ⠐-complete_name![![@t@@7@@N@D@@ఐ'modtype!!@M@@@@N@N@N@X@@ఐ(mty_type" " @a@@X@@N@@l@(mty_type""@,(mty_typec@@@@@@@A,(mty_desc 0module_type_desc@@@@@@AQ#%F@ภ$Some#%I#%M@nఐXs#loc#%N#%Q@XS@@Xo@@@@֘Gf@@N@{N@@֒)loc_inter#%T#%]@ภ$None#%`#%d@@@@֢֡@@N@@@N@N@@@@#%<#%f@@v@@M@sM@@@@#9E#iv@@ @@#&0@@@ࠠ'new_env `##@@@@@@L@0########@ -'@(@$@@@డ/add_module_type(Odoc_env$$@@@@@Z@!t@@@Z@@@Z@@Z@@Z@``G@@H@@@@@L@@@@L@@@L@@L@@L@5@@ఐY#env$B$C@X@@bB@@ఐu"mt$Q$R@N@@y@@M@@V@'mt_name$]$^@wC@@wB@@M@`@@Q@@da@@$e@@@ࠠ(new_env2 a$p$q@@@@@@L@0$s$r$r$s$s$s$s$s@v}@~@$@@@ఐ)sig_mtype$$@@@ޠ@@@@@@0$$$$$$$$@@@@Ġ$Some$bp$bt@RĠ%Types-Mty_signature$bv$b@xŠࠠ!s b$b$b@@@z@@@%@@@$bu$b@@)@@O@+@@@!@@ 0@@O@@@O@3@@3@@డ-add_signature(Odoc_env$$@@@@w@@M@@@@M@@@M@@@M@@@@M@@@M@@M@@M@@M@@M@0$$$$$$$$@uD>@?@%@@@@ఐ'new_env$$@@@@@N@N@N@@@ఐ4"mt%%@ @@z@@N@@,@'mt_name%%@x@@x@@N@6@ภǝ$ޠడ"$Name&simple%5%6@u@@@ @@N@ @@N@@N@T@@ఐp"mt%L%M@I@@z@@O@@h@'mt_name%X%Y@x>@@ @@O@ O@O@v@@%c%d@@ @@N@ |@@@ݠ@@N@@@ఐȠ!s%v%w@@@.@@N@N@N@@@ @@L@@@%%@@ @@O@@@O@@ @@@ఐ'new_env%%@!@@+L@!L@ @@A%@@/*@@% @@@%#.%#/@@YtJ@-0%%%%%%%%@8E?@@@%@@@ఐK(new_env2%#1%#9@ @@NPJ@.@ภ%#=%#UAภ3Element_module_type %#P@tఐ"mt%#Q%#S@԰@@{y@@K@9K@;K@:2@@ @@YJ@7K@87@ภ %#T&A@'A@%oJ@0@@K@4K@@F@@%#;1@@$@@K@3L@@%#-%#V@@TD @K@AT@a@@@@@@ @@"@6 @@ @ @@ @ @@YJ@,J@ܢ@Ġ)Parsetree)Pstr_open& X`& Xs@8)Pstr_openZ @i0open_declaration@@@:R@AI@O@A@@@n]@&+ Xt&, Xu@@@@M@0&+&*&*&+&+&+&+&+@Z1@@@@@@@Z@@Z@@@ࠠ,ele_comments c&< &= @@@n@@@wL@M@@@NL@Ct@ఐZܠ+comment_opt&S &T @Z@@Z0&Q&P&P&Q&Q&Q&Q&Q@ZW@@@Ġ$None&a &b @!x@@@@Z@@Z@@ภ&i &j @@@@-L@K@Ġ$Some&x &y@!0ࠠ!i d&&@@@d@@@'C'D@@[ J@0'B'A'A'B'B'B'B'B@[I @ @'[@@@ఐ\&#env'S'T@\@@e@ఐ",ele_comments'^'_@@@NJ@@@'d'e@@$e) @K@$@1@@[J@J@B@Ġ)Parsetree*Pstr_class'|'}@8*Pstr_class[m@r1class_declaration@@@:T@@@:S@AJ@O@A/0!@@@^ࠠ/class_decl_list t''@@@@@@@@@0''''''''@[@@@@@' @@\@@\@@@ࠠ'new_env f'*'1@@@PPL@0''''''''@[ @@'@@@డ&$List)fold_left'4@'4N@u@@@@PlL@@I@@L@jL@ @L@@L@@ @t @@L@@L@@L@@L@0''''''''@(@@@@@'acc_env g'Ob'Oi@@@"@@@*class_decl h'Oq'O{@@@-L@4L@ 0''''''''@J5@@(@@@@@ࠠ-complete_name i(( @@@#]@@@&N@0( ( ( ( ( ( ( ( @&@@($@@@డ%$Name&concat( (!@ޭ@@@#u@@N@@#z@@N@#}@@N@@N@@N@ @@ఐ\3current_module_name(:(;@\@@\-@@ఐ[*class_decl(K(L@;@@W>@)Parsetree(pci_name(T(U@ @@ڠ#@@O@>O@3@@O@2P@#txt(d(e@N@@ O@6X@@I@@\Y@@(j@@డe)add_class(Odoc_env(w(x @@ @@@Z@,!t@@@Z+@@@Z@@Z@@Z@^aHH_aHq@@-I@@@5@@M@I@@@M@H=@@M@G@M@F@M@E0((((((((@@@(@@@@ఐǠ'acc_env( (@@@@@ఐ-complete_name(( @@@$ @@N@Y!@@G@@QbL@S$@W @@L@@@A(Om @@@@M@eM@d0((((((((@@@@@A(O](!0@@@ @ @M@@M@M@g"@@ఐ]#env(1?(1B@]@@f@@ఐS/class_decl_list(CQ(C`@9@@ǐ(@@M@M@kM@i@@5 @@.E@@(& @@Aࠠ!f j) n) n@@@%firstԀ@@@gL@}@@L@~L@|@^@@@'L@s@(`x@@@@@@L@@@@(L@t(.@@@O@ @@@L@u@@{@@z@L@y0)2)1)1)2)2)2)2)2@@@)K@@@6M kR))D n)E nA@Ի;@@M@0)E)D)D)E)E)E)E)E@NJƠFL@q@@@r@B@=.@@v@@w@@xM@p@V@)k@@@@@ࠠZ l[ )d n@"@@ZL@L@0)d)c)c)d)d)d)d)d@ .a@@@@-@)@@@ఐ9U)I )x n)y; D A@o@@@0)y)x)x)y)y)y)y)y@@@@ĠS)X$<ࠠO mP)]) nH@@Q@@@@@@@P@@@@@ఐ N)i @ @)@5L@0))))))))@3@@@ĠL)v$@@@@@P@*@@*@@ภŰ!h@@"@GM@1@@Al@IF@@)@@(last_pos n) n) n@@@L@L@0))))))))@Xa]@^@)@@@@@/class_decl_list o) n) n@@@L@L@0))))))))@&@@)@@@@ఐ/class_decl_list)!)!@@@)@@0))))))))@#@@@Ġ#)")"@"@@@@$0))))))))@@@@@%@@ภ,)#)#@+@@@L@L@ @Ġ* $* $@ࠠ*class_decl p*$*$@@@/@ࠠ!q q*$*$@@@)@@@=@@@@@T>@@T>@@@ࠠ,tt_class_exp r*2%0*3%<@@@% 7@@@N@0*6*5*5*6*6*6*6*6@V/@*@*P'!@"@*R@@@ࠠ.tt_type_params s*I%>*J%L@@@ F C @@@@@@@N@@@*W%/*X%M@@'@@"@డ'0search_class_exp0Typedtree_search*k&Pf*l&P@@$d$a&h@@@ݠ%$[@@@@@@@'@@@O@@@ؠ <@@@@@@@@@@@@@ @t'&@@@$h#@@N@̠"@@N@@@N@@'@@N@p@@N@Ǡ ]@@N@@@N@@N@@N@@N@0********@w@@@@ఐ_%table*&P*&P@^ΰ@@_@@ఐ*class_decl*&P*&P@@@@)Parsetree(pci_name*&P*&P@: @@](@@O@O@O@@@O@3@#txt*&P*&P@Ӱ@@O@;@@@@N@>@Ġ)Not_found*'*'@t@@@@*G@@Q@ L@@@ࠠ-complete_name t+(+ (@@@&]@@@!P@ @డ($Name&concat+(+( @ᩰ@@@&q@@P@@&v@@P@&y@@P@@P@@P@@@ఐ_3current_module_name+6( +7( @_ް@@_@@ఐ4*class_decl+G( +H( &@ @@(@)Parsetree(pci_name+P( '+Q( 9@ @@֠&@@Q@9Q@.@@Q@-!@#txt+`( :+a( =@J@@ Q@1)@@I@@X*@@+f(@@డ*5%raise+p) A U+q) A Z@@@@@@O@B#N@ O@A@O@@0+w+v+v+w+w+w+w+w@Bzt@u@+@@@@ภ'Failure+) A \+) A c@똠డj@@' @@Q@YD@@+) A d+) A @@@@P@MP@^Q@WN@@+) A [+) A @@ @@P@GP@LV@@c@@[W@n@@Z@@+&Pb @@@@+%+ @@@ࠠ'com_opt u++  ++  @@@YtN@b0++++++++@@@+@@,@@@ࠠ,ele_comments v++  ++  @@@ )@@@N@l@@@nN@c@@,+  ,+  @@`@@oN@f%@ఐ%first,,  ,,  @W@@1@ఐ`+comment_opt,$-  ,%-  !@`@@`>@ภ ^,--  #,.-  %@ ]@@@4G@@,1-  ,2-  &@@)J@ఐV6get_comments_in_module,=/ > R,>/ > h@@@@@@N@y@@@N@xT@@N@u@@N@tS@@N@w@@N@v@N@s@N@r@N@qs@@ఐ(last_pos,f/ > i,g/ > q@@@@@ఐf*class_decl,y/ > r,z/ > |@=@@Z@)Parsetree'pci_loc,/ > },/ > @ @@@@P@@@(Location)loc_start,/ > ,/ > @"@@@@O@@@&Lexing(pos_cnum,/ > ,/ > @(@@@@O@O@O@@@l @@N@@,,  @@@@,+  @@@ࠠ)last_pos2 w,1  ,1  @@@@@@N@0,,,,,,,,@@@,@@,@@@ఐ *class_decl,1  ,1  @@@@)Parsetree'pci_loc,1  ,1  @ @@q@@O@@%@(Location'loc_end,1  ,1  @i@@K@@N@@3@&Lexing(pos_cnum,1  ,1  "@G(@@?<@@,1  @@@ࠠ)new_class x- 2 & :- 2 & C@@@q@@@N@0- - - - - - - - @Q^X@Y@-%@@@ఐ-analyse_class-2 & F-2 & S@@@@@@N@@(x@@N@@zy@@N@@@N@@rȊ@@N@@@N@@ji@@N@@@N@@ H@@N@@aN@@@N@@N@@N@@N@@N@@N@@N@@N@A@@ఐ'new_env-\3 T h-]3 T o@%@@N@@ఐb.3current_module_name-i4 p -j4 p @b@@b*[@@ఐ'com_opt-v5  -w5  @@@h@@ఐp*class_decl-6  -6  @G@@du@@ఐG.tt_type_params-7  -7  @@@ @@O@@@O@O@O@@@ఐv,tt_class_exp-8  -8  @@@ @@O@O@O@@@ఐb%table-9  +-9  0@aͰ@@b@@@@@@-2 & 6@@డ,!@-; D a-; D b@@@@M@@@M@@@@M@ @@M@@M@@M@0--------@@@-@@@@ఐ,ele_comments-; D T-; D `@*@@!%@@N@N@N@@@ภ罰.; D ~.; D @!ภ-Element_class. ; D e. ; D r@s4ఐ )new_class.; D s.; D |@3@@s@@@N@N@N@=@@.; D d.; D }@@N@B@ఐ*!f.,; D .-; D @@@*٦@@N@@!@ @N@@N@@N@Y@4ภ.)T@.@ٴ@@O@&c@@ఐ)last_pos2.M; D .N; D @<@@8p@@ఐ=!q.Z; D .[; D @@@>}@@.^; D ._; D @@4@@.a; D c@@ˆ@@N@N@ @@{@@kL@@@@[@o@@@@@@@@L@6@@A.r!@@uL@@@AA@_L@L@0.u.t.t.u.u.u.u.u@@@@@AA@@L@@L@0.{.z.z.{.{.{.{.{@@@@ @qL@L@>.Z=.Z@@A@@@@z@@0........@D@@@@. nx@@@.=  .=  @@baJ@R@ఐ'new_env.=  .=  @m@@]@ఐ!f.=  .=  @g@@+@@K@@@K@@@@K@@.D@@K@@@K@@@K@.O@@K@@@K@@K@@K@@K@@ѐภQ.)ภ}.=  .=  @~@@@@@L@L@@@@_@@L@@@ఐc#loc.=  .=  @c@@c@(Location)loc_start/=  /=  @䗰 @@d@@L@@@&Lexing(pos_cnum/=  /=  @`@@`@@L@L@L@@@ఐ/class_decl_list/'=  /(=  @v@@.@@L@L@@@L@L@L@@@@@VJ@@@/;=  /<=  @@ @K@@@@ @M@@bJ@J@@Ġ)Parsetree/Pstr_class_type/T?  /U?  @8/Pstr_class_typecE@JШ6class_type_declaration@@@:V@@@:U@AK@O@AUWU@@@Ю_ࠠ4class_type_decl_list u/o?  /p?  4@@@@@@@@@0/t/s/s/t/t/t/t/t@cz@@@@@' @@c@@c@@@ࠠ'new_env y/A n |/A n @@@XL@0////////@c @@/@@@డ.\$List)fold_left/B  /B  @M@@@@X>L@@I@@L@TL@ @L@@L@@ @L @@L@@L@@L@@L@0////////@(@@@@@'acc_env z/C  /C  @@@"@@@/class_type_decl {/C  /C  @@@-L@L@0////////@J5@@/@@@@@ࠠ-complete_name |/D  /D  @@@+5@@@N@0////////@&@@/@@@డ-$Name&concat/D  /D @慰@@@+M@@N@@+R@@N@+U@@N@@N@@N@ @@ఐdנ3current_module_name0D 0D @d@@d-@@ఐ[/class_type_decl0#D 0$D )@;@@W>@)Parsetree(pci_name0,D *0-D <@ @@+@@O@(O@@@O@P@#txt0<D =0=D @@&@@ O@ X@@I@@\Y@@0BD  @@డ=.add_class_type(Odoc_env0OEDT0PEDk@@@@@Z@!t@@@Z@@@Z@@Z@@Z@6brr7br@@J@@@ @@M@3@@@M@2@@M@1@M@0@M@/00o0n0n0o0o0o0o0o@@@0@@@@ఐǠ'acc_env0EDl0EDs@@@@@ఐ-complete_name0EDt0ED@@@+@@N@C!@@G@@Y4L@=$@W @@L@@@A0C   @@@@M@OM@N000000000@@@@@A0C  0F@@@ @ @M@@M@M@Q"@@ఐe#env0G0G@er@@nw@@ఐS4class_type_decl_list0H0H@9@@h(@@M@M@UM@S@@5 @@.E@@0A n x @@Aࠠ!f }0J0J@@@%firstX@@@L@g@@L@hL@f@6@@@L@]@0w8@@@L@@@@L@@@@L@^0 @@@O@@@@L@_@@e@@d@L@c01 1 1 1 1 1 1 1 @@@1&@@@9( ~-01J1 JA@ܖ>@@M@l01 111 1 1 1 1 @QMܡIL@[@@@\@E@@.@@`@@a@@bM@Z@Y@1F@@@@@ࠠ] ^ 1?J@"@@]L@L@p01?1>1>1?1?1?1?1?@ .ܼd@@@k@-@1\@@@ఐ901$ 1SJ1TtjA@ʠr@@@r01T1S1S1T1T1T1T1T@@@@Ġ.13,ࠠ* +181gJH@@Q@v@@@@ߠ@@P@w@@@@ఐ )1D @ @1@5L@01q1p1p1q1q1q1q1q@3@@@Ġ'1Q,@@@@@P@|*@@*@@ภ%!h@%@"@GM@1@@Al@IF@@1\@@(last_pos 1J1J@@@L@L@011111111@Xa]@^@1@@@@@4class_type_decl_list 1J1J@@@L@L@011111111@&@@1@@@@ఐ4class_type_decl_list1K)1K=@@@1@@011111111@#@@@Ġ%1LCQ1LCS@%@@@@$011111111@@@@@%@@ภ&1MWg1MWi@&@@@L@L@ @Ġ%1Nj1Nj@%ޠࠠ/class_type_decl 1Njx1Nj@@@/@ࠠ!q 1Nj1Nj@@@1{@@@=@@@@@T>@@T>@@@ࠠ$name 2 O2 O@@@@@@@@@N@022222222@V/ @*@2+'!@"@2-@@@ఐ8/class_type_decl2&O2'O@@@/@)Parsetree(pci_name2/O20O@ @@#@@23O@@@ࠠ-complete_name 2>P2?P@@@-@@@N@02A2@2@2A2A2A2A2A@1B<@=@2Z@@@డ/$Name&concat2VP2WP@@@@-@@N@@-@@N@-@@N@@N@@N@ @@ఐg53current_module_name2pP2qP@g@@g1-@@ఐu$name2P2P@9@@-@@O@O@@@O@E@#txt2P2P@y@@ O@M@@>@@QN@@2P@@@ࠠ$virt 2Q!52Q!9@@@ @@@N@022222222@cpj@k@2@@@డ1z Р Ұ2Q!_2Q!`@ ϰ@@@@@N@N@@ @@N@@N@@N@@@ఐ᠐/class_type_decl2Q!<2Q!K@@@*@)Parsetree(pci_virt2Q!L2Q!^@) @@ 3@@ภ(Asttypes'Virtual2Q!a2Q!q@@@@0O@C@@@@GD@@2Q!1@@@ࠠ5tt_cltype_declaration 2Ru2Ru@@@.e d@@@ N@022222222@Zga@b@3@@@డ0=search_class_type_declaration0Typedtree_search3S3S@@- - /Wp@@@.-@@@@@@@0G@@@.@@@@@@@@8@а@@@p@@N@@@N@@@N@@0]@@N@D@@N@@N@@N@C@@ఐg%table3NS3OS@g_@@gP@@ఐS$name3]S3^S@@@0@@O@ O@2O@)@@O@(j@#txt3oS3pS@Y@@O@*r@@a@@ws@Ġ)Not_found3|T 3}T@@@@@2@@Q@7@@డ2P%raise3U-3U2@ ΰ@@@ @@O@=N@9O@<@O@;@@ภ'Failure3U43U;@డ߁ !class_type_not_found_in_typedtree-Odoc_messages3U=3Ul@@>@@@p@@@p@@p@߁>;.;2߂>;.;S@@߀@@@K@@P@L@@P@K@P@J@@ఐ-complete_name3Um3Uz@)@@/$@@Q@T@@3U<3U{@@@@P@HP@YQ@R@@3U33U|@@ $@@P@BP@G@@_@@U@@3S @@@@3Ru @@@ࠠ5tt_cltype_declaration 3W3W@@@"@@@@bN@\033333333@@ @4@@@ఐ5tt_cltype_declaration4 W4W@ @@@@N@^@,ci_type_decl4W4W@"^ @@@@4W@@@ࠠ+type_params 4&X4'X@@@#!@@@i@@@hN@e04.4-4-4.4.4.4.4.@4A;@<@4G@@@ఐH5tt_cltype_declaration4@X4AX@ @@w@@N@j@g@%Types+clty_params4NX4OX/@,+clty_paramsw@@@ n*J@@@ f@@@ e@@ ,)clty_type @@@ g@A@A3LL3LL@@S,)clty_path!!t@@@ h@B@A4LL4LL@@_,-clty_variance"l~!t@@@ j@@@ i@C"@A5LL5LM@@o,(clty_loc2T!t@@@ k@D.@A6MM 6MM@@{,/clty_attributes>R*attributes@@@ l@E:@A7MM#7MMI@@,(clty_uidJ8!t@@@ m@FE@A8MJMN8MJM^@@@A2LL2LL@@j[@@w@@4X]@@@ࠠ$kind 4Y3G4Y3K@@@~}@@@N@k044444444@@@4@@@డI7analyse_class_type_kind#Sig4Y3N4Y3i@@@@@YS@@@@YR@@@@YQ@@@@YP@@@@YO3@@@YN@@YM@@YL@@YK@@YJ@@YI@@#"@@@ @@N@w@@@N@v@@@N@u@@@N@t@@@N@sP@@N@r@N@q@N@p@N@o@N@n@N@mO@@ఐ'new_env5Zj~5Zj@@@\@@ఐ砐-complete_name5%[5&[@}@@0x@@O@l@@ఐM/class_type_decl5;\5<\@$@@D@)Parsetree'pci_loc5D\5E\@d @@@@P@@@(Location)loc_start5R\5S\@@@@@O@@@&Lexing(pos_cnum5`\5a\@ꭰ(@@>@@O@O@O@@@ఐ/class_type_decl5v]5w]$@_@@@)Parsetree(pci_expr5]%5]7@ @@L@@@ఐ5tt_cltype_declaration5^8L5^8a@]@@y@@O@@@%Types)clty_type5^8b5^8q@C@@@@O@O@O@@@ @@@@5Y3C @@@ࠠ'com_opt 5`5`@@@cCN@055555555@ @@5@@@ࠠ,ele_comments 5`5`@@@)@@@N@@@@N@@@5`5`@@j_@@N@"@ఐ%first5a5a@L@@.@ఐj}+comment_opt5b5b@j^@@jy;@ภ*.5b5b@*-@@@4D@@6b6b@@)G@ఐ&6get_comments_in_module6 d$6d:@q@@@@@N@@@@N@$@@N@@@N@Ơ#@@N@@@N@@N@@N@@N@p@@ఐ(last_pos66d;67dC@@@}@@ఐ[/class_type_decl6IdD6JdS@2@@R@)Parsetree'pci_loc6RdT6Sde@r @@@@P@@@(Location)loc_start6`df6adx@@@@@O@@@&Lexing(pos_cnum6ndy6od@뻰(@@@@O@O@O@@@l @@N@@6|a@@@@6~`@@@ࠠ)last_pos2 6f6f@@@@@@N@066666666@@@6@@6@@@ఐ/class_type_decl6f6f@@@@)Parsetree'pci_loc6f6f@ΰ @@A@@O@@%@(Location'loc_end6f6f@9@@@@N@@3@&Lexing(pos_cnum6f6f@(@@?<@@6f@@@ࠠ'new_ele 6g6g@@@@@@N@066666666@Q^X@Y@6@@@ภ2Element_class_type6h 26h D@zy񡠐(clt_name6j[q6j[y@ఐ -complete_name7j[|7j[@X@@2S@@O@%@y(clt_info7 k7 k@ఐ]'com_opt7k7k@@@]7@y(clt_type7l7l@డ0subst_class_type(Odoc_env7,l7-l@@@@@@O@$@@@O@#@@O@"@O@!@O@ [@@ఐl#env7Fl7Gl@l@@uh@@ఐ]5tt_cltype_declaration7Ul7Vl @"@@z@@P@5@3|@%Types)clty_type7cl 7dl@@@@@P@/P@6P@4@@B @@zS@@O@O@8P@.@zM3clt_type_parameters7{m47|mG@డ6L$List#map7mJ7mR@@@@@t@@O@pO@Hzl@@O@AO@vO@oO@F@O@I@@@O@G@@O@E@O@D@O@C@@డ*subst_type(Odoc_env7mT7mg@@@@`@@Q@\@@@Q@[@@Q@Z@Q@Y@Q@X@@ఐL'new_env7mh7mo@@@L@@7mS7mp@@@@@P@m@@P@l@P@k@@ఐà+type_params7mq7m|@*@@ic@@P@TP@sP@q@@l @@zΠa@@O@@O@uO@S@zġ+clt_virtual8n8n@ఐl$virt8 n8 n@ @@z@@O@|O@~O@}5@zӡ(clt_kind8o8o@ఐo$kind8%o8&o@i@@2@@O@O@O@N@z㡠'clt_loc85p86p@ຠ(loc_impl8@p8Ap@ภ$Some8Hp8Ip@3ఐm#loc8Rp8Sp@l@@mt@@@@*[@@P@P@{@$)loc_inter8bq ,8cq 5@ภ$None8jq 88kq <@3@@@43@@P@@@P@P@@@@8wp8xq >@@{,@@O@O@@@@8iEY8rAV@@|>@@N@N@@@@@@@@@@8g @@డ7Z!@8tj8tj@ư@@@ƠM@@@M@@Ġ@@M@  @@M@@M@@M@088888888@@@8@@@@ఐ,ele_comments8tjz8tj@$@@%@@N@N@N@@@ภ8tj8tj@,àఐ'new_ele8tj8tj@*@@N@/@ఐ !f8tj8tj@@@ ]@@N@@@@N@@N@@N@F@ภ84 @8@k@@O@P@@ఐ{)last_pos29tj9tj@#@@]@@ఐ!q9tj9tj@@@j@@9tj9tj@@m@@9tj@@=@@N@N@u@@h@@GL@x@@@B@V@@@@@i@|@@g@|@@@ @@(@<@@ (@=@@ @@@ @@@L@@@A9/K#@@WL@b@@AA@DL@L@09291919292929292@@@@@AA@@L@@L@J09897979898989898@@@@@VL@L@o99@@A@h传d@@@M_@@L09F9E9E9F9F9F9F9F@&@@@@9MJ@@@9Uv9Vv@@mJ@V4@ఐ ܠ'new_env9av9bv@O@@ ?@ఐ!f9nv9ov@I@@H@@K@b@@K@a@@@K@`@9@@K@_@@K@^@@K@]9 @@K@\@@K@[@K@Z@K@Y@K@Xn@ภ9k4Oภ:9v9v@;@@@v@@L@{L@@@@@@L@@@ఐnl#loc9v9v@nL@@nh@(Location)loc_start9v9v@T @@!@@L@@@&Lexing(pos_cnum9v9v@@@@@L@yL@L@@@ఐ u4class_type_decl_list9v9v@ [@@9k @@L@L@w@@L@vL@L@@@@@amJ@t@@9v9v@@ v @K@@@@@ 2@@mJ@UJ@ |@Ġ)Parsetree,Pstr_include:x:x5@8,Pstr_includen@a3include_declaration@@@:W@AL@O@Aտ@@@f`@:#x6:$x7@@@@M@n)@@@@@nn*@@nn*@@@ࠠ"im :3| :4| @@@4@@@L@ @ະ]'im_name:D~+9:E~+@@%dummy:K~+D:L~+I@@:N~+C:O~+J@@k@@M@M@ @i)im_module:[M[:\Md@ภ$None:cMg:dMk@5z@@@yv@@M@@@M@M@ @p'im_info:un|:vn@ఐo+comment_opt:~n:n@n@@o @@@:}):@@N @@:| @@@::@@nVJ@0::::::::@nd^@_@:@@@ఐop#env::@oZ@@x_@ภ*ٰ::A.ภ7Element_included_module :@/ఐ"im::@&@@@@K@K@K@0@@ @@npJ@K@5@ภ*:&A.@'A@:OJ@@@K@K@D@@:1@@/@@K@J@@::@@Rx @K@R@_@@nJ@J@ o@@A:" @@nJ@n@@AoA@oJ@J@0::::::::@o@@@@Ao:A@oJ@J@0::::::::@o*@@@@AoUA@oJ@J@0::::::::@oR@@@@Aop"A@oJ@J@0::::::::@om@@@@Ao(A@oJ@J@0;;;;;;;;@o@@@@Ao.A@oJ@J@0; ; ; ; ; ; ; ; @o@@@@Ao4A@pJ@J@0;;;;;;;;@o@@@@Ao:A@p J@J@0;;;;;;;;@o@@@@Ao@A@@xp@@90;;;;;;;;@x@@@9␠ \ Analysis of a parse tree structure item to obtain a new environment and a list of elements.;+ ;, o@@@@@@@;. psR@xxxVxU@xW@@x@x~@x|@xw@xu@xnxh@@@@@@@@@@@J@0;<;;;;;<;<;<;<;<@@@@@#env ;Lg;Mg@@@x0;J;I;I;J;J;J;J;J@y)@@@@@3current_module_name ;Zg;[g@@@ytJ@EJ@=0;\;[;[;\;\;\;\;\@y<x@@;u@@@@@+module_name ;og;pg@@@xJ@C0;o;n;n;o;o;o;o;o@$@@;@@@@@+comment_opt ;g;g@@@y2J@gJ@I0;;;;;;;;@$@@;@@@@@-p_module_expr ;g;g@@@xJ@J@O0;;;;;;;;@&@@;@@@@@.tt_module_expr ;g;g@@@xJ@J@U0;;;;;;;;@&@@;@@@@@ࠠ-complete_name ;;@@@7@@@oK@[0;;;;;;;;@'@@;@@@డ9v$Name&concat;;@f@@@7.@@K@a@73@@K@`76@@K@_@K@^@K@] @@ఐ3current_module_name;;@@@-@@ఐ+module_name<<@w@@:@@+@@>;@@<@@@ࠠ#loc <!<$@@@/@@@}K@{0<<<<<<<<@P]W@X@<,@@@ఐ-p_module_expr<%'<&4@r@@@)Parsetree(pmod_loc<.5K^@@@@@@K@0<@=?@@zt@@N@5@ࠠ,pmodule_type =J=K@@@@@@B@@@*=Q@@0@@N@G@@G@@@ࠠ)loc_start =_=`@@@@@@M@0=b=a=a=b=b=b=b=b@l#@@={@@@ఐ.,pmodule_type=x=y@@@@@O@@@)Parsetree(pmty_loc==@,(pmty_loc@@@9c!t@@@9@A,)pmty_desc 0module_type_desc@@@9@@@A>$x~x?$x~x@@,/pmty_attributes=@@@9@B@AG&xxH&xx@@@AK%xxL%xx@@5&@@=@@N@@K@(Location)loc_start==@JC@@@@M@@Y@&Lexing(pos_cnum==*@Q@@eb@@=@@@ࠠ'loc_end =.>=.E@@@ @@@M@0========@w~@@=@@@ఐ,pmodule_type=.H=.T@@@P@@O@@@)Parsetree(pmty_loc=.U=.g@v@@@@N@@'@(Location'loc_end> .h> .x@@@i@@M@@5@&Lexing(pos_cnum>.y>.@e-@@A>@@>.:@@ภ$Some>#>$@8۠ఐL2get_string_of_file>/>0@@@@ _@@L@@ \@@L@ [@@L@@L@@L@0>:>9>9>:>:>:>:>:@cpj@k@>S@@@@ఐ)loc_start>M>N@p@@ @@M@M@M@@@ఐ'loc_end>a>b@"@@ @@M@M@M@,@@>l>m@@v/@@L@@9Š|@@L@4@X@@@@@K@@@>}>~@@1@@N@t@@t@@ภ$None>>@9@@@K@K@@@A>^f@@@@>FL @@@ࠠ&m_base >>@@@z@@@SK@O0>>>>>>>>@@@>@@@,&m_name> > @ఐ-complete_name> > *@@@@@L@UL@YL@X @&m_type>-7>-=@ఐ'modtype>-@>-G@ذ@@@@L@^L@`L@_9@ġ&m_info>JT>JZ@ఐo+comment_opt>J]>Jh@O@@kK@š.m_is_interface>ku>k@ภ3>k>k@3@@@@@L@oL@s`@Ρ&m_file? ? @డ=68??@5@@@5@@L@xL@L@{@@L@|@L@z@@ఐ)file_name?/@9@@P@@M@M@M@@@% @@@?&m_kind?@?A@ภ-Module_struct?H?I@ภ3?P?Q@3@@@@@L@@@L@L@@@ @@^@@L@L@@%m_loc?h?i@ຠJ(loc_impl?s?t@ภ$Some?{?|@:3ఐu#loc??@@@@_@@M@M@M@M@@@ @@f @@M@M@@`)loc_inter??@ภ$None? ?@:@@@po@@M@@@M@M@ @@@??@@q@@L@L@@k*m_top_deps??'@ภ3?*?,@3@@@zy@@L@@@L@L@.@t&m_code?/9?/?@ภ$None?/B?/F@:@@@@@L@@@L@L@H@+m_code_intf??@ఐ+m_code_intf??@W@@@@L@@@L@L@L@e@+m_text_only@@@ภ4/@@@4.@@@@@L@L@z@@@@ @!@@}@@@#@@ఐ-p_module_expr@2@3@@@0@0@/@/@0@0@0@0@0@@@@I@@@)Parsetree)pmod_desc@?@@ @3@@3@@@@ఐ.tt_module_expr@O @P @@@@)Typedtree(mod_desc@X @Y .@ @@@@@)@@@_@` /@@" @@0@Ġ)Parsetree*Pmod_ident@v 5 >@w 5 R@8*Pmod_identO@#loc!t@@@:3@@@:2@A@@G@A+ln,l@@@K@@ 5 S@ 5 T@@@@N@@@N@0@@@@@@@@@c@@@@@$ @@3@@N@@Ġ)Typedtree*Tmod_ident@ 5 V@ 5 j@ࠠ$path @ 5 l@ 5 p@@@@@@7M@@@@ 5 r@ 5 s@@@@N@@@N@+@@@@ 5 t@@ @@N@0@@@ 5 =@ 5 u@@4 @N@7@@7@Ġ)Parsetree*Pmod_ident@ v @ v @f@@ v @ v @@hf@@N@&@@N@%R@@@ @@4/@@N@'V@Ġ)Typedtree/Tmod_constraint@  @  @yঠ)Typedtree(mod_descA  A  @QĠ)Typedtree*Tmod_identA  A  @ h$pathA  A  @@@e@@A  A  @@ @@N@9@@N@8@@@A& !@@m@@N@:@@@A+  A, !@@9@@N@ !@@@@N@>@@AE ! AF ! @@@@N@?@@@TAK ! @@@@N@@@@AP v AQ ! @@j @N@A@@@@@@4@@M@D@@M@E@M@C@@@ࠠ*alias_name Ak!!(Al!!2@@@!t@@@IL@50AqApApAqAqAqAqAq@B@@A@@@డt0full_module_name(Odoc_envA!!5A!!N@@ /@@@Z@;!t@@@Z&@@@Z@@Z@@Z@mgngN@@ @CU("@#@CW@@@ఐq1analyse_structureCP"T"mCQ"T"~@(@@@q@l@g@b@]@VQ@L@@L@@L@@L@@L@@L@@@ఐ!#envCi"T"Cj"T"@@@,@@ఐ-complete_nameCv"T"Cw"T"@^@@>@@J@<@@ఐI)pos_startC"T"C"T"@@@M@K@@ఐ'pos_endC"T"C"T"@̰@@M@Z@@ఐ+p_structureC"T"C"T"@c@@g@@ఐ,tt_structureC"T"C"T"@n@@M@v@@g@@w@@C"T"^@@@ࠠ8included_modules_from_tt C"#C"#@@@@@@@@@L@0CCCCCCCC@@@C@@@ఐ預;tt_get_included_module_listC"#C"#9@@@@@@L@@@L@@@L@@L@@@ఐԠ,tt_structureC"#:C"#F@@@@@M@M@M@0@@$ @@81@@D"" @@@ࠠ)elements2 D #J#XD #J#a@@@C}@@@L@ 0DDDDDDDD@GXR@S@D)@@@ఐj>replace_dummy_included_modulesD"#J#dD##J#@@@@8Tf@@L@@@L@@8]/@@L@@@L@C@@L@@L@ @L@ &@@ఐ (elementsDE#J#DF#J#@v@@ 3@@ఐ8included_modules_from_ttDR#J#DS#J#@=@@8X@@M@!@@M@ M@'M@%K@@?@@PL@@Db#J#T@@,`a@@K@BK@@\@@@K@FK@DZ[Z@@K@L@@K@KK@HTU@@K@PK@NOP@@K@TK@R&m_kindD##D##@ภ-Module_structD##D##@ఐ)elements2D##D##@@@Dʰ@@~w@@L@9L@@@O@[@Y@(mty_typeH&]&tH&]&|@&@@'p@@O@@@O@u@sV@(mty_typeIM&&IN&&@'7@@G@@O@oO@vO@td@@U @@he@@IY&& @@ఐ#locId&&Ie&&@а@@L@}0IdIcIcIdIdIdIdId@w~@@I}@@@ఐ預'mp_nameIu&&Iv&&@M@@@ఐ`'mp_kindI&&I&&@@@L@@ภ$SomeI&'I&'@DDఐ'mp_typeI&'I&' @-@@0@@@@DL@@@M@7@@= @@=# @M@>@O@@@@@@@@ @*@@L@|L@S@@I''I''@@@@O@@@I'' I''!@@@@O@@@@@@O@@@@@ภ=I'',I''1@=@@@=@@M@@I''%@@ L@@@AI$$ @@ P@@I$[$f @@@ࠠ)loc_start ̠I'@'OI'@'X@@@4@@@NL@H0IIIIIIII@huo@p@J[U@V@J NH@I@J A;@<@J@@@ఐ#locJ '@'[J '@'^@@@@@M@M@K @(Location)loc_startJ'@'_J'@'q@@@v@@L@O@L.@&Lexing(pos_cnumJ%'@'rJ&'@'@r@@:7@@J)'@'K@@@ࠠ'loc_end ͠J4''J5''@@@@@@VL@P0J7J6J6J7J7J7J7J7@LYS@T@JP@@@ఐƠ#locJK''JL''@W@@@@M@U@S@(Location'loc_endJY''JZ''@ְ@@@@L@W@T%@&Lexing(pos_cnumJg''Jh''@@@1.@@Jk''@@@ࠠ,mp_type_code ΠJv''Jw''@@@@@@hL@X0JyJxJxJyJyJyJyJy@CPJ@K@J@@@ఐ2get_string_of_fileJ''J''@J@@@@@L@^@@@L@]@@L@\@L@[@L@Z@@ఐ)loc_startJ''J'(@i@@@@M@jM@lM@k1@@ఐ'loc_endJ'(J'(@;@@@@M@iM@nM@mE@@9 @@IF@@J'' @@@ࠠ%param ϠJ( (J( ( @@@F$0module_parameter@@@tL@p0JJJJJJJJ@]jd@e@J@@@,'mp_name@@@U@@@P@@ ,'mp_type +module_type@@@R@@@Q@A@Au  u  B@@FG_,,mp_type_code@@@S@B@Av S W v S n@@FQ`,'mp_kind%@@@T@C!@Aw  w  @@FZa@Att @@F^^'mp_nameK(2(AK(2(HAఐ @)@Fq@@M@wJ@9'mp_typeK*(K(ZK+(K(aAఐt @6@HG@@M@@@M@M@M@c@A,mp_type_codeKC(d(sKD(d(@ఐ֠,mp_type_codeKL(d(KM(d(@r@@T@@M@M@M@|@P'mp_kindK\((K]((Aఐ @j@S@@M@M@M@@@@Kl(#(0Km((@@@@Ko( (@@@ࠠ3dummy_complete_name РKz((K{((@@@@@@L@0K}K|K|K}K}K}K}K}@@@K@@@ఐ%paramK()K()@ @@@@L@@@'mp_nameK()K()@@@@@K((@@@ࠠ'new_env ѠK)6)EK)6)L@@@S@@@L@0KKKKKKKK@1>8@9@K@@@డ*add_module(Odoc_envK)6)OK)6)b@=F@@@k@@L@@=F@@L@s@@L@@L@@L@ @@ఐ#envK)6)cK)6)f@{@@'-@@ఐo3dummy_complete_nameK)6)gK)6)z@7@@=h@@M@M@?@@0@@C@@@K)6)A @@@ࠠ'm_base2 ҠK)~)K)~)@@@@HL@0KKKKKKKK@R_Y@Z@L@@@ఐ[.analyse_moduleL)~)L)~)@_@@@]@\@Z@U@S@LF@L@@L@@L@@L@@L@@L@@@ఐ'new_envL)))L*))@&@@tM@+@@ఐ⠐3current_module_nameL8))L9))@İ@@8@@ఐڠ+module_nameLE))LF))@@@E@@ภ$NoneLQ)* LR)*@Gh@@@J@S@@ఐ$.p_module_expr2L`**La**,@ΰ@@M@b@@ఐ /tt_module_expr2Lo*-*<Lp*-*K@ٰ@@M@q@@e@@r@@Lv)~)@@@ࠠ$kind ӠL*Z*iL*Z*m@@@@@@L@0LLLLLLLL@@@L@@@ఐ'm_base2L*Z*pL*Z*w@ @@@&m_kindL*Z*xL*Z*~@ @@@@L*Z*e@@,@@K@K@@@K@K@@@K@@@K@K@@@K@ K@@@K@K@ ѡ&m_kindL**L**@ภ.Module_functorL**L**@8.Module_functor-@ @@@Y@@@Z@BB@H@A~  ~  @@@H5dఐ#%paramL**L**@q@@%@@L@L@L@0LLLLLLLL@u|@}@M@@@ఐ$kindM **M **@ @@@@L@L@L@@@:M**@@@@L@L@@א@@K@K@ҐӠ@@K@@@K@K@͐Π@@K@ @@K@K@ɐʠ@@K@&@@K@%K@"Ő@@K@*K@(@ఐ&m_baseMQ**MR**@ @@0@@K@)K@$K@^@M\**M]**@@ J@+J@re@@@@@@a@r@@@ @@@ @@ @ @@ @ @@ -@A @@ y@@@ @Ġ)Parsetree*Pmod_applyM|**M}**@8*Pmod_applyU@@@@:7@@@:8@BC@G@A,-/--X@@@Nࠠ.p_module_expr1 M**M**@@@@@@M@0MMMMMMMM@ g@@@ࠠ.p_module_expr2 M**M*+@@@@@@M@@@@1M*+@@@@@N@@Ġ)Typedtree*Tmod_applyM++ M++!@fࠠ/tt_module_expr1 M++#M++2@@@E@@@M@/@ࠠ/tt_module_expr2 M++4M++C@@@E@@@M@>@@M++EM++F@@K@@N@F@@@)M++G@@*@@N@K@@M**M++H@@? @N@R@@R@Ġ)Parsetree*Pmod_applyM+I+RM+I+f@p.p_module_expr1N+I+hN+I+v@@@mj@i.p_module_expr2N +I+xN +I+@@@fs@@@N+I+@@AU@@N@x@Ġ)Typedtree/Tmod_constraintN++N++@ঠ)Typedtree(mod_descN*++N+++@wĠ)Typedtree*Tmod_applyN4++N5++@z/tt_module_expr1N<++N=++@@@w@t/tt_module_expr2NE++NF+,@@@q@@NK+,NL+,@@@@N@@@@NQ+, @@@@N@@@@NV++NW+, @@F9@@N@N@@@N`+, Na+, @@@@N@@@Nh,,Ni,,@@@@N@@@Np,,Nq,,@@@@N@@@@YNv,, @@@@N@@@N{+I+QN|,!,*@@o @N@@@@@@@A@@M@@@M@@M@@@@ࠠ"m1 ԠN,.,<N,.,>@@@BL@-0NNNNNNNN@j @ @N@@N@@N@@N@@@ఐ.analyse_moduleN,.,AN,.,O@@@@@@@@@@L@4@L@3@L@2@L@1@L@0@L@/%@@ఐ#envN,P,^N,P,a@i@@2@@ఐ3current_module_nameN,b,pN,b,@c@@}?@@ఐy+module_nameN,,N,,@[@@uL@@ภ$NoneN,,N,,@J@@@J@PZ@@ఐk.p_module_expr1N,,O,,@a@@8M@Qi@@ఐK/tt_module_expr1O,,O,,@l@@>M@Rx@@c@@;y@@O,.,8@@@ࠠ"m2 ՠO ,-O!,- @@@CfL@T0OOOOOOOO@@@O8@@@ఐ|.analyse_moduleO1,- O2,-@@@@~@}@{@v@t@mg@L@[@L@Z@L@Y@L@X@L@W@L@V@@ఐ#envOJ--)OK--,@@@)@@ఐ3current_module_nameOW---;OX---N@@@6@@ఐ+module_nameOd-O-]Oe-O-h@۰@@C@@ภ$NoneOp-i-wOq-i-{@J@@@J@wQ@@ఐ۠.p_module_expr2O-|-O-|-@߰@@M@x`@@ఐ/tt_module_expr2O--O--@@@M@yo@@c@@p@@O,-@@,@@K@K@s@@K@K@@@K@@@K@K@@@K@K@@@K@K@š&m_kindO--O--@ภ,Module_applyO--O--@8,Module_apply!@@@@[@@@\@BC@H@A    @@@K)eఐS"m1O--O--@Ű@@S0OOOOOOOO@@@P@@@&m_kindO--O--@@@@@L@L@L@@ఐ蠐"m2P--P -.@@@@&m_kindP-.P-.@ @@@@L@L@L@-@@LP-.@@@@L@L@4@ݐ@@K@K@ؐ٠@@K@@@K@K@ӐԠ@@K@@@K@K@ϐР@@K@@@K@K@ː@@K@K@@ఐ&m_basePW--PX--@"@@6@@K@K@K@u@Pb--Pc-. @@ J@J@,|@@@E@U@@@Ġ)Parsetree/Pmod_constraintPy. .Pz. ..@Rࠠ.p_module_expr2 P. .0P. .>@@@@@@0PPPPPPPP@S@@@ࠠ)p_modtype P. .@P. .I@@@1@@@@@@P. .J@@C@@M@@Ġ)Typedtree/Tmod_constraintP.L.UP.L.n@&ࠠ/tt_module_expr2 P.L.pP.L.@@@H@@@+@ࠠ*tt_modtype P.L.P.L.@@@6@@@8@@P.L.P.L.@@7@@M@@@@P.L.P.L.@@9@@M@H@@@-P.L.@@@@M@M@@P. .P.L.@@C @M@T@@T@@@ࠠ'm_base2 ֠P..P..@@@E&L@0PPPPPPPP@qk@l@Qe_@`@QJD@E@Q?9@:@Q@@@ఐK.analyse_moduleQ..Q..@O@@@M@L@J@E@C@<6@L@@L@@L@@L@@L@@L@%@@ఐѠ#envQ..Q..@@@d2@@ఐР3current_module_nameQ&..Q'..@@@?@@ఐȠ+module_nameQ3./Q4./ @@@L@@ภ$NoneQ?/ /Q@/ /@LV@@@J@Z@@ఐ̠.p_module_expr2QN//-QO//;@a@@M@i@@ఐ/tt_module_expr2Q]/</JQ^/</Y@l@@M@x@@c@@y@@Qd..@@@ࠠ&mtkind נQo/g/uQp/g/{@@@1@@@L@0QrQqQqQrQrQrQrQr@@@Q@@@డ!8analyse_module_type_kind#SigQ/g/~Q/g/@0R@@̠0RРĐ@Р0P@@L@@@L@@@L@A@@L@@@L@@@L@@0O@@L@@0N@@L@@0M@@L@@0L@@L@1F@@L@@L@@L@@L@@L@@L@F@ภ8QL@Q@0Р@0@@M@,@@M@+@@M@*A@@M@)@@M@(@@M@'f@@ఐ#envQ/g/Q/g/@@@2s@@డO$Name&concatQ//Q//@@@@MN@@M@5@MS@@M@4MV@@M@3@M@2@M@1@@ఐ3current_module_nameR//R//@@@@@"??R//R//@@R!//R"//@@Mu@@N@NN@M@@R)//R*//@@M{@@M@C@@ఐ)p_modtypeR8//R9//@I@@0@@M@M@ZM@Y@@ఐ*tt_modtypeRL//RM//@Y@@0@@M@M@\M@[@@ @@@@RX/g/q @@@ࠠ*tt_modtype ؠRc 00Rd 00@@@ @@@nL@^0RfReReRfRfRfRfRf@@@R@@@డi1subst_module_type(Odoc_envR{ 00R| 009@ x@@@$@@L@d@ x@@L@c @@L@b@L@a@L@` @@ఐM#envR 00:R 00=@4@@-@@ఐ蠐*tt_modtypeR 00>R 00H@@@ @@M@oM@sM@rA@@2 @@EB@@R 00 @@డQܠްR 0L0YR 0L0Z@۰@@@۠*@@L@L@L@x@@L@y@L@w0RRRRRRRR@anh@i@R@@@@డ>filter_with_module_constraints+Odoc_global R 0L0@#ref@@@i#@@@i"@z ! !z ! N@@O1@@ 1@@M@~M@M@*@@;@@3+@ఐޠ )filter_module_with_module_type_constraintR 00S 00@@@@@@L@@@@L@8{@@L@@L@@L@D@@ఐ3'm_base2S 00S 00@@@3Q@@ఐà*tt_modtypeS& 00S' 00@[@@@@M@M@M@e@@2 @@8@@K@L@M@m@@S9 0L0V@@ o@,78@@K@K@3&m_typeSJ01SK01 @ఐ*tt_modtypeSS01 ST01@@@)@@L@L@L@@CDC@@K@@@K@K@Ġ=>@@K@K@ʠ89@@K@K@Π{&m_kindS|11&S}11,@ภ1Module_constraintS11/S11@@81Module_constraint@@@@_x@@@`@BE@H@AA  "A  W@@@Ngఐ'm_base2S11BS11I@(@@@&m_kindS11JS11P@ @@@@L@L@L@@ఐI&mtkindS11RS11X@M@@@@L@L@L@@@?S11Y@@@@L@L@@@@K@K@Ԡ@@K@@@K@K@ؠ|}|@@K@@@K@K@ޠxyx@@K@@@K@K@tu@@K@K@@ఐc&m_baseT 00T 00@˰@@@@K@K@K@?@T  00T 1\1g@@3J@J@F@@@G@e@@@@@@ @@+@Ġ)Parsetree.Pmod_structureT$1i1rT%1i1@4ࠠ+p_structure T-1i1T.1i1@@@.@@@0T.T-T-T.T.T.T.T.@@@@@@@@Gy@@M@@Ġ)Typedtree/Tmod_constraintTA11TB11@àঠ)Typedtree(mod_descTN11TO11@Ġ)Typedtree.Tmod_structureTX11TY11@[ࠠ,tt_structure Ta11Tb12@@@b@@@4@@@@@@@M@8@@@Tl11Tm12@@LO@@M@M@@@ࠠ*tt_modtype Tz22T{22@@@@@@M@@T22T22@@@@M@U@@T22!T22"@@@@M@]@@@PT22#@@@@M@b@@T1i1qT2$2-@@f @M@i@@i@@@ࠠ(elements ٠T2^2lT2^2t@@@L@0TTTTTTTT@x@@TSM@N@T<6@7@T@@@ఐޠ1analyse_structureT2^2wT2^2@@@@@@@@@@L@@L@@L@@L@@L@@L@"@@ఐ#envT2^2T2^2@u@@!/@@ఐ"-complete_nameT2^2T2^2@˰@@P6@@J@ ?@@ఐ)pos_startT2^2T2^2@l@@M@N@@ఐ'pos_endU2^2U2^2@9@@ M@]@@ఐ䠐+p_structureU2^2U2^2@e@@@@J@m@@ఐ,tt_structureU!2^2U"2^2@s@@M@|@@j@@}@@U(2^2h@@@ࠠ8included_modules_from_tt ڠU323 U423%@@@T7@@@&@@@%L@0U:U9U9U:U:U:U:U:@@@US@@@ఐY;tt_get_included_module_listUL23(UM23C@o@@@O@@L@pS@@L@@@L@@L@@@ఐ,tt_structureUe23DUf23P@@@j@@M@'M@)M@(0@@$ @@81@@Uq23  @@@ࠠ)elements2 ۠U|3T3bU}3T3k@@@Uq@@@?L@+0UUUUUUUU@GXR@S@U@@@ఐڠ>replace_dummy_included_modulesU3T3nU3T3@T@@@IĠ@@L@0@@L@3@I͠@@L@2@@L@1U'@@L@/@L@.@L@-&@@ఐ(elementsU3T3U3T3@v@@3@@ఐ8included_modules_from_ttU3T3U3T3@=@@I@@M@B@@M@AM@HM@FK@@?@@PL@@U3T3^@@,А@@K@K@~̡&m_typeU33U33@డ1subst_module_type(Odoc_envU33U33@ @@@@@L@Y@ @@L@X5@@L@W@L@V@L@U0UUUUUUUU@}@@V@@@@ఐǠ#envV33V33@@@Z@@ఐ*tt_modtypeV33V34@l@@ @@M@dM@hM@g%@@6 @@@@L@SL@jM@c-@@@K@@@K@K@@@K@K@  @@K@K@L&m_kindVM4 4VN4 4@ภ-Module_structVU4 4 VV4 4-@ఐ㠐)elements2V_4 4.V`4 47@^@@T@@L@wL@zL@yi@@ @@l@@L@pL@vo@-.@@K@K@()(@@K@@@K@K@#$#@@K@@@K@K@ @@K@@@K@K@@@K@K@@ఐ &m_baseV33V33@r@@@@K@K@K@}@V33V4:4E@@J@J@@@@4@I@@{@@@@Ġ)Parsetree+Pmod_unpackV!4G4PV!4G4e@8+Pmod_unpack@@@@:;@AE@G@Avw@@@Pࠠ%p_exp V!4G4fV!4G4k@@@@@@0VVVVVVVV@@@@@@@@J*@@M@@Ġ)Typedtree+Tmod_unpackV"4m4vV"4m4@eࠠ&_t_exp V"4m4V"4m4@@@P@@@ @ࠠ*tt_modtype W"4m4W "4m4@@@u@@@ *@@@W"4m4@@V@@M@/@@W!4G4OW"4m4@@3 @M@6@@6@@@ࠠ$code ܠW$#44W%#44@@@&stringO@@@L@0W*W)W)W*W*W*W*W*@YS@T@WE>8@9@WG3-@.@WI@@@@ࠠ#loc ݠWC$44WD$44@@@J@@@M@@ఐ-p_module_exprWT$44WU$44@@@(@)Parsetree(pmod_locW]$44W^$44@J @@1@@Wa$44@@@ࠠ'loc_end ޠWl%45Wm%45 @@@ @@@M@0WoWnWnWoWoWoWoWo@F71@2@W@@@ఐ@#locW%45W%45@@@ @@N@@@(Location'loc_endW%45W%45"@ @@ @@M@@%@&Lexing(pos_cnumW%45#W%452@ @@1.@@W%45@@@ࠠ'exp_loc ߠW&565FW&565M@@@n@@@M@0WWWWWWWW@CPJ@K@W@@@ఐ堐%p_expW&565PW&565U@@@@@M@@@)Parsetree(pexp_locW&565VW&565h@֓@@!@@W&565B@@@ࠠ+exp_loc_end W'5l5|W'5l5@@@ +@@@M@0WWWWWWWW@3@:@;@W@@@ఐI'exp_locW'5l5W'5l5@@@ @@N@@@(Location'loc_endX'5l5X'5l5@ @@ d@@M@@%@&Lexing(pos_cnumX'5l5X'5l5@ `@@1.@@X'5l5x@@@ࠠ!s X"(55X#(55@@@'F@@@M@0X%X$X$X%X%X%X%X%@CPJ@K@X>@@@ఐ!T2get_string_of_fileX7(55X8(55@ @@@'g@@M@@'d@@M@'c@@M@@M@@M@@@ఐq+exp_loc_endXQ(55XR(55@'@@'@@N@N@N@1@@ఐ'loc_endXe(55Xf(55@@@'@@N@N@N@E@@9 @@IF@@Xq(55 @@డWA&Printf'sprintfX~)56X)56@@&Stdlib&format!a@4$unitF@@@Yn@@@Z@@@X@@W@*printf.mli@@.Stdlib__PrintfC$#@@@!@&stringO@@L@L@@L@L@$@@L@@@L@@@L@@L@0XXXXXXXX@@@X@@@@ภ8CamlinternalFormatBasics&FormatX)56X)56A8&Format8CamlinternalFormatBasics'format6!a@!b@!c@!d@!e@!f@@@@@'#fmt$ @@@W@@@@B@@A@A$}$}?$%@@@uk((val ...@@@@M@M@M@@ภ&String8&Stringg!x@!b@!c@!d@!e@!f@@@@!a@@'padding)@@@@@@@@@0,($ @@@@BBAYAAZ|@@@bภ*No_padding8*No_padding#!a@(@@@A@@@@ABAAee@@@j@@3N@@@M@M@@ภ-End_of_format8-End_of_formatϠ!f@!b@!c@!e@@@@a@@@@AYAA.../!@@@y@@7_@@M@M@M@M@FL@L@L@@@M@M@$@@@2@ZN@@@M@M@ L@@>@fN@Š"@@M@M@X@*(val ...%sO@O@@@M@M@&M@%d@@VU@@8@@M@M@m@@ఐ!sZ3)56Z4)56@w@@M@:|@@@@L@~@@@@%@@T@h @@@ @@@ @@@@Z@#44 @@@ࠠ$name ZK,66ZL,66@@@!t@@@]L@<0ZQZPZPZQZQZQZQZQ@(82@3@Zj@@@ఐ[*tt_modtypeZc-66Zd-66@.@@@@@>0ZdZcZcZdZdZdZdZd@@@@Ġ)Mty_identZt.66Zu.66@8)Mty_ident@2!t@@@ p@A@@D@A8BMM8BMM@@@:qࠠ!p Z.66Z.66@@@@@@C(@@@@@@@O@D,@@,@@డ 5full_module_type_name(Odoc_envZ/66Z/67@@"J@@@Z@V!t@@@Za@@@Z@@Z@@Z@ j j@@"WL@@@"_@@M@O@@@M@Ns@@M@M@M@L@M@K0ZZZZZZZZ@qA;@<@Z@@@@ఐ#envZ/67Z/67@s@@@@డX$Name)from_pathZ/67Z/67"@@@@@@N@hV>@@N@g@N@f+@@ఐp!pZ/67#Z/67$@5@@@@O@sO@wO@v?@@[/67[/67%@@VX@@N@rE@@k@@L@IH@@[07&74[07&75@@@@O@F@@@@ [07&7:@@[ 07&79[!07&7;@@L@L@@@A['-66@@@@[),66 @@@ࠠ%alias [427I7W[527I7\@@@V1module_type_alias@@@L@0[9[8[8[9[9[9[9[9@@@[R@@@ຠ,(mta_name@@@xV!t@@@u@@ ,*mta_module d@@@w@@@vAA @A`VaVE@@Vv@AdUeU@@Vu(mta_name[h27I7a[i27I7i@ఐ&$name[q27I7l[r27I7p@3@@$@@M@9@'*mta_module[}27I7s[~27I7}@ภ$None[27I7[27I7@V@@@7(@@M@@@M@M@S@@@[27I7_[27I7@@]V@@[27I7S@@,@@K@K@ߠ&m_type[477[477@డ!1subst_module_type(Odoc_env[477[477@@@@#]@@L@@@@L@@@L@@L@@L@0[[[[[[[[@@@[@@@@ఐ #env[477[477@ q@@@@ఐנ*tt_modtype[477[477@@@@@M@M@M@%@@6 @@@@L@L@M@-@אؠ@@K@@@K@K@ѐ@@K@K@̐@@K@K@&m_kind\577\577@ภ-Module_unpack\577\578@8-Module_unpackk@@@@b@@@c@BG@H@A+C  ,C  @@@Wtiఐ$code\2578\3578 @ܰ@@@@L@L@L@x@ఐ%alias\D578 \E578@@@@@L@L@L@@@7\O578@@Q@@L@L@@@@K@K@  @@K@@@K@K@ @@K@@@K@K@@@K@ @@K@K@@@K@ K@ @ఐ&m_base\377\377@W@@k@@K@ K@K@@\377\688!@@J@J@@ @@`@v@@I@`@@q@ࠠ*_parsetree \88#8,\88#86@@@O@@@~@ࠠ*_typedtree \88#88\88#8B@@@@@@@@\88#8+\88#8C@@ @M@@@@@డ[%raise\98G8Q\98G8V@6@@@6@@K@J@K@@K@0\\\\\\\\@60@1@\+%@&@\@@@@ภ'Failure\98G8X\98G8_@ 4analyse_module: parsetree and typedtree don't match.\98G8a\98G8@@\98G8`\98G8@@@@L@L@ L@$@@]98G8W]98G8@@6C@@L@L@,@@9@@/-@@A]  @@/J@Z0]]]]]]]]@@@@ @@j@~@@ @ .@@ H@ \@@ @ @@ @ @@  @!@@ !L@@A!jA@!J@WJ@T0]]]]]]]]@!g@@@@A!A@!J@QJ@N0]]]]]]]]@!@@@@A! A@!J@KJ@H0]!] ] ]!]!]!]!]!@!@@@@A!&A@!J@EJ@B0]']&]&]']']']']'@!@@@@A!,A@!J@?J@<0]-],],]-]-]-]-]-@!@@@@A!2A@@~!@@ 0]1]0]0]1]1]1]1]1@@@@[ I Analysis of a [Parsetree.module_expr] and a name to return a [t_module].]B]Cf@@@@@@@]EglD@@?E@Ԡ@ࠠ2analyse_typed_tree ]R;88]S;88@@@@&stringO@@@J@ @,q@@@ J@ @)Parsetree)structure@@@ J@ @[@@@ J@ \@@@J@ @@ J@ @@ J@ @@ J@ @@ J@ "8@@+source_file ];88];88@@@;0]]]]]]]]@oG];88]T==@@@@@@*input_file ];88];88@@@B0]]]]]]]]@ Q@@]@@@@@)parsetree @]<88]<88@@G@@@ 0]]]]]]]]@ X@@]@@@  @ гS)ParsetreeS]<88]<88@@\@@@ @@]<88]<88@@@c@@@)typedtree @]<88]<89@@a@@@ 0]]]]]]]]@)7.@1@]@@@  @ гm)typedtree]<89]<89 @@u@@@ @@]<88]<89@@@|@@@ࠠ.tree_structure ^=99^=99+@@@\}@@@ K@ 0^ ^ ^ ^ ^ ^ ^ ^ @0>5@8@^%@@@@^=99-^=99.@@\@@ K@ @@^!=99^"=99/@@@@ K@ @ఐU)typedtree^.=992^/=99;@@@  @@^2=99@@ఐ',prepare_file^>>9?9F^?>9?9R@&@@@-S@@K@ @-R@@K@ -Q@@K@ @K@ @K@ 0^I^H^H^I^I^I^I^I@>MG@H@^b@@@@ఐϠ+source_file^\>9?9S^]>9?9^@@@@@ఐɠ*input_file^i>9?9_^j>9?9i@@@@@/@@C@@J@ K@ $@@ࠠ(mod_name ^|@99^}@99@@@&stringO@@@K@ 0^^^^^^^^@9@@@డ\1&String0capitalize_ascii^@99^@99@@@@@@@@@@@*string.mli' ' ' '3@@.Stdlib__String]@@@@@K@+@@K@@K@(@@డ](Filename(basename^@99^@99@@h@@@vl@@@u@@t@,filename.mlijj@@0Stdlib__FilenameL@@@@@L@@@L@@L@S@@డ](Filename.chop_extension^@99^@99@@@@@s@@@r@@q@*e+e6@@)K@@@@@M@@@M@@M@{@@ఐ+source_file_ @99_ @9:@e@@@@_@99_@9:@@S@@M@M@N@@@_@99_@9:@@@@L@L@M@@@ @@@@_%@99 @@@ࠠ#len _3A: :_4A: :@@@.@@@K@0_6_5_5_6_6_6_6_6@@@_O @@@ࠠ(info_opt _FA: :_GA: :!@@@...@@@@@@K@@@! @@!@@@డ.(preamble#Sig_dA: :$_eA: :0@@.^@@@X@.]@@@X@@.\.X.U@@@X@@X@.T.e@@@X.Q@@@X.P;@@@X@@@X@@X@@X@@X@@X@@X@.H@.E*)@@@.@@K@@.@@K@@@j@@K@ K@,@@K@@K@@. @@K@.|@@K@Ԡ.{f@@K@@@K@@K@@K@@K@@K@@K@0________@}@@@@డ^堐_A: :1_A: :2@@@@.@@L@L@L@@@L@@L@@@ఐ)<)file_name_A: :;@(@@@@M@M@M@@@% @@@@డ^_A: :<_A: :=@@@@.@@L@L@L@ @@L@ @L@ @@ఐ)̠$file`A: :A@)^@@/@@M@M@M@@@% @@@@@!x  `&B:B:R`'B:B:S@@@q@@ఐ!x`2B:B:W`3B:B:X@@ @`F @@0`2`1`1`2`2`2`2`2@@@@)Parsetree(pstr_loc`?B:B:Y`@B:B:k@@@@@L@#L@"@@A`HB:B:M`IB:B:l@@@@@L@@L@L@%@@ఐ)parsetree`[B:B:m`\B:B:v@y@@@@L@'@@@@K@)@@`eA: : @@@ࠠ(elements à`pD::`qD::@@@T@@@X@@@WK@-0`w`v`v`w`w`w`w`w@CPJ@K@` ?9@:@` @@@ఐ1analyse_structure`D::`D::@d@@@(5@@K@<@[@@K@;@84@@K@:@/@@K@9@@@K@8@@@K@7Tڠ@@K@6@@K@5@K@4@K@3@K@2@K@1@K@0@K@/8@@డ&%empty(Odoc_env`D::`D::@(h@@@Zz@&W&W@@(jA  @@(t@@L@^L@`L@_W@@ఐa(mod_name`D::`D::@@@\2@@L@dL@ci@@ఐ#len`D::`D::@r@@8@@L@\L@jL@i}@@డ^&String&lengthaD::a D::@@@@@]#intA@@@\@@[.%string_lengthAA @@@|v}v @@{F@@@@@L@n@@L@m@L@l@@డ_UWa4D:;a5D:;@T@@@T3@@M@uM@M@x@@M@y@M@w@@ఐ+ $fileaND:;@*@@o@@N@~N@N@@@% @@@@aZD::a[D:;@@0@@L@[L@M@t@@ఐ)parsetreeamD:;anD:;@@@r@@L@ZL@L@@@ఐz.tree_structureaD:;aD:;@3@@@@L@YL@L@@@ @@@@aD:: @@@ࠠ8included_modules_from_tt ĠaE;#;.aE;#;F@@@@@@@@@K@0aaaaaaaa@):4@5@a @@@ఐ;tt_get_included_module_listaE;#;IaE;#;d@԰@@@@@K@ՠ@@K@@@K@@K@@@ఐà.tree_structureaE;#;eaE;#;s@|@@@@L@L@L@0@@$ @@81@@aE;#;* @@@ࠠ)elements2 ŠaF;w;aF;w;@@@af%@@@@@@K@0aaaaaaaa@J[U@V@b@@@ఐB>replace_dummy_included_modulesaF;w;aF;w;@@@@V,>@@K@@@K@@V5@@K@@@K@a@@K@@K@@K@&@@ఐ(elementsbF;w;bF;w;@y@@VQ>@@L@L@L@;@@ఐ8included_modules_from_ttb2F;w;b3F;w;@E@@Vf8@@L@@@L@L@L@S@@G@@[T@@bBF;w;~@@@ࠠ$kind ƠbMG;;bNG;;@@@Q@@@K@0bPbObObPbPbPbPbP@izt@u@bi@@@ภ-Module_structb_G;;b`G;;@ఐ)elements2biG;;bjG;;@@@@@K@@@K@K@K@"@@@@w@@@&@@b|G;;@@,z&m_namebI<<bI<<@ఐ(mod_namebI<<bI<<"@T@@@@K@K@0bbbbbbbb@CPJ@K@b@@@&m_typebJ<%<.bJ<%<4@ภ%Types-Mty_signaturebJ<%<7bJ<%@@L@L@L@@@% @@@-&m_kindc.N<<c/N<<@ఐꠐ$kindc7N<<c8N<<@@@=@@K@!K@#K@"@%m_loccGO<<cHO<<@ຠ)(loc_implcRO<<cSO<<@ภ$SomecZO<<c[O<<@^డ"'in_file(LocationciO<<cjO<<@@&stringO@@@@@@@@@ll@@F@@@@@L@>@@L@=@L@<@@డbUcO<<cO<<@@@@-@@M@IM@YM@N@@M@O@M@M@@ఐ-)file_namecO<=@,@@ʠ@@N@TN@WN@U@@% @@@@cO<<cO<=@@E@@L@H#@@a@@@@L@1@@L@0L@7-@)loc_intercO<= cO<=@ภ$NonecO<=cO<=@^@@@@@L@j@@L@iL@pG@@@cO<<cO<=@@@@K@(K@sO@*m_top_depscP==(cP==2@ภX$cP==5cP==7@X#@@@@@K@{@@K@zK@h@&m_codedQ=:=CdQ=:=I@డb24dQ=:=PdQ=:=Q@1@@@1;@@K@K@K@@@K@@K@@@డ)keep_code+Odoc_globald.Q=:=f@@@O@@L@L@L@@@( @@ @ภ$Somed?Q=:=ld@Q=:=p@^డckmdJQ=:=qdKQ=:=r@j@@@j@@K@K@K@K@@@K@ @K@@@ఐ.$$filedfQ=:=v@-@@@@L@L@L@@@' @@@@3 @@@@K@K@@ภ$NonedQ=:=|dQ=:=@_@@@K@@dQ=:=LdQ=:=@@@+m_code_intfdR==dR==@ภ$NonedR==dR==@_@@@)(@@K@@@K@K@ @$+m_text_onlydS==dS==@ภXưdS==dS==@X@@@3@@K@K@@@@dH;<@@6J@ #@?"@@f@z#@@@$@@@1%@@B@Z&@@@'@@9@(@@ :@)@@ @@A*A@KJ@ 0dddddddd@@@@@A.A@]J@ 0dddddddd@@@@@A'2A@jJ@ 0dddddddd@&@@@@A>6A@@xp@@0dddddddd@=@@@@;@;:@)@4U@0@..e@@..'@.<-@--@-->@-i,@,,D@,%u@%%f@@@6@v.@@^n@Å_@@D@@@@ZX@'@@US@@@e@@0eeeeeeee@@@e UWeU==@=0e e e e e e e e @1@@@e%/@440eeeeeeee@4@@@@e @ @@ccA@b@5544@@4@@ e2@@@0eeeeeeee@44@44瑠4@00@00@00@00@00@00@0b0a@0B0A@00@//@//@//@//@/V/U@/3/2@@@/.@@/.@..X@.r.@.(-@--I@-t,@- %@&*%@bV@mG@@@@@@|@-@R@@@@M@?=@@/u@@@g\@@w@&stringO@@@'@@@@&@)Parsetree)structure@@@%@)typedtree @@@$+Odoc_module(t_module@@@#@@"@@!@@ @@@,odoc_ast.mlicd)@@(Odoc_astU5@)Typedtree/class_structure@@@@;@@@*expression@@@@@@@@U<B Va@@S7@/class_structure@@@@V@@@%Types)type_expr@@@@@@@@<P$=Q@@@;R<@:/class_structure@@@@#intA@@@H*class_expr@@@@@@@@YJZKT@@XQ?@#tab @@@@@@@:)type_expr@@@@@@@@tEuE@@sPA,@*tab_values @@@@@@@'pattern@@@*expression@@@@@@@@@@@  @ .@@OA@@@@@@@@@6class_type_declaration@@@@@@@@{  {  "@@NCC@X@@@@@@@*class_expr@@@$listI)type_expr@@@@@@@@@@@@@v  v  @@MFo@@@@@@@@0type_declaration@@@@@@@@q  q  @@KH@@@@@&@@@.type_extension@@@@@@@@ l   l  @@ JI@@@@ @>@@@ 7module_type_declaration@@@ @@@@@"gou#go@@!IJ@@@@@V@@@)+module_expr@@@@@ @@ @:blr;bl@@9HK@v<.structure_item@@@@@@@@@@@@@@@@@X]ouY]o@@WG@ H************************************************************************gA@@g A@L@ H gBMMgBM@ H OCaml gCgC@ H gDgD3@ H Maxence Guesdon, projet Cristal, INRIA Rocquencourt g E44g!E4@ H g&Fg'F@ H Copyright 2001 Institut National de Recherche en Informatique et g,Gg-G@ H en Automatique. g2Hg3Hg@ H g8Ihhg9Ih@ H All rights reserved. This file is distributed under the terms of g>Jg?J@ H the GNU Lesser General Public License version 2.1, with the gDKgEKN@ H special exception on linking described in the file LICENSE. gJLOOgKLO@ H gPMgQM@ H************************************************************************gVNgWN5@ $* Analysis of implementation files. f * This module is used to search for structure items by name in a Typedtree.structure. One function creates two hash tables, which can then be used to search for elements. Class elements do not use tables. 7< " FIXME when we will handle tuples gbv0Wgcv0}@ S* This variable is used to load a file as a string and retrieve characters from it.0֠ !* The name of the analysed file. 0 * 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.0O [* This function loads the given file in the file global variable and sets file_name.0 4* The function used to get the comments in a class. / 5* The function used to get the comments in a module. /4 * This function takes a parameter pattern and builds the corresponding [parameter] structure. The f_desc function is used to retrieve a parameter description, if any, from a parameter name. (S 4 we give a name to the parameter only if it is unit g}$$g~$$@ ) a () argument, it never has description g% %,g% %Y@ 2 implicit pattern matching -> anonymous parameter g&#&/g&#&e@ * Analysis of the parameter of a function. Return a list of t_parameter created from the (pattern, expression) structures encountered.  I This case means we have a 'function' without pattern, that's impossible g(U(_g(U(@ H implicit pattern matching -> anonymous parameter and no more parameter g):)Dg):)@1 FIXME : label ? g ))g ))@ O For optional parameters with a default value, a special treatment is required g,+,+5g,+,+@ we look if the name of the parameter we just add is "*opt*", which means that there is a let param_name = ... in ... just right now g-++g.+,'@ * continue if the body is still a function gF//gF/0*@ $ something else ; no more parameter gK01gK01,@ * Analysis of a Tstr_value from the typedtree. Create and return a list of [t_value]. @raise Failure if an error occurs.Ԡ; a new function is defined gT22gT22@2 create the value g_44g_44@8 a new value is defined gm66gm67@= new identifiers are defined g::g::@ K FIXME : by now we don't accept to have global variables defined in tuples g::g:;%@ ' something else, we don't care ? FIXME g;C;Ng;C;y@ * This function takes a Typedtree.class_expr and returns a string which can stand for the class name. The name can be "object ... end" if the class expression is not an ident or a class constraint or a class apply.   ( match clexp.Typedtree.cl_desc with Tclass_ident _ -> prerr_endline "Tclass_ident" | Tclass_structure _ -> prerr_endline "Tclass_structure" | Tclass_fun _ -> prerr_endline "Tclass_fun" | Tclass_apply _ -> prerr_endline "Tclass_apply" | Tclass_let _ -> prerr_endline "Tclass_let" | Tclass_constraint _ -> prerr_endline "Tclass_constraint" ); g<<g>2>4@ | Typedtree.Tclass_fun (_, _, class_expr, _) -> tt_name_of_class_expr class_expr | Typedtree.Tclass_let (_,_,_, class_expr) -> tt_name_of_class_expr class_expr g?"?"g??@ * Analysis of a method expression to get the method parameters. @param first indicates if we're analysing the method for the first time ; in that case we must not keep the first parameter, which is "self-*", the object itself.  4 it is not a function since there are no parameters gB BgB BR@< we can't get here normally gBSBbgBSB@ / impossible case, it has already been filtered hC=CPhC=C@ 2 implicit pattern matching -> anonymous parameter hCChCD+@ M Note : We can't match this pattern if it is the first call to the function. h D,D?hD,D@ W if this is the first call to the function, this is the first parameter and we skip it hEEhEF;@ P For optional parameters with a default value, a special treatment is required. hGzGhGzG@ We look if the name of the parameter we just add is "*opt*", which means that there is a let param_name = ... in ... just right now. hGGh HGH@ 8 no *opt* parameter, we add the parameter then continue h%M-MIh&M-M@3 no more parameter h+NO h,NO @ * Analysis of a [Parsetree.class_struture] and a [Typedtree.class_structure] to get a couple (inherited classes, class elements). ̠ 4 ?!? : not an arrow type ! return the original type h4L__h5L__@ " update the parameter description h:ecc h;eccF@ 4 ?!? : not an arrow type ! return the original type h@vf~fhAvf~f@ " update the parameter description hFj0j:hGj0j`@5 don't give a $*%@ ! hLkDkPhMkDki@ r* Analysis of a [Parsetree.class_expr] and a [Typedtree.class_expr] to get a pair (class parameters, class kind). ʠ . we try to get the name from the environment. hUo;oKhVo;o}@ V FIXME : Unfortunately, we don't have a Tclass_ident :-( even for a class tutu = toto h[o~oh\o~o@ t Here, type parameters are not present as Types.type_expr, however they can be found in the class_type hap"p,hbpip@ / cltyp is the class type for [type_exp_list] p hgq1qAhhq1qt@ S we need the class signature to get the type of methods in analyse_class_structure hms"s,hns"s@ we check that this is not an optional parameter with a default value. In this case, we look for the good parameter pattern hsvvhtwwm@ $ there must be a Tcl_let just after hyx5xGhzx5xo@. strange case h{{-h{{?@ 1 we create the parameter and add it to the class h{@{Uh{@{@ C no optional parameter with default value, we create the parameter h{| h{|R@ we want an ident, or else the class applied will appear in the form object ... end, because if the class applied has no name, the code is kinda ugly, isn't it ? h~~h#@> FIXME : obtain the full name hh@ V FIXME : Unfortunately, we don't have a Tclass_ident :-( even for a class tutu = toto h.>h.@ . we try to get the name from the environment. hhN@ we don't care about these lets h$h$@ f FIXME analysis of the class type ? We don't have all the infos. cf. Odoc_sig.analyse_class_type_kind h/q}h/q@ Sig.analyse_class_type_kind env "" p_class_type2.Parsetree.pcty_loc.Location.loc_start.Lexing.pos_cnum p_class_type2 tt_class_expr2.Typedtree.cl_type h1h7@ a* Analysis of a [Parsetree.class_declaration] and a [Typedtree.class_expr] to return a [t_class].V * Get a name from a module expression, or "struct ... end" if the module expression is not an ident of a constraint on an ident. ۠ J* Get the list of included modules in a module structure of a typed tree.  B FIXME : search within modules and module types, with which env ? hoho\@ * This function takes a [module element list] of a module and replaces the "dummy" included modules with the ones found in typed tree structure of the module.  * This function removes the elements of the module which does not belong to the given module type, if the module type is expanded and the module has a "structure" kind.  * This function removes the elements of the module type which does not belong to the given module type, if the module type is expanded and the module type has a "structure" kind.  # FIXME: type details can be hidden h`rh`@ R* Analysis of a parse tree structure with a typed tree, to return module elements.Ԡ ]* Analysis of a parse tree structure item to obtain a new environment and a list of elements.-, don't care h$BLh$B\@ + of rec_flag * (pattern * expression) list h* h* F@ For each value, look for the value name, then look in the typedtree for the corresponding information, at last analyse this information to build the value h+GQh- @ " FIXME when we will handle tuples h1h1@ ; we already have the optional comment for the first value. hC/hCn@? of string * value_description hiXdhiX@ % of (string * type_declaration) list ii@ 6 the comment for the first type was already retrieved i iři i@ 4 we get the extension declaration in the typed tree ii$@< a new exception is defined i:+5i:+U@ 4 we get the exception declaration in the typed tree i<i<@9 of string * module_expr i!ri"r@ N FIXME : can this be Tmty_ident? In this case, we wouldn't have the signature i'Xii(X@ R FIXME Here problem: no link with module types in module constraints i-i.#H@ 6 the comment for the first type was already retrieved i3i4$@ 6 the comment for the first type was already retrieved i9Ui:U@ N FIXME : can this be Tmty_ident? In this case, we wouldn't have the signature i?i@a@ , FIXME : extend the environment after open? iE yiF y@ ' we start by extending the environment iKiL@ ' we start by extending the environment iQ@ 8 BiR@ 8 m@ we add a dummy included module which will be replaced by a correct one at the end of the module analysis, to use the Path.t of the included modules in the typdtree. iWy;EiX{ @ + FIXME: extend the environment? With what? i]i^@ J* Analysis of a [Parsetree.module_expr] and a name to return a [t_module]. ! + FIXME : Odoc_env.subst_module_type env ? ifig@ 8 code is set by the caller, after the module is created il/Iim/@ ' we must complete the included modules ir""is""@0Name.concat "__"ix((iy()@4 TODO: FIX THIS __ i~))i))5@> needed for recursive modules i212;i212]@ ' we must complete the included modules i22i22@ R let name = Odoc_env.full_module_type_name env (Name.from_path (fst pkg_type)) in i+6+65i+6+6@ ' We create the t_module for this file. i?9k9ri?9k9@ ' we must complete the included modules iC:z:iC:z:@@)../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"-ciŐi 3/home/barsac/ci/builds/workspace/bootstrap/ocamldoc )('&%$#"! @0{wZL?9@0iiiiiiii@i@@iސ0{EX P,0>[3[V!t5Build_path_prefix_map0 5 ttY8CamlinternalFormatBasics0cEXygc 7پI{YG)Longident0{C 3C$Misc0KH(1Xk5o\j00IFF8Yʛk~Ägڐ0B=1B kKF(Odoc_env0OGy(;@W#栠g0ǕF/!LѠh0^ z $G:A #0=$Vq(peU렠 03e)dj)Odoc_misc0+[۶r0Jg0Vj>S q)Odoc_name07k纤᮵o?hz0OTQ͓5ų#à:0q$Fe(-7hQ0Ig@;sDphX*Odoc_types0qТ4chr0](L8.ђH+Outcometree0xHU ͧTƠ)Parsetree03p雲Ҳ$$Path0"nA_8K 1,07<}׎O(2)Primitive0.>}7Fmd*ՠ%Shape0-#\wz5&Stdlib0>,W:(-Stdlib__Array0Q!3͒.Stdlib__Buffer0'ON͋[h#ڗA.Stdlib__Digest0@~8x2.Stdlib__Either0 }rCT0J){9)0Stdlib__Filename0YẒZР.Stdlib__Format0=z+.m׸/Stdlib__Hashtbl0!z9ϸ@`VǠ+Stdlib__Int0FK^N3g,Stdlib__Lazy0'rruSZY.Stdlib__Lexing0zsc\ZoQ,Stdlib__List0E &xa+Stdlib__Map0ҭfȨ؜ׇ0.Stdlib__Option04BotԞ$.Stdlib__Printf0=iW1jfSW<+Stdlib__Seq0yt\eǟ&Q,}+Stdlib__Set0PSVl8 ;.Stdlib__String0L%BWx:6+Stdlib__Sys0Xn*T?n -Stdlib__Uchar0 |K?bޣ ˠ#Str0 鑁?Fzp 3%Subst00gDQ,Wp .Type_immediacy0Xp 'i~0BqW* hi0AF3Ai4(Warnings0Ӷ.5S6V@@Ao4L4@dfn@ QT}h44ϰ::߰:=M@9<34"@@2i3@oɔOP@gg@@@PR@@JLP@jm@44m@K@36++ްFH @@$3 3NO7@`Z 3{3@@=IAnM-NH@HKE@;笰ii@@B@DFT@F.FRye!ff@H3A\E@+2հLFMa@@g[g^@@@Pk@@;B;@@ @5@@A@AhB:˓@hAh3@@E4@A@@A@=|@@ABCK|@H6@@He@F@@AN@Mj@@=@;O@@ABDP@OY@@O@Nj@@F@E1@@AL@KU@@G3@F|@@ABCgAg@@gtAg4@@S@P@@ABDE@BiAi@@C