Caml1999I031#L)Odoc_name!t08@@@A&stringO@@@@@@@-odoc_name.mliR``R`o@@@@@A@/parens_if_infix1@@@@@@@@@@UU@@$A@&simple2@@@@@@@@@@$X%X@@5B@&father3@#@@@&@@@@@@5[MM6[M`@@FC@&concat4@4@@@@9@@@<@@@@@@@@K^L^@@\D@.normalize_name5@J@@@M@@@@@@\b!!]b!<@@mE@$head6@[@@@^@@@@@@meaanear@@~F@%depth7@l@@@#intA@@@@@@ii@@G@&prefix8@@@@@@@@$boolE@@@@@@@@mm@@H@.alias_unprefix9@@@@@@@@@@@@@@@@pp @@I@,get_relative:@@@@@@@@@@@@@@@@sVVsVt@@J@0get_relative_opt;@@@@@@@@@@@@@@@@xx@@K@0get_relative_raw<@@@@@@@@@@@@@@@@| G G| G i@@L@2hide_given_modules=@$listI@@@@@@@@@@@@@@@@@@A  A  E@@ M@)qualified>@@@@@@@@@@!D v v"D v @@2N@*from_ident?@%Ident!t@@@(@@@@@@7G  8G  @@HO@)from_path@@$Path!t@@@>@@@@@@MJ  NJ  @@^P@'to_pathA@L@@@!t@@@@@@aM 7 7bM 7 P@@rQ@.from_longidentB@)Longident!t@@@h@@@@@@wP y yxP y @@R@Ӡ#MapC@#keyD8@@@A{@@@@@@@R  R  @@@@SA@!tE8!a@@A@A@I@B@@@'map.mliF ; ?F ; J@@@@+Stdlib__MapDA@%emptyF!a@@@@@I  I  @@E@(is_emptyG@!a@@@@$boolE@@@@@@-L  .L  @@,F@#memH@R@@@@3!a@@@@@@@@@@@@JO  KO  $@@IG@#addI@@@@@!a@@U @@@Y @@@@@@@@@@hS  iS  @@gH@&updateJ@;@@@@@&optionJ!a@@@@  @@@@@@@@@@@@@@@@@@@\dh\d@@I@)singletonK@g@@@@!a@@@@@@@@@ii9@@J@&removeL@@@@@!a@@@@@@@@@@@@oo@@K@%mergeM@@@@@@`!a@@@@@k!b@@@@t!c@@@@@@@@@@@@@@@@@@@@@@@@@@@@vxb@@L@%unionN@@@@@@!a@@ @@@@@@@@@@@@@@!@@@%@@@@@@@@@@44854y@@3M@'compareO@@!a@@#intA@@@@@@@@D@@@@J@@@@@@@@@@@@@]^@@\N@%equalP@@!a@@I@@@@@@@@k@@@@q@@@Y@@@@@@@@@@X\X@@O@$iterQ@@Y@@@@!a@$unitF@@@@@@@@@@@ @@@@@@@@@@P@$foldR@@@@@@!a@@!b@@@@@@@@@@@@  @@@@@@@ @@Q@'for_allS@@@@@@!a@@@@@@@@@ߠ @@@@@@@@@@@ @@R@&existsT@@@@@@!a@@@@@@@@@ @@@@@@@@@@@@@S@&filterU@@@@@@!a@ @@@@@@@@' @@@+@@@ @@ @@ @:@D;@s@@9T@*filter_mapV@@@@@ @!a@֠!b@@@@@@@@@P@@@T@@@@@@@@cd@@bU@)partitionW@@8@@@@!a@R@@@@@@@@t @@@{@@@@@@@@@@ @@!@!!!!@@V@(cardinalX@!a@"@@@#[@@@$@@%@"""# @@W@(bindingsY@!a@'@@@&$listI@@@(@@)@@@*@@+@#]#a#]#@@X@+min_bindingZ@Ǡ!a@-@@@,@@@. @@/@@0@$$$$@@Y@/min_binding_opt[@!a@2@@@1z@@@3@@4@@@5@@6@%%%%@@Z@+max_binding\@!a@8@@@7@@@9 @@:@@;@&l&p&l&@@[@/max_binding_opt]@!a@=@@@<@@@>@@?@@@@@@A@9'':''L@@8\@&choose^@9!a@C@@@B@@@D @@E@@F@S''T''@@R]@*choose_opt_@S!a@H@@@G5@@@I@@J@@@K@@L@r((s()@@q^@%split`@E@@@M@w!a@Q@@@N @@@R@@@P@@@O@@S@@T@@U@ )) )* @@_@$finda@o@@@V@!a@X@@@W@@Y@@Z@++++@@`@(find_optb@@@@[@!a@]@@@\R @@@^@@_@@`@,7,;,7,a@@a@*find_firstc@@@@@a@@@b@@c@ܠ!a@e@@@d@@@f @@g@@h@@i@ -- --6@@b@.find_first_optd@@@@@j@@@k@@l@!a@n@@@m@@@o@@p@@@q@@r@@s@ -//!!-//_@@c@)find_laste@@@@@t @@@u@@v@+!a@x@@@w @@@y @@z@@{@@|@E40W0[F40W0@@Dd@-find_last_optf@@@@@}.@@@~@@@P!a@@@@2@@@@@@@@@@@@@o;1v1zp;1v1@@ne@#mapg@@!a@!b@@@@{ @@@ @@@@@@@@C22C22@@f@$mapih@@c@@@@!a@!b@@@@@@ @@@ @@@@@@@@J44J44I@@g@&to_seqi@!a@@@@&Stdlib#Seq!t@@@@@@@@@@@P44P45#@@h@*to_rev_seqj@נ!a@@@@%#Seq!t@@@@@@@@@@@T5y5}T5y5@@i@+to_seq_fromk@@@@@!a@@@@L#Seq!t@@@@@@@@@@@@@ X56!X562@@j@'add_seql@f#Seq!t@@@!a@@@@@@@5 @@@9@@@@@@@@H]66I]66@@Gk@&of_seqm@#Seq!t%@@@!a@@@@@@[@@@@@@ja7M7Qka7M7v@@il@@@R  ~@T@@@Kࠠ)Odoc_name0<{U H8-Stdlib__Uchar0*Ujmyc6]]W+Stdlib__Set0.z9FX+Stdlib__Seq05"g1<)b+Stdlib__Map0kZ,ҷ'V/Stdlib__Hashtbl04$*uկdD.Stdlib__Format0{hXsHW#ȼ.Stdlib__Either0&]XF.Stdlib__Buffer0K ɦb+Z8)#KH"&Stdlib0yӶ~*$Path0L%SsN|#Ɣj)Longident0,xeuK⠠,Identifiable0m7 ^UKxե%Ident0;Hf:#}8CamlinternalFormatBasics0cEXyR`e?R`f@@8@@@A@@@@@@@GR``HR`o@@@@_@@@Aг &stringQR`i @@0ONNOOOOO@N8@@@A!@@B@B@@@@@@@@@A @@@@Z@/parens_if_infix fUgU@б@г3!tqUrU@@ @@@0srrsssss@r>8@A@@гB!tUU@@ @@@@@@@@@@@U @)ocaml.doc 5 Add parenthesis to the given simple name if needed. TqqTq@@@@@@@A@@'&simple XX@б@гr!tXX@@ @@@0@@U.@A@@г!tXX@@ @@@@@@@@@@@X @? " Return a simple name from a name.WW@@@@@@@B@@%&father[MQ[MW@б@г!t[MZ[M[@@ @@@0@>S,@A@@г!t[M_[M`@@ @@@@@@@@@@@[MM @| @ Return the name of the 'father' (like dirname for a file name).ZZL@@@@@@@+C@@%&concat^ ^@б@г점!t*^+^@@ @@@0,++,,,,,@>S,@A@@б@г!t;^<^@@ @@@@@г !tH^I^@@ @@@@@@@@!@@@'@@$* @@@V^@ː9 Concatenates two names. b]bbc]b@@@@@@@zD@@7.normalize_namenb!%ob!3@б@г;!tyb!6zb!7@@ @@@0{zz{{{{{@Pe,@A@@гJ!tb!;b!<@@ @@@@@@@@@@@b!! @ Normalize the given name by removing the beginning and ending spaces of the simple name and adding parenthesis if needed. `a @@@@@@@E@@%$headeaeeai@б@гx!tealeam@@ @@@0@>S,@A@@г!teaqear@@ @@@@@@@@@@@eaa @E= Returns the head of a name. d>>d>`@@@@@@@F@@%%depthii@б@г!tii@@ @@@0@>S,@A@@г#intii@@ @@@@@@@@@@@ i @ r Returns the depth of the name, i.e. the number of levels to the root. Example : [Toto.Tutu.name] has depth 3. gtth@@@@@@@1G@@%&prefix%m&m@б@г!t0m1m@@ @@@021122222@>S,@A@@б@г!tAmBm@@ @@@@@г$boolNmOm@@ @@@@@@@@!@@@'@@$* @@@\m@ѐ Returns true if the first name is a prefix of the second name. If the two names are equal, then it is false (strict prefix).hkilE@@@@@@@H@@7.alias_unprefixtpup@б@гA!tpp@@ @@@0@Pe,@A@@б@гR!tpp@@ @@@@@г_!tpp @@ @@@@@@@@!@@@'@@$* @@@p@ ? remove a [Library__] prefix and capitalize the resulting name oo@@@@@@@I@@7,get_relativesVZsVf@б@г!tsVisVj@@ @@@0@Pe,@A@@б@г!tsVnsVo@@ @@@@@г!tsVssVt@@ @@@@@@@@!@@@'@@$* @@@sVV@o E Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 or else n2. r  r U@@@@@@@J@@70get_relative_optxx@б@гߠ!txx@@ @@@0@Pe,@A@@б@г!t.x/x@@ @@@@@г!t;xX,@A@@гQ!t$PathM 7 JM 7 P@@ @@@@@@@@@@@M 7 7 @l< Get a [Path.t] from a name.L  L  6@@@@@@@Q@@(.from_longidentZP y }P y @б@г)Longident!t)LongidentP y  P y @@@@@0!  !!!!!@F[1@A@@г!t.P y /P y @@ @@@@@@@@@@@9P y y @ ! Get a name from a [Longident.t].EO R RFO R x@@@@@@@]R@@%#MapBSR  TR  @@УР)#Map!SaR  bR  @ 0a``aaaaa@A[/@A@@#keyd@#keypR  qR  @( @8@@@A@@@@ @@@@|R  }R  @@@@S@@Aг !tR   @@# @@ @@!C8@@@A@@@ @@@@@@@A@!tC8!a@ @A@A@I@B@@@'map.mliF ; ?F ; J@@@@+Stdlib__MapDA@%empty!a@ @@@ @I  I  @@E@(is_empty@!a@ @@@ $boolE@@@ @@ @-L  .L  @@,F@#mem@M@@@ @3!a@@@@ @@@ @@ @@ @JO  KO  $@@IG@#add@@@@ @!a@@U @@@ Y @@@ @@ @@ @@ @hS  iS  @@gH@&update@;@@@ @@&optionJ!a@@@@   @@@ @@ @@@@ @@@ @@ @@ @@ @\dh\d@@I@)singleton@g@@@ @!a@@@@ @@ @@ @ii9@@J@&remove@@@@ @!a@@@@ @@@ @@ @@ @oo@@K@%merge@@@@@ @`!a@@@@ @k!b@@@@ t!c@@@@ @@ @@ @@ @@@@ @@@@ @@@ @@ @@ @@ @vxb@@L@%union@@@@@ @!a@@ @@@ @@ @@ @@ @@@@ @!@@@ %@@@ @@ @@ @@ @44854y@@3M@'compare@@!a@@#intA@@@ @@ @@ @D@@@ @J@@@ @@@ @@ @@ @@ @]^@@\N@%equal@@!a@@I@@@ @@ @@ @k@@@ @q@@@ Y@@@ @@ @@ @@ @X\X@@O@$iter@@Y@@@ @!a@$unitF@@@ @@ @@ @@@@  @@@ @@ @@ @@@P@$fold@@@@@ @!a@@!b@@@ @@ @@ @@@@ @  @@ @@ @@ @ @@Q@'for_all@@@@@ @!a@@@@ @@ @@ @ߠ @@@ @@@ @@ @@ @ @@R@&exists@@@@@ @!a@@@@ @@ @@ @ @@@ @@@ @@ @@ @@@S@&filter@@@@@ @!a@@@@ @@ @@ @' @@@ +@@@ @@ @@ @:@D;@s@@9T@*filter_map@@@@@ @!a@x֠!b@v@@@ @@ @@ @P@@@ T@@@ @@ @@ @cd@@bU@)partition@@8@@@ @!a@lR@@@ @@ @@ @t @@@ {@@@ @@@ @@ @@ @@ @!!!!@@V@(cardinal@!a@g@@@ [@@@ @@ @"""# @@W@(bindings@!a@b@@@ $listI@@@ @@ @@@ @@ @#]#a#]#@@X@+min_binding@Ǡ!a@\@@@ @@@  @@ @@ ~@$$$$@@Y@/min_binding_opt@!a@W@@@ }z@@@ |@@ {@@@ z@@ y@%%%%@@Z@+max_binding@!a@Q@@@ x@@@ w @@ v@@ u@&l&p&l&@@[@/max_binding_opt@!a@L@@@ t@@@ s@@ r@@@ q@@ p@9'':''L@@8\@&choose@9!a@F@@@ o@@@ n @@ m@@ l@S''T''@@R]@*choose_opt@S!a@A@@@ k5@@@ j@@ i@@@ h@@ g@r((s()@@q^@%split@E@@@ f@w!a@8@@@ e @@@ b@@@ c@@@ d@@ a@@ `@@ _@ )) )* @@_@$find@o@@@ ^@!a@1@@@ ]@@ \@@ [@++++@@`@(find_opt@@@@ Z@!a@,@@@ YR @@@ X@@ W@@ V@,7,;,7,a@@a@*find_first@@@@@ U@@@ T@@ S@ܠ!a@$@@@ R@@@ Q @@ P@@ O@@ N@ -- --6@@b@.find_first_opt@@@@@ M@@@ L@@ K@!a@@@@ J@@@ I@@ H@@@ G@@ F@@ E@ -//!!-//_@@c@)find_last@@@@@ D @@@ C@@ B@+!a@@@@ A @@@ @ @@ ?@@ >@@ =@E40W0[F40W0@@Dd@-find_last_opt@@@@@ <.@@@ ;@@ :@P!a@@@@ 92@@@ 8@@ 7@@@ 6@@ 5@@ 4@o;1v1zp;1v1@@ne@#map@@!a@!b@@@ 3@{ @@@ 2 @@@ 1@@ 0@@ /@C22C22@@f@$mapi@@c@@@ .@!a@!b@@@ -@@ ,@ @@@ + @@@ *@@ )@@ (@J44J44I@@g@&to_seq@!a@@@@ '&Stdlib#Seq!t@@@ &@@ %@@@ $@@ #@P44P45#@@h@*to_rev_seq@נ!a@@@@ "%#Seq!t@@@ !@@ @@@ @@ @T5y5}T5y5@@i@+to_seq_from@@@@ @!a@@@@ L#Seq!t@@@ @@ @@@ @@ @@ @ X56!X562@@j@'add_seq@f#Seq!t@@@ !a@@@ @@@ @5 @@@ 9@@@ @@ @@ @H]66I]66@@Gk@&of_seq@#Seq!t%@@@ !a@@@ @@@ [@@@ @@ @ja7M7Qka7M7v@@il@@@@@ R  @@@  A@  @ t M@ 9 @  @  @ v O@ ; @ @z@f-@@@7@#@@|@h>@*@@@, NT@@@0 6 5 5 6 6 6 6 6@@A@A@@@wu@\Z@@>@@@@@~|@WU@20@ @@@@@_]@53@ @@@@@@}@b`@:8@$"@ @@@@sq@VT@42@@@@@@@Y@A@ H************************************************************************ A@@ A@L@ H  BMM BM@ H OCaml  C C@ H  D D3@ H Maxence Guesdon, projet Cristal, INRIA Rocquencourt  E44 E4@ H  F F@ H Copyright 2001 Institut National de Recherche en Informatique et  G G@ H en Automatique.  H Hg@ H  Ihh Ih@ H All rights reserved. This file is distributed under the terms of  J J@ H the GNU Lesser General Public License version 2.1, with the  K KN@ H special exception on linking described in the file LICENSE.  LOO LO@ H  M M@ H************************************************************************ N N5@ #* Representation of element names.  頠 6* Add parenthesis to the given simple name if needed.  S #* Return a simple name from a name.  A* Return the name of the 'father' (like dirname for a file name). ߠ:* Concatenates two names.  * Normalize the given name by removing the beginning and ending spaces of the simple name and adding parenthesis if needed.  Y>* Returns the head of a name.   s* Returns the depth of the name, i.e. the number of levels to the root. Example : [Toto.Tutu.name] has depth 3.  堠 * Returns true if the first name is a prefix of the second name. If the two names are equal, then it is false (strict prefix). @* remove a [Library__] prefix and capitalize the resulting name  M F* Take two names n1 and n2 = n3.n4 and return n4 if n3=n1 or else n2.   U* [get_relative_opt n1 n2] is [n2] if [n1=""] and [get_relative n1 n2] otherwise  L* Take two names n1=n3.n4 and n2 = n5.n6 and return n6 if n3=n5 or else n2. i * Take a list of module names to hide and a name, and return the name when the module name (or part of it) was removed, according to the list of module names to hide. ** Indicate if a name if qualified or not. Ԡ * Get a name from an [Ident.t]. >* Get a name from a [Path.t]. V=* Get a [Path.t] from a name. "* Get a name from a [Longident.t].@)../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"-c E F