Caml1999I031W>-Stdlib__Queue!t8!a@@A@A@O@B@@@)queue.mliYUUYU_@@@@@A@ %Empty #exnG@@@A&_none_@@A@AB@&create@$unitF@@@,!a@@@@@@@(a)a@@9B@#add@!a@@ @@@$@@@@@@@@AdGGBdGc@@RC@$push@!a@@3 @@@=@@@@@@@@Zg[g@@kD@$take@F!a@@@@@@@mjnj@@~E@(take_opt@Y!a@@@@&optionJ @@@@@@nuunu@@F@#pop@s!a@@@@@@@ss.@@G@$peek@!a@@@@@@@vVVvVk@@H@(peek_opt@!a@@@@@ @@@@@@zz @@I@#top@!a@@@@@@@    @@J@%clear@Ġ!a@@@@@@@@@@B  B  @@K@$copy@۠!a@@@@@@@@@@E 3 3E 3 J@@L@(is_empty@!a@@@@$boolE@@@@@@H u u H u @@0M@&length@ !a@@@@#intA@@@@@@8K  9K  @@IN@$iter@@!a@0@@@@@@0 @@@:@@@@@@@@WN " "XN " I@@hO@$fold@@!b@@!a@ @@@@@ @S @@@@@@@@@@vS  wS  @@P@(transfer@b!a@@@@@l @@@v@@@@@@@@X  X  @@Q@&to_seq@!a@@@@&Stdlib#Seq!t@@@@@@`  `  @@R@'add_seq@!a@@@@@ #Seq!t@@@@@@@@@@@frrfr@@S@&of_seq@7#Seq!t!a@@@@ʠ@@@@@@jj@@T@@_L-Stdlib__Queue0 | :!G+Stdlib__Seq0yt\eǟ&Q,}.Stdlib__Either0 }rCT0J){9)&Stdlib0>,W:(8CamlinternalFormatBasics0cEXyYU^?YU_@А!a@0EDDEEEEE@D8@@@A@A@G@B@@@QYUU@)ocaml.docb 6 The type of queues containing elements of type ['a]. _Z```Z`@@@@@@@@@w@@AcYU[dYU]@@B@@8#@A@A@O@B@@@@@ @@A@@g,@%Empty Bt]u]@ @@@Ay]@( J Raised when {!Queue.take} or {!Queue.peek} is applied to an empty queue. ^^@@@@@@@A@@@@0@R&@A@&create aa @б@г$unita a@@ @@@0@71@A@@гq!taa@А!a@C@aa@@@ @@@@@@"@@%@@@a@v & Return a new queue, initially empty. bbE@@@@@@@B@'@2#add dGKdGN@б@А!a@C@0@G\(@AdGQdGS@@б@г!tdGZdG[@А!adGWdGY@@@@@@ @@гg$unitdG_dGc@@ @@@(@@@@@+@@@3@@., @@@dGG@ː = [add x q] adds the element [x] at the end of the queue [q]. (edd)ed@@@@@@@@C@@A$push4g5g@б@А!a@C@0=<<=====@Vg(@ACgDg@@б@г!tNgOg@А!aUgVg@@@@@@ @@г$unitcgdg@@ @@@(@@@@@+@@@3@@., @@@qg@ [push] is a synonym for [add]. }h~h@@@@@@@D@@A$takejj@б@гV!tjj@А!a@C@0@`q2@Ajj@@@ @@@ @@А!a jj@@@ @@@@@j@c k [take q] removes and returns the first element in queue [q], or raises {!Empty} if the queue is empty. klDs@@@@@@@E@@%(take_optnuynu@б@г!tnunu@А!a@C@0@D_2@Anunu@@@ @@@ @@гg&optionnunu@А!anunu@@@"@@@ @@@@@!@@@nuu@ } [take_opt q] removes and returns the first element in queue [q], or returns [None] if the queue is empty. @since 4.08 oq@@@@@@@*F@"@4#popss!@б@г렐!t)s'*s(@А!a@C@010011111@Sn2@A7s$8s&@@@ @@@ @@А!a Bs,Cs.@@@ @@@@@Is@ [pop] is a synonym for [take]. Ut//Vt/T@@@@@@@mG@@%$peekavVZbvV^@б@г.!tlvVdmvVe@А!a@C@0tssttttt@D_2@AzvVa{vVc@@@ @@@ @@А!a vVivVk@@@ @@@@@vVV@; [peek q] returns the first element in queue [q], without removing it from the queue, or raises {!Empty} if the queue is empty. wllx@@@@@@@H@@%(peek_optzz @б@гq!tz z @А!a@C@0@D_2@Az z @@@ @@@ @@г?&optionz z @А!az z @@@"@@@ @@@@@!@@@z@ [peek_opt q] returns the first element in queue [q], without removing it from the queue, or returns [None] if the queue is empty. @since 4.08 {  }  @@@@@@@I@"@4#top    @б@гà!t    @А!a@C@0      @Sn2@A    @@@ @@@ @@А!a     @@@ @@@@@!  @А [top] is a synonym for [peek]. -@  .@  @@@@@@@EJ@@%%clear9B  :B  @б@г!tDB  EB  @А!a@C@0LKKLLLLL@D_2@ARB  SB  @@@ @@@ @@г$unit`B  aB  @@ @@@@@@@@@@@kB   @ $ Discard all elements from a queue. wC  xC  1@@@@@@@K@@,$copyE 3 7E 3 ;@б@гP!tE 3 AE 3 B@А!a@C@0@Kf2@AE 3 >E 3 @@@@ @@@ @@гl!tE 3 IE 3 J@А!aE 3 FE 3 H@@@"@@@ @@@@@!@@@E 3 3@l # Return a copy of the given queue. F K KF K s@@@@@@@L@"@4(is_emptyH u yH u @б@г!tH u H u @А!a@C@0@Sn2@AH u H u @@@ @@@ @@гˠ$boolH u H u @@ @@@@@@@@@@@H u u @ ? Return [true] if the given queue is empty, [false] otherwise. I  I  @@@@@@@+M@@,&lengthK   K  @б@г점!t*K  +K  @А!a@C@021122222@Kf2@A8K  9K  @@@ @@@ @@г#intFK  GK  @@ @@@@@@@@@@@QK   @ + Return the number of elements in a queue. ]L  ^L  @@@@@@@uN@@,$iteriN " &jN " *@б@б@А!a@C@0tssttttt@C^*@AzN " .{N " 0@@гܠ$unitN " 4N " 8@@ @@@@@@@@@@б@гW!tN " @N " A@А!a)$N " =N " ?@@@/@@@+ @@г$unitN " EN " I@@ @@@8@@@@@;@@@,@@>N " - @@@N " "@h [iter f q] applies [f] in turn to all elements of [q], from the least recently entered to the most recently entered. The queue itself is unchanged. O J JQ  @@@@@@@O@@R$foldS  S  @б@б@А!b@C@ 0@i|*@AS  S  @@б@А!a@C@ S  S  @@А!bS  S  @@@@@  @@@"@@ @@б@А!b(#S  S  @@б@гР!tS  S  @А!a+5S  S  @@@1@@@< @@А!bE@ S  !S  @@@ J@@E@@@M@@H%@@@0@@K+S   @@@.S  @ݐ [fold f accu q] is equivalent to [List.fold_left f accu l], where [l] is the list of [q]'s elements. The queue remains unchanged. :T  ;V  @@@@@@@RP@@_(transferFX  GX  @б@г!tQX  RX  @А!a@C@0YXXYYYYY@~2@A_X  `X  @@@ @@@ @@б@г1!toX  pX  @А!avX  wX  @@@$@@@  @@гݠ$unitX  X  @@ @@@-@@@@@0@@@.@@31 @@@X  @A [transfer q1 q2] adds all of [q1]'s elements at the end of the queue [q2], then clears [q1]. It is equivalent to the sequence [iter (fun x -> add x q2) q1; clear q1], but runs in constant time. Y  \  @@@@@@@Q@@F/ {1 Iterators} ^  ^  @@@@@@0@Vq#@A&to_seqW`  `  @б@г!t`  `  @А!a@ C@  `  `  @@@ @@@"'@@г#Seq!t`  `  @А!a8`  `  @@@#@@@ ? @@@@@ B"@@@`  @ Iterate on the queue, in front-to-back order. The behavior is not specified if the queue is modified during the iteration. @since 4.07 a  d^p@@@@@@@R@"@U'add_seqXfrvfr}@б@г۠!tfrfr@А!a@ C@ 0!  !!!!!@to2@A'fr(fr@@@ @@@  @@б@г#Seq!t:fr;fr@А!a!AfrBfr@@@'@@@ # @@г$unitOfrPfr@@ @@@ 0@@@@@ 3@@@1@@ 64 @@@]frr@ K Add the elements from a sequence to the end of the queue. @since 4.07 igjh@@@@@@@S@@I&of_seqYujvj@б@гK#Seq!tjj@А!a@ %C@ 0@k5@Ajj@@@ @@@  @@гa!tjj@А!ajj@@@"@@@ " @@@@@ #!@@@j@a 1 Create a queue from a sequence. @since 4.07 k  l-?@@@@@@@T@"@4@^A@VPB@7@@]@I@@@wJ@6@@q@]!@ @@}+@@V@1@@{<@@0@_}>@A@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml CC@ H DD3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt  E44 E4@ H FF@ H Copyright 1996 Institut National de Recherche en Informatique et GG@ H en Automatique. HHg@ 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. 4LOO5LO@ H :M;M@ H************************************************************************@NAN5@ * First-in first-out queues. This module implements queues (FIFOs), with in-place modification. {b Warning} This module is not thread-safe: each {!Queue.t} value must be protected from concurrent access (e.g. with a [Mutex.t]). Failure to do so can lead to a crash. F 7* The type of queues containing elements of type ['a]. ꠠ K* Raised when {!Queue.take} or {!Queue.peek} is applied to an empty queue. Ǡ '* Return a new queue, initially empty. | >* [add x q] adds the element [x] at the end of the queue [q]. * !* [push] is a synonym for [add]. ؠ l* [take q] removes and returns the first element in queue [q], or raises {!Empty} if the queue is empty.  ~* [take_opt q] removes and returns the first element in queue [q], or returns [None] if the queue is empty. @since 4.08 I !* [pop] is a synonym for [take].  * [peek q] returns the first element in queue [q], without removing it from the queue, or raises {!Empty} if the queue is empty. ɠ * [peek_opt q] returns the first element in queue [q], without removing it from the queue, or returns [None] if the queue is empty. @since 4.08 z !* [top] is a synonym for [peek]. : %* Discard all elements from a queue.  $* Return a copy of the given queue.  @* Return [true] if the given queue is empty, [false] otherwise. ] ,* Return the number of elements in a queue.  * [iter f q] applies [f] in turn to all elements of [q], from the least recently entered to the most recently entered. The queue itself is unchanged.  * [fold f accu q] is equivalent to [List.fold_left f accu l], where [l] is the list of [q]'s elements. The queue remains unchanged. ? * [transfer q1 q2] adds all of [q1]'s elements at the end of the queue [q2], then clears [q1]. It is equivalent to the sequence [iter (fun x -> add x q2) q1; clear q1], but runs in constant time. ޠ0* {1 Iterators} Р * Iterate on the queue, in front-to-back order. The behavior is not specified if the queue is modified during the iteration. @since 4.07  L* Add the elements from a sequence to the end of the queue. @since 4.07  2* Create a queue from a sequence. @since 4.07 @D)../ocamlc0-strict-sequence(-absname"-w8+a-4-9-41-42-44-45-48-70"-g+-warn-error"+A*-bin-annot)-nostdlib*-principal,-safe-string/-strict-formats"-o1stdlib__Queue.cmi"-c 1/home/barsac/ci/builds/workspace/bootstrap/stdlib @0kئ"L1z0@@@8CamlinternalFormatBasics0cEXy,W:(.Stdlib__Either0 }rCT0J){9)Ő0 | :!G+Stdlib__Seq0yt\eǟ&Q,}@0 | :!GAU@@QP@@@@IH@dc+*GF@@hy@  @ǰFU@@@yx@@@@P@