Caml1999I031*Odoc_valueӠ$NameFA)Odoc_name@-odoc_value.mlRR@@@@'t_valueG8@@(val_name!@!t@@@XX@@#C(val_info4A&optionJ*Odoc_types$info@@@@@@,Y-Y/@@:D(val_type@%Types)type_expr@@@߰cBO@@Ш@гF't_valuecBRcBY@@N0@]8@@@A@@@@@%"@@@@@@U@E@ @QN@@;e@@Ш@гC$boolee@@K@@N@E@ @J@FFAf@@Ш@гI$bool"f#f@@Q(@@T@E@ +@P@@A@LI@LK@0%%%%%%%%@+@@A((t_methodD2j!3j)@@8@@)met_value@@@@ ?k.2@k.G@^ V a method has almost all the same information as a value Lk.HMly@@@@@@@dO+met_private@*@@@ XmYm@@pP+met_virtual@6@@@ dnen@@|Q@@A@@@@@hjio@ # Representation of a class method. uivi@@@@@@@@@N@CC>}k.;@@Ш@гF't_valuek.>k.E@@N0@]8@@@A@@@@@%"@@@@@@U@F@ @QN@@;m@@Ш@гC$boolmm@@K@@N@F@ @J@FFAn@@Ш@гI$boolnn@@Q(@@T@F@ +@P@@A@LI@LK@0@+@@ǐ+ Functions qq@@@@@@0@<@@@ࠠuLL~  -@@@@@@$nameuLouLs@@@;0@ H@@6S@@@@ఐ)!v,vv~-vv@@@W0,,,,,,,,@P@@HT@@@(val_info7vv8vv@,`@@@ AA,@@@A@,@B@A@,@C@A@,AD@A@, ~AE@Au@r,o nAF@Ah@e@A@ @@Ơ@@@ @@@ @Ġ$NoneVwWw@8kӐ@@T@@@@AA@Ai@@@@@@ߠ@@H@ $@@H@ #0bbbbbbbb@6@@@ @@@ภ$Nonelwmw@@@@E@ 0 @Ġ$Some{x|x@8%@A@AA@A@@ࠠ!ixx@@@@@@ +]@@@@@ @@H@ -@@H@ ,e@@e@@@ࠠ!tzz@@@@@G@ 60@{)#@$@U@@@డ$List%assoczz@@!a@ @$listI!b@ @@$@@@#@@"@@!@(list.mlis00s00@@,Stdlib__Listp! @@@E@@ CG@@G@@@G@@G@@G@@@@ఐݠ$namezz@İ@@M@@ఐ|!izz@Y@@$info@@H@@c@*Odoc_types(i_paramszz@,(i_params@@@$listI+%param@@@@@@@G,,&i_desc&optionJ:@@@@@@@@ @A.odoc_types.mliT R VT R k@@>p,)i_authors# Y@@@@@@@A@AU  U  @@Mq,)i_version2 h@@@@@@@B,@AV   V  @@\r,&i_seesA>g#see@@@@@@@C<@A/W0W0@@ls,'i_sinceQ?@@@@@@@DK@A>XPT?XPl@@{t,(i_before`]@@@Ѡ@@@@@@@@@Ea@ATYUY@@u,,i_deprecatedvd@@@@@@@Fo@AbZcZ @@v,3i_raised_exceptions0raised_exception@@@@@@@H@Ar\s\@@x,.i_return_value@@@@@@@I@A]]@@y,(i_custom@@@ݠ@@@@@@@@@J@A^48^4Y@@z@A[CG[C]@@w@@@@@@H@H@H@4@@%@@5@@z@@ภ$Some{{@kఐP!t{{@P@Q@ V@@0@M[@@@@@@  E@@@F@ @ @@V@Ġ)Not_found}  }  @8)Not_found#exnG@@@@@@&Stdlib A@A&_none_@@A@@I@@@@p@@I@u@@ภ$None$~  )@@@@>E@E@E@@@-y@@E@ 5@@A1vvx#@@FE@ @@A&A@WE@ 044444444@@@@@A2*A@@c]@@088888888@1@@@Y Y Returns the text associated to the given parameter name in the given value, or None. GsHt)K@@@@@@@<@<;@@ࠠ@@H@374@@H@2@@H@1@H@0@H@/$@@ఐà!v6C  7C  @@@1@@:C  ;C  @@@Z@@G@HSP@@G@G@@G@F@G@E@@@ఐ!pRC  @I@@L@@@@F@O@@AA@@@@P0WWWWWWWW@@@@@@డ4$List$itergE  hE  @@@!a@ @@@`@@_@@@@^@@@]@@\@@[@EEEo@@S@@@@@@E@sE@V@@E@X@E@W@ @@E@U4@@E@T@E@S@E@R0@@@Y@@@@ఐ!fE  E  @@@@@@F@m@@F@l@F@k@@ఐL!vE  E  @@@f(@.val_parametersE  H@ I@@TF@@F@dF@uF@r6@@jR@@n7@S@@qE@ 1@@A^VA@@{v@@z0@]@@@ K Update the parameters text of a t_value, according to the val_info field. @ / /@ / @@@@@@@h@hg@}@ࠠ:parameter_list_from_arrowsI  I  @@@@%Types)type_expr@@@sE@|(Asttypes)arg_label@@@q@@@r@@p@@@oE@}@@~E@{0@@@1W@@@@#typ&I  'I  @@@10&&&&&&&&@=-I  .]  @@@@@Aࠠ$iter9J  :J  @@@@F@@@F@AD@@@*F@'[@@@+F@(@@)F@"@@@$F@@F@0VVVVVVVV@1=d@4@r\@@@@!tgJ  hJ  @@@,0gggggggg@7@3.@@G@@6@]@@@@డ(get_desc%TypesK  K  @@@@@ Z)type_desc@@@ Y@@ X@0typing/types.mli! ! ! !0@@h@@@@@G@@@G@@G@0@2>`@5@^@@@@ఐF!tK  K  @@@n@@-@@%@@@@Ġ%Types&TarrowL  L  !@8&Tarrow8@@@ 9@@@@ @@@ @@@ *commutable@@@ @DAAL@AIE  JE  @@@Iࠠ!lL  #L  $@@@@@@0@L@@@ࠠ"t1L  &L  (@@@@@@@ࠠ"t2L  *L  ,@@@@@@@@ L  . L  /@@7@@I@#@@@O L  0@@@@I@(@@(@@ภ":: M 4 D M 4 F@8@@R@B@AA@A (@@ఐF!l 'M 4 = (M 4 >@F@G@ @_@@0 ) ) ) ) ) ) ) )@SE?@@@ G`:4@5@ Ia@@@ఐM"t1 <M 4 @ =M 4 B@@@@@ @M 4 < AM 4 C@@F@,@ఐ$iter NM 4 H OM 4 L@@@@@G@.'@@ఐa"t2 ]M 4 M ^M 4 O@-@@"H@26@@ cM 4 G dM 4 P@@"9@@&@@#F@ <@Ġ%Types%Tlink vN Q W wN Q b@8%Tlink@@@@ *@AFAL@All@@@Oࠠ$texp  N Q c N Q g@@@@@@I@@@@@@ @@J@@@@Ġ%Types%Tpoly O h n O h y@8%Tpoly@@@@ 1$listI@@@ 3@@@ 2@BJAL@A'(@@@S5$texp O h { O h @@@2&@@ O h  O h @@@@J@@@J@2@@@. O h @@G@@J@7@@7@@]@@K@@I@;@@ఐ$iter O h  O h @u@@@@G@70        @J`Z@[@ b@@@@ఐh$texp O h  O h @@@H@;@@@@F@&F@5@Ġ%Types$Tvar P   P  @8$Tvar[@&optionJ&stringO@@@ @@@ @A@AL@AA L NA L e@@@/H@ 1P   2P  @@@@Q@@@Q@@@@$ @@@@Q@@@@Ġ%Types&Ttuple HQ   IQ  @8&Ttuple@W@@@ @@@ @ABAL@AL  L  @@@[J@ ]Q   ^Q  @@h@@Q@@@Q@@@@ @@@@Q@@@@@T @@@@P@@Ġ%Types'Tconstr xR   yR  @8'Tconstr@$Path!t@@@ ݠ@@@ @@@ &Stdlib#ref+abbrev_memo@@@ @@@ @CCAL@AO ' )O ' _@@@K@ R   R  @@*@@P@@@@&@@P@@@P@@@@&!@@P@@@P@!@@@E@@5@@P@%@@%@@@@9@@O@)@Ġ%Types'Tobject S   S  @8'Tobject@@@@ H#reff!t@@@ #A@@@ %@@@ $@@ "@@@ !@@@ @BDAL@AhS  iS 2@@@L@ S   S  @@@@O@f@@@,*)@@O@&@@O@@@O@@O@@@O@@@O@~@@@L@@@@O@@@@@!@@@@N@@Ġ%Types&Tfield +T   ,T  @8&Tfieldo@@@@ &;*field_kind@@@ 'A@@@ (E@@@ )@DEAL@Aff@@@HM@ JT   KT  @@@@N@@@@@@N@@@ @\@@N@@@@a@@N@@@@4@@@@N@@@@@L@@@@M@@Ġ%Types$Tnil pU   qU  @8$Tnil@@@@AL@Aifhifn@@@zN@@  @@@@M@@@@@g @@@@L@@Ġ%Types'Tunivar V   V  @8'Tunivar@tr@@@ 0@@@ /@AIAL@A {{2@@@R@ V   V  @@@@L@@@L@@@@  @@#@@L@@@@@ @@'@@K@@Ġ%Types(Tpackage W ! ' W ! 5@8(Tpackage@D!t@@@ 4)Longident!t@@@ 7@@@ 8@@ 6@@@ 5@BKAL@APKMQK@@@T@ W ! 6 W ! 7@@%@@K@N@@@#"@@K@@@K@@K@@@K@^@@@>@@r@@K@ b@@b@@@@v@@J@ f@Ġ%Types(Tvariant X 8 > X 8 L@8(TvariantO@(row_desc@@@ .@AHAL@Axx@@@Q@ X 8 M X 8 N@@@@J@@@@@@@@J@@@@@ @@@@I@@@ภ"[] 0Y R Z 1Y R \@8 @@@@AA@A @@@ @@@F@@F@=@Ġ%Types&Tsubst EZ ] c FZ ] o@8&Tsubst@P@@@ +2X@@@ -@@@ ,@BGAL@Aoo@@@\P@ ^Z ] p _Z ] q@@f@@I@@@@n@@I@@@I@@@@(@@@@I@@@@@ภ%false x[ u  y[ u @8 H R@@@N@@@@B@@A @@ K@ @@@@G@F@ [ u } @@CF@B@@A K  @@GF@0        @@@@@A'A@@RM@@^0        @&@@@@ J  @@ఐc$iter ]   ]  @2@@@@@E@f@@E@d@@E@e@E@c@@E@b@E@aH@@ఐ#typ ]  @b@@T@@#@@U@.@@E@i@@AA@@@@w0        @@@@ 㐠 Create a list of (parameter name, typ) from a type, according to the arrows. [parameter_list_from_arrows t = [ a ; b ]] if t = a -> b -> c. G " " H s @@@@@@@@@@ࠠ4dummy_parameter_list  d   d @@@@@@@E@y)`@@@E@@@@E@z@@{E@x0        @ @@ [@@@@#typ  d  d @@@"0        @. d   ~@@@@@@ࠠ+normal_name e e)@@@@(Asttypes)arg_label@@@|&stringO@@@{@@zF@0 * * * * * * * *@&2J@)@ Fd@@@డ)Odoc_misc*label_name)Odoc_misc =e, >e@@@#@@@y@@@x@@w@-odoc_misc.mlizjjzj@@)Odoc_misc\@@2"@@ Pe@@@ࠠ+liste_param+ [fDJ \fDU@@@\[@@@p@@@@@@@@F@}0 k k k k k k k k@B\V@W@ e@@@ఐ:parameter_list_from_arrows {fDX |fDr@@@@@@F@~@@F@@@F@@F@@@F@@F@#@@ఐ#typ fDs fDv@n@@0@@$@@?1@@ fDF@@Aࠠ$iter, gz gz@@@@@@@F@%Types)type_expr@@@F@@@F@4@@@F@@F@0        @]uo@p@ f@@@@%param?ࠠ%label- gz gz@@@+0        @;@7"@@G@@:@ g@@@ࠠ!t. gz gz@@@7@@ gz gz@@C>@H@@@డ i(get_desc%Typeshh@@@@@@G@@@G@@G@0@4<a@7@,h,]@'@.i@@@@ఐ4!t#h$h@@@k@@ @@@@@@Ġ%Types&Ttuple6i7i@ࠠ!l/?i@i@@@K@@@@@@0FFFFFFFF@7@@@@@ @@@@I@@@@@Р(Asttypes(AsttypesZj[j@@ 0[[[[[[[[@M%@ @wj@@@@A0________@@@ej @@డ @!=qkrk@@!a@@$boolE@@@'@@&@@%&%equalBA @@@@*stdlib.mliyy@@xQ@@@F@F@XF@YF@F@@ @@G@@G@@G@<@@ఐˠ%labelkk@@@I@@ภ'Nolabelkk@8'Nolabel(Asttypes)arg_label@@@@@@@AB@A4parsing/asttypes.mlirr"@@@ _@@@7H@g@@"@@@@G@ H@n@ภ.Odoc_parameter%Tuplel l )@8%TupleI@@@ @$listIS@@@ @@@ .)type_expr@@@ @BA@B@A__B@@@^Gడ $List#mapm*7m*?@@@!a@ !b@ @@m@ P@@@l,@@@k@@j@@i@ J K@@ IU@@@@wF@F@aF@bF@F@BF@G@rF@F@AF@@G@@&@@G@Q@@G@@G@@G@@@@"t2>Om*EPm*G@@@,@@ఐ$iter[m*K\m*O@{@@@@H@.0]]]]]]]]@=@@yk@@@@ภ'Nolabelpm*Qqm*X@@@@F@7@ఐ2"t2}m*Z~m*\@@@Z @@m*Pm*]@@F@8%@@+@@UF@,(@@Am*@m*^@@@i\@H@'H@;0@-@@@@ఐ[!lm*_m*`@<@@~@@H@&H@>H@<C@@ @@ʠv@@G@G@@G@%@ఐǠ!tm*bm*c@@@W@@m*d@@ (@@G@/@ภ.Odoc_parameter+Simple_namepp@8+Simple_name@ 9+simple_name@@@ @A@@B@A^^@@@ >Fະ,'sn_name@@@  @@@ @@ ,'sn_type )@@@ @A@AWW@@ UC,'sn_text   @@@ @@@ AB@A X XA@@ cD@A V V@@ gB.Odoc_parameter'sn_nameqq @ఐ+normal_nameq q@@@@@@H@Q@@H@P@H@O@@ఐI%label&q'q@@@t@@@@ a@@H@MH@[I@W@N.Odoc_parameter'sn_type9r!/:r!E@ఐS!tBr!HCr!I@-@@@Y.Odoc_parameter'sn_textMsLZNsLp@ภ$NoneUsLsVsLw@ @@@ k@@H@k@@H@jH@q@@@bqcsLy@@@@G@GG@t@@@@G@F@mk @@@oj @@F@0oooooooo@@@@Ġ%Types%Tlinktztz@ ࠠ"t20tztz@@@@@@|@@@@@@@I@@@@@ఐ$iteruu@@@@@G@w0@@@l@@@@ఐԠ%labeluu@@@@ఐ4"t2uu@@@H@~!@@uu@@F@&@@uu@@F@u+@Ġ%Types&Tsubstvv@@vv@@@@I@@@@@@I@@@I@@@@@@c@@I@@@@@ภ~ww@}@@@}@@G@@w@@8F@@@xx@@@@I@@@@@ภ.Odoc_parameter+Simple_nameyy@Kະ>.Odoc_parameter'sn_name z!z*@ఐ+normal_name+z-,z8@@@@@@H@ @@H@@H@$@@ఐc%label@z9Az>@-@@1@@@@ {@@H@H@I@9@h.Odoc_parameter'sn_typeS{ANT{Ad@ఐm!t\{Ag]{Ah@G@@M@s.Odoc_parameter'sn_textg|kwh|k@ภ$Noneo|kp|k@ @@@ @@H@@@H@H@i@@@|z}|k@@@@G@G@q@@r@@F@F@v@@Ah @@F@0@z@@@@AA@@@@0@@@@@gz|@@డl$List#map~~@@@@@@@E@@@E@@E@E@@E@@@@E@ˠ@@E@@E@@E@@@ఐ$iter~~@@@@@@F@@@F@@F@ B@@F@@F@@@ఐ+liste_param~@@@ԠE@@F@F@F@ @@N@@ @\@@$@O@@@@@E@~@@AA@@ @@0@@@@ X Create a list of parameters with dummy names "??" from a type list. Used when we want to merge the parameters of a value, from the .ml and the .mli file. In the .mli file we don't have parameter names so there is nothing to merge. With this dummy list we can merge the parameter names from the .ml and the type from the .mli file. _  c  @@@@@@@@@ @ࠠ+is_function@@@@@>@@@VE@@@@RE@@@E@0@*GA@B@9c@@@@!vB./@@@0........@'56@@@@@Aࠠ!fCA!B"@@@@ N@@@F@@@@/F@@F@0MMMMMMMM@ ,=@#@in@@@@!tD^#_$@@@0^^^^^^^^@&@"@@G@@%@~o@@@@డ(get_desc%Typesw'1x'?@ @@@ @@G@  @@G@ @G@ 0@".?@%@p@@@@ఐ6!t'@'A@@@M@@@@ @@@@Ġ%Types&TarrowGMGY@ @GZG[@@ @@I@0@+@@@@ @ @@I@@@@ @@I@  @@@ @@I@!@@@@@ 6@@I@"@@@@ภ$true_g_k@8O@@@AB@@A@@@@@F@-!@Ġ%Types%Tlinklrl}@ dࠠ!tEl~l@@@ @@@'g@@@@@ b@@I@(k@@k@@ఐ!f@@@@@G@30@z@@q@@@@ఐ&!t  @@@H@7@@@@F@1@@@@ @@I@*@@@@ภ !@@@@F@;F@9@@A('+@@F@~@@A A@@@@G0++++++++@@@@@0@@ఐ!f:;@ٰ@@@ E@@E@L@@E@K@E@J@@ఐ'!vQR@@@>@(val_typeX#@ $@@ d@@F@SF@WF@U@@(,@@E@3-@@HE@@@A80A@@RM@@Z0eeeeeeee@7@@@ D Return true if the value is a function, i.e. has a functional type.tu@@@@@@@B@BA@W@DA2@1@@A@A@RLA@ @ 3 j@ @f@y@z@m@@0@m@@@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml CC@ H DD3@ H Maxence Guesdon, projet Cristal, INRIA Rocquencourt E44E4@ H FF@ H Copyright 2001 Institut National de Recherche en Informatique et GG@ H en Automatique. HHg@ H IhhIh@ H All rights reserved. This file is distributed under the terms of JJ@ H the GNU Lesser General Public License version 2.1, with the KKN@ H special exception on linking described in the file LICENSE. LOOLO@ H MM@ H************************************************************************NN5@ Q* Representation and manipulation of values, class attributes and class methods. 栠(* Types =* Representation of a value.  '* Representation of a class attribute.  [* an attribute has almost all the same information as a value 2 $* Representation of a class method.  W* a method has almost all the same information as a value ,* Functions 9 Z* Returns the text associated to the given parameter name in the given value, or None.  L* Update the parameters text of a t_value, according to the val_info field.   * Create a list of (parameter name, typ) from a type, according to the arrows. [parameter_list_from_arrows t = [ a ; b ]] if t = a -> b -> c.3 Y* Create a list of parameters with dummy names "??" from a type list. Used when we want to merge the parameters of a value, from the .ml and the .mli file. In the .mli file we don't have parameter names so there is nothing to merge. With this dummy list we can merge the parameter names from the .ml and the type from the .mli file.  @ if there is a label, then we don't want to decompose the tuple  or| or@ E* Return true if the value is a function, i.e. has a functional type.@/../ocamlopt.opt)-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"-c67