Caml1999I037 ?)Odoc_misc)no_blanks@&stringQ@@@@@@@@@6ocamldoc/odoc_misc.mliUU@@@@@4input_file_as_string@@@@@@@@@@XXJ@@*A@@1split_with_blanks@)@@@$listK3@@@@@@@@@.[/[@@DB@@3string_of_longident@)Longident!t@@@K@@@@@@E^F^2@@[C@@.string_of_text@*Odoc_types$text@@@b@@@@@@\aTT]aT@@rD@@5string_of_author_list@Du@@@@@@z@@@@@@tdud@@E@@5string_of_version_opt@&optionL@@@@@@@@@@@@g''g'Z@@F@@3string_of_since_opt@@@@@@@@@@@@@jj@@G@@;string_of_raised_exceptions@@@@@@o$text@@@@@@@@@@@@@@mm[@@H@@-string_of_see@@'see_ref@@@@$text@@@@@@@@@@@pp@@I@@.string_of_sees@Ӡ@'see_ref@@@@$text@@@@@@@@@@@@@@s  s  j@@'J@@4string_of_return_opt@$text@@@@@@1@@@@@@+v  ,v  @@AK@@.string_of_info@$info@@@F@@@@@@@y  Ay  M@@VL@@)apply_opt@@!a@!b@@@@ؠ@@@ݠ@@@@@@@@a| } }b| } @@wM@@.string_of_date(absolute$boolE@@@@@@$hour@@@@@@@%floatD@@@@@@@@@@@@@@ , ,@ , p@@N@@,current_date@@@@E  E  )@@O@@6first_sentence_of_text@Y$text@@@_$text@@@@@@J  J  @@P@@?first_sentence_and_rest_of_text@p$text@@@@z$text@@@ʠ@$text@@@@@@@@P  Q 1@@Q@@5text_no_title_no_list@$text@@@$text@@@@@@TmmTm@@R@@+text_concat@$text@@@@ߠ$text@@@@@@$text@@@@@@@@XXZ@@)S@@2get_titles_in_text@$text@@@@#intA@@@ڠ@B@@@@@@٠@$text@@@@@@@@@@@F\G\@@\T@@2create_index_lists@.!a@@@@@@ h@@@@@?C@@@@@@@@@@@lcYYmcY@@U@@1remove_duplicates@@!a@@S@@@@@@@@b@@@g@@@@@@@@g++g+j@@V@@5remove_ending_newline@@@@@@@@@@jj@@W@@6search_string_backward#pat@@@!s@@@@@@@@@@@nn@@X@@-remove_option@%Types)type_expr@@@)type_expr@@@@@@sqqsq@@Z@@+is_optional@(Asttypes)arg_label@@@y@@@@@@vv @@[@@*label_name@)arg_label@@@ @@@@@@zjjzj@@\@@@Kޠ)Odoc_misc0ys/k:Ԡ(Warnings0mJɒkgrWA+9*X*Format_doc0]mWϓ:Mݠ0CamlinternalLazy0&͂7 Pˆ8CamlinternalFormatBasics0%FU(Q/Tu(Asttypes0>n{T8cئ@@@Caml1999T037bM>U9C)Odoc_misc*ocaml.text&_none_@@A9 Miscellaneous functions 6ocamldoc/odoc_misc.mliP77P7U@@@@@@3@@@@@@#intA;@@@A@@@@@:@A@$charB;@@A@@@@@>@A@&stringQ;@@ A@@@@@B@@@%bytesC;@@ A@@@@@F@@@%floatD;@@A@@@@@J@@@$boolE;@@%falsec@@T@$trued@@Z@@@A@@@@@[@A@$unitF;@@"()e@@e@@@A@@@@@f@A@ #exnG;@@@A@@@@@j@@@#effH;@@O@A@A@@@@@@s@@@,continuationI;@@Q@@P@B@A@nY@@@@@@@@@%arrayJ;@@R@A@A@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@A@@@@@@@@%int32N;@@A@@@@@@@@%int64O;@@A@@@@@@@@&lazy_tP;@@X@AJA@Y@@@@@@@@5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@A[A@Y@@@@@@@@*atomic_locU;@@Z@AdA@@@@@@@@@.Assert_failure`#@@@@@J@@@@@@@@[@@A=ocaml.warn_on_literal_pattern @ @0Division_by_zero]#@@@A  @+End_of_file\#$@@@A@'FailureY#,@'@@A!$$@0Invalid_argumentX#5@0@@A*$-#-@-Match_failureV#>@@=@9@;@@a@@A;5>4>@)Not_foundZ#O@@@AC=F<F@-Out_of_memoryW#W@@@AKENDN@.Stack_overflow^#_@@@ASMVLV@.Sys_blocked_io_#g@@@A[U^T^@)Sys_error[#o@j@@Ad^g]g@:Undefined_recursive_modulea#x@@w@s@u@@h@@Auoxnx@:Continuation_already_takenb#@@@A}wv@&Stdlib@Ax)no_blanksUU@б@гT&stringUU@@ @@@@@гa&stringUU@@ @@@@@@@@@@@U @)ocaml.doc b [no_blanks s] returns the given string without any blank characters, i.e. '\n' '\r' ' ' '\t'. RWWT@@@@@@@@@@@Ő@@@@@@4input_file_as_stringX#X7@б@г&stringX:X@@@ @@@3@_:@A@@г&stringXDXJ@@ @@@@@@@@@@@X @K 8 This function returns a file in the form of one string.WW@@@@@@@A@@@[@@@@@@11split_with_blanks[[@б@г栐&string[[@@ @@@3@J_8@A@@г$list+[,[@г&string5[6[@@ @@@@@@@@@ @@@$@@!'@@@E[@ H [split_with_blanks s] splits the given string [s] according to blanks. RZLLSZL@@@@@@@kB@@*@f@@@@@@@3string_of_longidenti^j^@б@г)Longident!t)Longidentz^{^&@ ~^'^(@@@@@@3@dyC@A @@гX&string^,^2@@ @@@@@@@@@@@^ @ 4 This function creates a string from a Longident.t .]]@@@@@@@C@@@@@@@@@1.string_of_text/aTXaTf@б@г*Odoc_types$text*Odoc_typesaTiaTs@ aTtaTx@@@@@@3@UuC@A @@г&stringaT|aT@@ @@@@@@@@@@@aTT @K: get a string from a text `44`4S@@@@@@@D@@@[@@@@@@15string_of_author_list0dd@б@г$listdd@г&string&d'd@@ @@@3(''(((((@TtB@A@@@ @@@ @@г&string:d;d@@ @@@@@@@@@@@Ed @ ' @return a string for an authors list. RcSc@@@@@@@kE@@@f@@@@@@65string_of_version_opt1ig'+jg'@@б@гӠ&optiontg'Jug'P@гH&string~g'Cg'I@@ @@@3@YxB@A@@@ @@@ @@г\&stringg'Tg'Z@@ @@@@@@@@@@@g'' @ = @return a string for the given optional version information.ff&@@@@@@@F@@@ @@@@@@63string_of_since_opt2jj@б@г+&optionjj@г&stringjj@@ @@@3@YxB@A@@@ @@@ @@г&stringjj@@ @@@@@@@@@@@j @S ; @return a string for the given optional since information.i\\i\@@@@@@@G@@@c@@@@@@6;string_of_raised_exceptions3mm/@б@г$list$mM%mQ@В@г&string2m33m9@@ @@@343344444@]|F@A@@@г{$text*Odoc_typesGm<HmF@ KmGLmK@@@@@@ @@@@"@ @@!' @@@< @@@&^m2:@@г0&stringfmUgm[@@ @@@4@@@@@7@@@qm @ϐ : @return a string for the given list of raised exceptions.~ll@@@@@@@H@@@@@@@@@V-string_of_see4pp@б@В@г'see_ref*Odoc_typespp@ pp@@@@@@3@|E@A @@@г$text*Odoc_typespp@ pp@@@@@@ @@@@"@ @@!, @@г&stringpp@@ @@@.@@@@@1<@@@p @D 5 @return a string for the given "see also" reference.o]]o]@@@@@@@ I@@@T@@@@@@P.string_of_sees5 s  $ s  2@б@г$lists  \s  `@В@г['see_ref*Odoc_types's  6(s  @@ +s  A,s  H@@@@@@3.--.....@O@A @@@гu$text*Odoc_typesAs  KBs  U@ Es  VFs  Z@@@@@@ @@@@"@ @@!, @@@E @@@&Xs  5C@@г*&string`s  das  j@@ @@@4@@@@@7@@@ks   @ɐ > @return a string for the given list of "see also" references.xryr @@@@@@@J@@@@@@@@@V4string_of_return_opt6v  v  @б@г&optionv  v  @г$text*Odoc_typesv  v  @ v  v  @@@@@@3@K@A @@@" @@@@@г&stringv  v  @@ @@@@@@@@"@@@v   @* < @return a string for the given optional return information.u l lu l @@@@@@@K@@@:퐠@@@@@@6.string_of_info7y  #y  1@б@г3$info*Odoc_typesy  4y  >@ y  ?y  C@@@@@@3@XA@A @@гݠ&stringy  Gy  M@@ @@@@@@@@@@@y   @| . get a string from a Odoc_info.info structure +x  ,x  @@@@@@@DL@@@?@@@@@@1)apply_opt8B| } C| } @б@б@А!a@A@3MLLMMMMM@Hf6@AS| } T| } @@А!b@A@ ^| } _| } @@@ @@@@б@гˠ&optionl| } m| } @А!a'"s| } t| } @@@-@@@) @@гࠐ&option| } | } @А!b/7| } | } @@@5@@@> @@@@@A@@@4@@D| } @@@| } }@ ( Apply a function to an optional value. { O O{ O |@@@@@@@M@@'@@@@@@@d.string_of_date9@ , 0@ , >@б(absoluteг$bool@ , K@ , O@@ @@@3@:@A@@б$hourг$bool@ , Y@ , ]@@ @@@@@б@г%float@ , a@ , f@@ @@@"@@г &string@ , j@ , p@@ @@@/@@@@@2@@0i)@@@ @@: @ , S@@L D@@@@@B@ , A@@ @@ , ,@r s Return a string representing a date given as a number of seconds since 1970. The hour is optionally displayed. !~  "  +@@@@@@@:N@@,@5@@@@@@b,current_date:8E  9E  @г &stringAE  #BE  )@@ @@@3CBBCCCCC@y6@A@@@KE   @@cO@@ @@6first_sentence_of_text;VJ  WJ  @б@г$text*Odoc_typeseJ  fJ  @ iJ  jJ  @@@@@@3lkklllll@*=(@A @@г$text*Odoc_types}J  ~J  @ J  J  @@@@@@ @@@@@& @@@J   @될 Return the first sentence (until the first dot) of a text. Don't stop in the middle of [Code], [Verbatim], [List], [Lnum], [Latex], [Link], or [Ref]. G + +I  @@@@@@@P@@@@@@@@@:?first_sentence_and_rest_of_text<P  P  @б@г$text*Odoc_typesQ  Q @ Q Q  @@@@@@3@\zA@A @@В@г$text*Odoc_typesQ Q @ Q Q @@@@@@ @@@г($text*Odoc_typesQ "Q ,@ Q -Q 1@@@@@@4 @@@@ @ @@;* @@@A @@>I@@@ P  @i Return the first sentence (until the first dot) of a text, and the remaining text after. Don't stop in the middle of [Code], [Verbatim], [List], [Lnum], [Latex], [Link], or [Ref]. L  O  @@@@@@@1Q@@#@y,@@@@@@]5text_no_title_no_list=/Tmq0Tm@б@гr$text*Odoc_types>Tm?Tm@ BTmCTm@@@@@@3EDDEEEEE@A@A @@г$text*Odoc_typesVTmWTm@ ZTm[Tm@@@@@@ @@@@@& @@@fTmm @Đ 4 Return the given [text] without any title or list. sS33tS3l@@@@@@@R@@@@@@@@@:+text_concat>XX@б@г$text*Odoc_typesX X*@ X+X/@@@@@@3@\zA@A @@б@г+$listXCXG@г$text*Odoc_typesX3X=@ X>XB@@@@@@$ @@@ @@@)@@г $text*Odoc_typesXKXU@ XVXZ@@@@@@? @@@@@B) @@@H@@EP @@@X@I [ [concat sep l] concats the given list of text [l], each separated with the text [sep]. VW @@@@@@@ S@@@Y @@@@@@d2get_titles_in_text? \ \@б@гR$text*Odoc_types \ \@  "\ #\@@@@@@3 % $ $ % % % % %@A@A @@г$list 2\ 3\@В@г #int @\ A\@@ @@@@@@г&option O\ P\@г #&string Y\ Z\@@ @@@6@@@@@@; @@@г$text*Odoc_types q\ r\@  u\ v\@@@@@@ S @@@@>@#@ @@ \E@@@Z @@@ a \X@@@h@@ ep[@@@ \^@ b Return the list of titles in a [text]. A title is a title level, an optional label and a text. Z\\ [@@@@@@@ T@@n@ @@@@@@2create_index_lists@ cY] cYo@б@г ;$list cYu cYy@А!a@A@3        @>@A cYr cYt@@@ @@@ @@б@б@А!a cY~ cY@@г &string cY cY@@ @@@ @@@(@@#@@г q$list cY cY@г {$list cY cY@А!a@; cY cY@@@F@@@B @@@@@@G @@@)@@J cY} @@@I@@NL#@@@ cYY&@y 5 Take a sorted list of elements, a function to get the name of an element and return the list of list of elements, where each list group elements beginning by the same letter. Since the original list is sorted, elements whose name does not begin with a letter should be in the first returned list. (^ )bX@@@@@@@ AU@@6@ <@@@@@@m1remove_duplicatesA ?g+/ @g+@@б@б@А!a@&A@3 J I I J J J J J@6@A Pg+D Qg+F@@б@А!a  Xg+J Yg+L@@г 4#int ag+P bg+S@@ @@@@@@!@@@@@$@@ @@б@г $list vg+[ wg+_@А!a4/ }g+X ~g+Z@@@:@@@ 6 @@г $list g+f g+j@А!aID g+c g+e@@@O@@@"K @@@@@#N@@@4@@$Q g+C@@@ g++@ [remove_duplicates compare li] removes the duplicates in the input list, keeping the leftmost occurrence of each repeated element.  e f*@@@@@@@ V@@'@  Ð@@@@@@q5remove_ending_newlineB j j@б@г &string j j@@ @@@'3        @8@A@@г &string j j@@ @@@(@@@@@)@@@ j @ I L [remove_ending_newline s] returns [s] without the optional ending newline.  ill il@@@@@@@ W@@@ Y @@@@@@16search_string_backwardC n n@б#patг 栐&string n n@@ @@@*3        @La:@A@@б!sг &string /n 0n@@ @@@+@@г #int <n =n@@ @@@, @@@@-# En @@5*@@.' In @@@ Ln@ [search_string_backward pat s] searches backward string [pat] in string [s]. Return position in string [s] where [pat] appears, orelse raise [Not_found].  Yl Zm=@@@@@@@ rX@@ @  m@@@@@@G-remove_option psqu qsq@б@г%Types)type_expr%Types sq sq@  sq sq@@@@@@ ^3        @kC@A @@г)type_expr%Types sq sq@  sq sq@@@@@@ _ @@@@@ `& @@@ sqq @  Take a type and remove the option top constructor. This is useful when printing labels, we then remove the top option constructor for optional labels. p rWp@@@@@@@ Z@@@  ʐ@@@@@@:+is_optional v v@б@г(Asttypes)arg_label(Asttypes v v@  v v@@@@@@ 3        @^~C@A @@г $bool v v @@ @@@ @@@@@ @@@ v @ [ . Return [true] if the given label is optional. u u@@@@@@@ #[@@@ k @@@@@@1*label_name  !zjn "zjx@б@гT)arg_label(Asttypes 0zj{ 1zj@  4zj 5zj@@@@@@ 3 7 6 6 7 7 7 7 7@SsA@A @@г &string Dzj Ezj@@ @@@ @@@@@ @@@ Ozjj @ Y Return the label name for the given label, i.e. removes the beginning '?' if present. \x   ]y:i@@@@@@@ u\@@@  p@@@@@@1@  @  @ d .@  @  @ j 4@ @@h@@{@@i@I@w@WB@;@@f-@ @@~@^@@S@3@@V@@3        @jX@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@:* Miscellaneous functions  c* [no_blanks s] returns the given string without any blank characters, i.e. '\n' '\r' ' ' '\t'.  O 9* This function returns a file in the form of one string. I* [split_with_blanks s] splits the given string [s] according to blanks.  5* This function creates a string from a Longident.t . c;* get a string from a text   (* @return a string for an authors list.  >* @return a string for the given optional version information. h <* @return a string for the given optional since information.  ;* @return a string for the given list of raised exceptions. 6* @return a string for the given "see also" reference.( ?* @return a string for the given list of "see also" references. =* @return a string for the given optional return information.H /* get a string from a Odoc_info.info structure  )* Apply a function to an optional value.  t* Return a string representing a date given as a number of seconds since 1970. The hour is optionally displayed.  Value returned by string_of_date for current time. * Uses environment variable SOURCE_DATE_EPOCH if set; falls back to * current timestamp otherwise.  -B r r .D  @ * Return the first sentence (until the first dot) of a text. Don't stop in the middle of [Code], [Verbatim], [List], [Lnum], [Latex], [Link], or [Ref].  * Return the first sentence (until the first dot) of a text, and the remaining text after. Don't stop in the middle of [Code], [Verbatim], [List], [Lnum], [Latex], [Link], or [Ref].  5* Return the given [text] without any title or list. Ơ \* [concat sep l] concats the given list of text [l], each separated with the text [sep]. D c* Return the list of titles in a [text]. A title is a title level, an optional label and a text. 6* Take a sorted list of elements, a function to get the name of an element and return the list of list of elements, where each list group elements beginning by the same letter. Since the original list is sorted, elements whose name does not begin with a letter should be in the first returned list. * [remove_duplicates compare li] removes the duplicates in the input list, keeping the leftmost occurrence of each repeated element.  M* [remove_ending_newline s] returns [s] without the optional ending newline. P * [search_string_backward pat s] searches backward string [pat] in string [s]. Return position in string [s] where [pat] appears, orelse raise [Not_found].  * Take a type and remove the option top constructor. This is useful when printing labels, we then remove the top option constructor for optional labels. /* Return [true] if the given label is optional.G Z* Return the label name for the given label, i.e. removes the beginning '?' if present.@(./ocamlc)-nostdlib"-I(./stdlib"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I(ocamldoc"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-I%tools"-I'runtime"-I1otherlibs/dynlink"-I-otherlibs/str"-I4otherlibs/systhreads"-I.otherlibs/unix"-I8otherlibs/runtime_events"-c  =/builds/workspace/precheck/flambda/false/label/ocaml-linux-32 <10/.-,+*)('&%$#"! @@0 Ty]&3        @ @@(Asttypes0>n{T8cئ8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ*Format_doc0]mWϓ:Mݠ%Ident0">WA+9*X,Identifiable0 {d\FX'`(Location0a7cK_H%9 X0s `7mɕc 0ys/k:Ԡ 0fX cx3H~+Outcometree0kX%d5Q/+)Parsetree0T鿁ۘ7Qu$Path0Y2kf֯J._Ϡ)Primitive0²~$xzT෠%Shape0oNՄBH&Stdlib0Lku]8_٠.Stdlib__Buffer08APF< t..Stdlib__Domain0:M;׉<O$Ġ.Stdlib__Either0Vy`u~c à.Stdlib__Format0ܚ#G7m|/Stdlib__Hashtbl0ѱN][/!,Stdlib__Lazy0* -S$.)"0D.Stdlib__Lexing0e<.V +Stdlib__Map0L5xE|O0~,J-+Stdlib__Seq0nwzG&amg+Stdlib__Set0\$;7 +Stdlib__Sys0 -ռ鱦s5/-Stdlib__Uchar056uf4[_.Type_immediacy0A^abOhՠ0^Y~# )Unit_info0ڀh%((Warnings0mJɒkgr