Caml1999I037eN-Stdlib__Stack!t;!a@@A@A@O@B@@@)stack.mliaa@@@@@@A@ %Empty##exnG@@@A&_none_@@A@ A@B@&create@$unitF@@@-!a@@@@@@@(h)h@@:B@@$push@!a@@ @@@$@@@@@@@@AkBk@@SC@@#pop@-!a@@@@@@@Tn--Un-A@@fD@@'pop_opt@@!a@@@@&optionL @@@@@@nror@@E@@$drop@Z!a@@@@h@@@@@@wZZwZq@@F@@#top@q!a@@@@@@@||@@G@@'top_opt@!a@@@@D @@@@@@@ d d@ d @@H@@%clear@!a@@@@@@@@@@E  E  @@I@@$copy@!a@@@@@@@@@@H 9 9H 9 P@@J@@(is_empty@ʠ!a@@@@$boolE@@@@@@K { {K { @@ K@@&length@!a@@@@#intA@@@@@@N  N  @@"L@@$iter@@!a@@@@@@@ @@@@@@@@@@@/Q = =0Q = d@@AM@@$fold@@#acc@@!a@ @@@@@ @+ @@@@@@@@@@NV  OV  T@@`N@@&to_seq@:!a@@@@&Stdlib#Seq!t@@@@@@l^ A Am^ A ^@@~O@@'add_seq@X!a@@@@@ #Seq!t@@@p@@@@@@@@c  c  @@P@@&of_seq@7#Seq!t!a@@@@@@@@@@gLLgLi@@Q@@@_L-Stdlib__Stack0muh:0\+Stdlib__Seq0nwzG&amg.Stdlib__Either0Vy`u~c à&Stdlib0Lku]8_٠8CamlinternalFormatBasics0%FU(Q/Tu@Y"@5unsynchronized_access :Unsynchronized accesses to stacks are a programming error.@A@Caml1999T037A. t)&5C-Stdlib__Stack*ocaml.text&_none_@@A b Last-in first-out stacks. This module implements stacks (LIFOs), with in-place modification. )stack.mliP77S@@@@@@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= {b Unsynchronized accesses} UU@@@@@@%alertWW@5unsynchronized_accessWW@@@@@ :Unsynchronized accesses to stacks are a programming error.XX#@@XX$@@@@@@@@@@WY%&@@Ő Unsynchronized accesses to a stack may lead to an invalid queue state. Thus, concurrent accesses to stacks must be synchronized (for instance with a {!Mutex.t}). [()_@@@@@@A+!tAaa@А!a@3@;@@@A@A@G@B@@@a@)ocaml.doc󐠠 6 The type of stacks containing elements of type ['a]. bb%@@@@@@@@@ @@@Aaa@@B@@;%@A@A@O@B@@@@@ @@A@ @@@@@@@':@%EmptyBd'1d'6@#.@@@Ad''@5 H Raised when {!Stack.pop} or {!Stack.top} is applied to an empty stack. #e77$e7@@@@@@@@A $@&create>h?h@б@г$unitIhJh@@ @@@3KJJKKKKK@C=@A@@г!tXhYh@А!a@C@dheh@@@ @@@@@@"@@%@@@ph@ & Return a new stack, initially empty. }i~i@@@@@@@B@@(@@@@@@@>$pushkk@б@А!a@C@3@Sh4@Akk@@б@г᠐!tkk@А!akk@@@@@@ @@гp$unitkk@@ @@@(@@@@@+@@@3@@., @@@k@𐠠 : [push x s] adds the element [x] at the top of stack [s]. ll+@@@@@@@C@@@򐠠@@@@@@M#popn-1n-4@б@г3!tn-:n-;@А!a@C@3@l}>@An-7n-9@@@ @@@ @@А!a n-?n-A@@@ @@@@@ n--@? l [pop s] removes and returns the topmost element in stack [s], or raises {!Empty} if the stack is empty. -oBB.p@@@@@@@FD@@@OA@@@@@@1'pop_optDrEr@б@г!tOrPr@А!a@C@3WVVWWWWW@Pk>@A]r^r@@@ @@@ @@гʠ&optionkrlr@А!arrsr@@@"@@@ @@@@@!@@@~r@ ~ [pop_opt s] removes and returns the topmost element in stack [s], or returns [None] if the stack is empty. @since 4.08 suGX@@@@@@@E@@#@@@@@@@@$dropwZ^wZb@б@гࠐ!twZhwZi@А!a@C@3@_z>@AwZewZg@@@ @@@ @@гv$unitwZmwZq@@ @@@@@@@@@@@wZZ @󐠠 o [drop s] removes the topmost element in stack [s], or raises {!Empty} if the stack is empty. @since 5.1 xrrz@@@@@@@F@@@@@@@@@8#top||@б@г6!t||@А!a@C@3        @Wr>@A||@@@ @@@ @@А!a ||@@@ @@@@@#|@B ` [top s] returns the topmost element in stack [s], or raises {!Empty} if the stack is empty. 0}1~ 3 b@@@@@@@IG@@@RD@@@@@@1'top_optG@ d hH@ d o@б@г!tR@ d uS@ d v@А!a@C@3ZYYZZZZZ@Pk>@A`@ d ra@ d t@@@ @@@ @@г͠&optionn@ d }o@ d @А!au@ d zv@ d |@@@"@@@ @@@@@!@@@@ d d@ j [top_opt s] returns the topmost element in stack [s], or [None] if the stack is empty. @since 4.08 A  C  @@@@@@@H@@#@@@@@@@@%clearE  E  @б@г㠐!tE  E  @А!a@C@3@_z>@AE  E  @@@ @@@ @@гy$unitE  E  @@ @@@@@@@@@@@E   @ $ Discard all elements from a stack. F  F  7@@@@@@@I@@@@@@@@@8$copyH 9 =H 9 A@б@г9!tH 9 GH 9 H@А!a@C@3  @Wr>@AH 9 DH 9 F@@@ @@@ @@гU!t"H 9 O#H 9 P@А!a)H 9 L*H 9 N@@@"@@@ @@@@@!@@@5H 9 9@T # Return a copy of the given stack. BI Q QCI Q y@@@@@@@[J@@#@dV@@@@@@@(is_emptyYK { ZK { @б@г!tdK { eK { @А!a@C@3lkklllll@_z>@ArK { sK { @@@ @@@ @@г>$boolK { K { @@ @@@@@@@@@@@K { { @ ? Return [true] if the given stack is empty, [false] otherwise. L  L  @@@@@@@K@@@@@@@@@8&lengthN  N  @б@г!tN  N  @А!a@C@3@Wr>@AN  N  @@@ @@@ @@г#intN  N  @@ @@@@@@@@@@@N   @ @ Return the number of elements in a stack. Time complexity O(1) O  O  ;@@@@@@@L@@@@@@@@@8$iterQ = AQ = E@б@б@А!a@C@3@Oj6@AQ = IQ = K@@г̠$unitQ = O Q = S@@ @@@@@@@@@@б@гd!t1Q = [2Q = \@А!a)$8Q = X9Q = Z@@@/@@@+ @@г$unitFQ = `GQ = d@@ @@@8@@@@@;@@@,@@>RQ = H @@@UQ = =@t [iter f s] applies [f] in turn to all elements of [s], from the element at the top of the stack to the element at the bottom of the stack. The stack itself is unchanged. bR e ecT  @@@@@@@{M@@@v@@@@@@^$fold yV  !zV  %@б@б@А#acc@ C@3@u6@AV  )V  -@@б@А!a@C@V  1V  3@@А#accV  7V  ;@@@@@ @@@"@@@@б@А#acc(#V  @V  D@@б@г預!tV  KV  L@А!a+5V  HV  J@@@1@@@< @@А#accE@V  PV  T@@@ J@@E@@@M@@H%@@@0@@KV  ( @@@V  @ [fold f accu s] is [(f (... (f (f accu x1) x2) ...) xn)] where [x1] is the top of the stack, [x2] the second element, and [xn] the bottom element. The stack is unchanged. @since 4.03 W U UZ  @@@@@@@N@@@@@@@@@k: {1 Stacks and Sequences} \  \  ?@@@@@@3@}1@A&to_seq` ^ A E^ A K@б@гK!t^ A Q^ A R@А!a@ 4C@  $^ A N%^ A P@@@ @@@ '@@г#Seq!t6^ A Y7^ A \@ :^ A ];^ A ^@@А!a#>B^ A VC^ A X@@@)@@@ 1E@@@%@@ 2H(@@@N^ A A@m k Iterate on the stack, top to bottom. It is safe to modify the stack during iteration. @since 4.07 [_ _ _\a  @@@@@@@tO@@$@}o@@@@@@g'add_seqarc  sc  @б@г!t}c  ~c  @А!a@ >C@ 53@>@Ac  c  @@@ @@@ 7 @@б@г$#Seq!tc  c  @ c  c  @@А!a'"c  c  @@@-@@@ 9)@@гf$unitc  c  @@ @@@ :6@@@@@ ;9@@@7@@ <<: @@@c  @搠 M Add the elements from the sequence on the top of the stack. @since 4.07 d  e8J@@@@@@@P@@@萠@@@@@@[&of_seqbgLPgLV@б@г#Seq!tgL\gL_@ gL`gLa@@А!a@ FC@ ?3@G@A gLYgL[@@@  @@@ A @@гN!tgLhgLi@А!a"gLe#gLg@@@"@@@ C @@@@@ D!@@@.gLL@M 3 Create a stack from the sequence. @since 4.07 ;hjj<i@@@@@@@TQ@@#@]O@@@@@@@@UA@A;B@@@c6@@@f9@@@i-@ @@e@@a@@B@@3kjjkkkkk@eD@A@ H************************************************************************tA@@uA@L@ H zBMM{BM@ H OCaml CC@ H DD3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt E44E4@ H FF@ H Copyright 1996 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@ c* Last-in first-out stacks. This module implements stacks (LIFOs), with in-place modification. Ƞ>* {b Unsynchronized accesses} E * Unsynchronized accesses to a stack may lead to an invalid queue state. Thus, concurrent accesses to stacks must be synchronized (for instance with a {!Mutex.t}).  7* The type of stacks containing elements of type ['a]. ᠠ I* Raised when {!Stack.pop} or {!Stack.top} is applied to an empty stack.  '* Return a new stack, initially empty. Z ;* [push x s] adds the element [x] at the top of stack [s].  m* [pop s] removes and returns the topmost element in stack [s], or raises {!Empty} if the stack is empty.  * [pop_opt s] removes and returns the topmost element in stack [s], or returns [None] if the stack is empty. @since 4.08 U p* [drop s] removes the topmost element in stack [s], or raises {!Empty} if the stack is empty. @since 5.1  a* [top s] returns the topmost element in stack [s], or raises {!Empty} if the stack is empty.  k* [top_opt s] returns the topmost element in stack [s], or [None] if the stack is empty. @since 4.08 [ %* Discard all elements from a stack.  $* Return a copy of the given stack.  @* Return [true] if the given stack is empty, [false] otherwise. Z A* Return the number of elements in a stack. Time complexity O(1)  * [iter f s] applies [f] in turn to all elements of [s], from the element at the top of the stack to the element at the bottom of the stack. The stack itself is unchanged.  * [fold f accu s] is [(f (... (f (f accu x1) x2) ...) xn)] where [x1] is the top of the stack, [x2] the second element, and [xn] the bottom element. The stack is unchanged. @since 4.03 ;* {1 Stacks and Sequences}  l* Iterate on the stack, top to bottom. It is safe to modify the stack during iteration. @since 4.07  N* Add the elements from the sequence on the top of the stack. @since 4.07 0 4* Create a stack from the sequence. @since 4.07 @?)../ocamlc0-strict-sequence(-absname"-w5+a-4-9-41-42-44-45-48"-g+-warn-error"+A*-bin-annot)-nostdlib*-principal"-o1stdlib__Stack.cmi"-c   D/builds/workspace/precheck/flambda/false/label/ocaml-linux-32/stdlib @@0d :@\k443        @ @@8CamlinternalFormatBasics0%FU(Q/Tu&Stdlib0Lku]8_٠.Stdlib__Either0Vy`u~c à+Stdlib__Seq0nwzG&amg I0muh:0\@0muh:0\ARCU@@fа7P\@T@ @X@@@@i@_@ѐ-G@t@@qYe@ @@P@@