Caml1999I037%-Stdlib__Stack!t;!a@@A@A@O@B@@@)stack.mliaa@@@@@@A@ %Empty##exnG@@@A&_none_@@A@ A@B@&create@$unitF@@@@@/!a@@@@@@@*h+h@@&Stdlib0t0VoS%{<F:8CamlinternalFormatBasics0|.e1R$|o@Y"@5unsynchronized_access :Unsynchronized accesses to stacks are a programming error.@A@Caml1999T037B *1'4C-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;@@#intA@@@@@;@A@$charB;@@$charA@@@@@A@A@&stringQ;@@&stringA@@@@@G@@@%bytesC;@@%bytesA@@@@@M@@@%floatD;@@%floatA@@@@@S@@@$boolE;@@%falsec@@]@$trued@@c@@@A@@@@@d@A@$unitF;@@"()e@@n@@@A@@@@@o@A@ #exnG;@@@A@@@@@s@@@#effH;@@O@A@A@@@@@@|@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@@@@%arrayJ;@@R@A%arrayA@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@ @@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A!=ocaml.warn_on_literal_pattern%@&@0Division_by_zero]#@@@A+ . .@+End_of_file\#$@@@A366@'FailureY#,@'@@A<??@0Invalid_argumentX#5@0@@AE$H#H@-Match_failureV#>@@=@9@;@@a@@AV5Y4Y@)Not_foundZ#O@@@A^=a<a@-Out_of_memoryW#W@@@AfEiDi@.Stack_overflow^#_@@@AnMqLq@.Sys_blocked_io_#g@@@AvUyTy@)Sys_error[#o@j@@A^]@:Undefined_recursive_modulea#x@@w@s@u@@h@@Aon@:Continuation_already_takenb#@@@Awv@&Stdlib@A= {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].  b b%@@@@@@@@@$@@@Aaa@@B@@;%@A@A@O@B@@@@@ @@A@'@@@@@@@':@%EmptyB,d'1-d'6@#.@@@A1d''@5 H Raised when {!Stack.pop} or {!Stack.top} is applied to an empty stack. >e77?e7@@@@@@@WA@@@@FS@@@@@@@3KJJKKKKK@Jl>@A $@&createYhZh@б@г$unitdheh@@ @@@3feefffff@C=@A@@г!tshth@А!a@C@hh@@@ @@@@@@$@@ @@!'@@@h@ & Return a new stack, initially empty. ii@@@@@@@B@@*@@@@@@@@$pushkk@б@А!a@C@3@Uj4@Akk@@б@г㠐!tkk@А!akk@@@@@@ @@г$unitkk@@ @@@(@@@@@@@- @@@7@@ @@20@@@k@ : [push x s] adds the element [x] at the top of stack [s]. ll+@@@@@@@C@@"@@@@@@@Q#popn-1n-4@б@г9!t!n-:"n-;@А!a@C@3)(()))))@p>@A/n-70n-9@@@ @@@ @@А!a :n-?;n-A@@@@@@@@@@Cn-- @G l [pop s] removes and returns the topmost element in stack [s], or raises {!Empty} if the stack is empty. PoBBQp@@@@@@@iD@@@Wd@@@@@@3'pop_optgrhr@б@г!trrsr@А!a@C@3zyyzzzzz@Rm>@Arr@@@ @@@ @@г⠐&optionrr@А!arr@@@"@@@ @@@@@ @@#!@@@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@@%@Đ@@@@@@B$dropwZ^wZb@б@гꠐ!twZhwZi@А!a@C@3@a|>@AwZewZg@@@ @@@ @@г$unitwZmwZq@@ @@@@@@@@@@ @@@wZZ @ o [drop s] removes the topmost element in stack [s], or raises {!Empty} if the stack is empty. @since 5.1 xrr z@@@@@@@!F@@@@@@@@@:#top| |@б@гB!t*|+|@А!a@C@321122222@Yt>@A8|9|@@@ @@@ @@А!a C|D|@@@@@@@@@@L| @P ` [top s] returns the topmost element in stack [s], or raises {!Empty} if the stack is empty. Y}Z~ 3 b@@@@@@@rG@@@`m@@@@@@3'top_optp@ d hq@ d o@б@г!t{@ d u|@ d v@А!a@C@3@Rm>@A@ d r@ d t@@@ @@@ @@г렐&option@ d }@ d @А!a@ d z@ 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@@%@͐@@@@@@B%clearE  E  @б@г!tE  E  @А!a@C@3@a|>@AE  E  @@@ @@@ @@г$unitE  E  @@ @@@@@@@@@@ @@@E   @ $ Discard all elements from a stack. F  F  7@@@@@@@*I@@@%@@@@@@:$copy(H 9 =)H 9 A@б@гK!t3H 9 G4H 9 H@А!a@C@3;::;;;;;@Yt>@AAH 9 DBH 9 F@@@ @@@ @@гg!tOH 9 OPH 9 P@А!aVH 9 LWH 9 N@@@"@@@ @@@@@ @@#!@@@dH 9 9@h # Return a copy of the given stack. qI Q QrI Q y@@@@@@@J@@%@x@@@@@@B(is_emptyK { K { @б@г!tK { K { @А!a@C@3@a|>@AK { K { @@@ @@@ @@гd$boolK { K { @@ @@@@@@@@@@ @@@K { { @ ? Return [true] if the given stack is empty, [false] otherwise. L  L  @@@@@@@K@@@ݐ@@@@@@:&lengthN  N  @б@г!tN  N  @А!a@C@3@Yt>@AN  N  @@@ @@@ @@гڠ#intN  N  @@ @@@@@@@@@@ @@@N   @ @ Return the number of elements in a stack. Time complexity O(1) !O  "O  ;@@@@@@@:L@@@(5@@@@@@:$iter8Q = A9Q = E@б@б@А!a@C@3CBBCCCCC@Ql6@AIQ = IJQ = K@@г$unitRQ = OSQ = S@@ @@@@@@@@@@ @@б@г~!tfQ = [gQ = \@А!a+&mQ = XnQ = Z@@@1@@@- @@г$unit{Q = `|Q = d@@ @@@:@@@@@@@? @@@2@@ @@DQ = H@@@Q = =@ [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. R e eT  @@@@@@@M@@#@@@@@@@d$fold V  !V  %@б@б@А#acc@C@3@{6@AV  )V  -@@б@А!a@C@V  1V  3@@А#accV  7V  ;@@@@@!@@ @@@&@@ @@! @@б@А#acc,'V  @V  D@@б@г !tV  KV  L@А!a/9V  HV  J@@@5@@@@ @@А#accIDV  PV  T@@@@@P@@K@@@U@@ @@P) @@@8@@ @@UV  (@@@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 U'Z  @@@@@@@?N@@$@-:@@@@@@uHG: {1 Stacks and Sequences} D\  E\  ?@@@@@@3CBBCCCCC@1@A&to_seq`P^ A EQ^ A K@б@гs!t[^ A Q\^ A R@А!a@ }C@ g^ A Nh^ A P@@@ @@@'@@г#Seq!ty^ A Yz^ A \@ }^ A ]~^ A ^@@А!a#>^ A V^ A X@@@)@@@ yE@@@'@@ z @@ {J*@@@^ A A@ k Iterate on the stack, top to bottom. It is safe to modify the stack during iteration. @since 4.07 _ _ _a  @@@@@@@O@@&@@@@@@@i'add_seqac  c  @б@гڠ!tc  c  @А!a@ C@ ~3@>@Ac  c  @@@ @@@  @@б@гN#Seq!tc  c  @ c  c  @@А!a'"c  c  @@@-@@@ )@@г$unitc  c  @@ @@@ 6@@@@@ @@ ; @@@;@@  @@ @>@@@c  @ M Add the elements from the sequence on the top of the stack. @since 4.07 d  e8J@@@@@@@6P@@"@$1@@@@@@_&of_seqb4gLP5gLV@б@г#Seq!tCgL\DgL_@ GgL`HgLa@@А!a@ C@ 3POOPPPPP@G@AVgLYWgL[@@@  @@@  @@г|!tdgLhegLi@А!akgLelgLg@@@"@@@  @@@@@  @@ #!@@@ygLL@} 3 Create a stack from the sequence. @since 4.07 hjji@@@@@@@Q@@%@@@@@@@B@A@qkB@F@@^@>@@[@;@@I@)@@}%@@i$@@B@@3@gD@A@ H************************************************************************A@@A@L@ H BMMBM@ 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.  LOO LO@ H  M M@ H************************************************************************ N N5@ c* Last-in first-out stacks. This module implements stacks (LIFOs), with in-place modification.  >* {b Unsynchronized accesses} u * 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.  ;* [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 { 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. t 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 2 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 _ ` Z/home/teraram/ci/builds/workspace/parallel-build/flambda/true/label/ocaml-manycores/stdlib @@0d :@\k443 d c c d d d d d@ b@@8CamlinternalFormatBasics0|.e1R$|o&Stdlib0t0VoS%{<F:.Stdlib__Either0HD ?|>+Stdlib__Seq0?72#[O 0"ׇFϛ*$k}@0"ׇFϛ*$k}ARCW@@hְ?hz@Ԑ%6x@2@@@@@@G@H]w@@@yq2@ܐ%@@P@@