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 )q&tC-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@Sh4@Akk@@б@г᠐!tkk@А!akk@@@@@@ @@г$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}>@A)n-7*n-9@@@ @@@ @@А!a 4n-?5n-A@@@ @@@@@;n--@? l [pop s] removes and returns the topmost element in stack [s], or raises {!Empty} if the stack is empty. HoBBIp@@@@@@@aD@@@O\@@@@@@1'pop_opt_r`r@б@г!tjrkr@А!a@C@3rqqrrrrr@Pk>@Axryr@@@ @@@ @@гڠ&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@@#@@@@@@@@$dropwZ^wZb@б@гࠐ!twZhwZi@А!a@C@3@_z>@AwZewZg@@@ @@@ @@г$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 7|8|@@@ @@@@@>|@B ` [top s] returns the topmost element in stack [s], or raises {!Empty} if the stack is empty. K}L~ 3 b@@@@@@@dG@@@R_@@@@@@1'top_optb@ d hc@ d o@б@г!tm@ d un@ d v@А!a@C@3uttuuuuu@Pk>@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@@#@@@@@@@@%clearE  E  @б@г㠐!tE  E  @А!a@C@3@_z>@AE  E  @@@ @@@ @@г$unitE  E  @@ @@@@@@@@@@@E   @ $ Discard all elements from a stack. F  F  7@@@@@@@I@@@@@@@@@8$copyH 9 =H 9 A@б@г9!t!H 9 G"H 9 H@А!a@C@3)(()))))@Wr>@A/H 9 D0H 9 F@@@ @@@ @@гU!t=H 9 O>H 9 P@А!aDH 9 LEH 9 N@@@"@@@ @@@@@!@@@PH 9 9@T # Return a copy of the given stack. ]I Q Q^I Q y@@@@@@@vJ@@#@dq@@@@@@@(is_emptytK { uK { @б@г!tK { K { @А!a@C@3@_z>@AK { K { @@@ @@@ @@гP$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$iter Q = A!Q = E@б@б@А!a@C@3+**+++++@Oj6@A1Q = I2Q = K@@гޠ$unit:Q = O;Q = S@@ @@@@@@@@@@б@гd!tLQ = [MQ = \@А!a)$SQ = XTQ = Z@@@/@@@+ @@г$unitaQ = `bQ = d@@ @@@8@@@@@;@@@,@@>mQ = H @@@pQ = =@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. }R e e~T  @@@@@@@M@@@@@@@@@^$fold V  !V  %@б@б@А#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!t3^ A Q4^ A R@А!a@ 4C@  ?^ A N@^ A P@@@ @@@ '@@г#Seq!tQ^ A YR^ A \@ U^ A ]V^ A ^@@А!a#>]^ A V^^ A X@@@)@@@ 1E@@@%@@ 2H(@@@i^ A A@m k Iterate on the stack, top to bottom. It is safe to modify the stack during iteration. @since 4.07 v_ _ _wa  @@@@@@@O@@$@}@@@@@@g'add_seqac  c  @б@г!tc  c  @А!a@ >C@ 53@>@Ac  c  @@@ @@@ 7 @@б@г$#Seq!tc  c  @ c  c  @@А!a'"c  c  @@@-@@@ 9)@@гx$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(gLY)gL[@@@  @@@ A @@гN!t6gLh7gLi@А!a=gLe>gLg@@@"@@@ C @@@@@ D!@@@IgLL@M 3 Create a stack from the sequence. @since 4.07 VhjjWi@@@@@@@oQ@@#@]j@@@@@@@@UA@A;B@@@c6@@@f9@@@i-@ @@e@@a@@B@@3@eD@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. 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 / 0 Z/home/teraram/ci/builds/workspace/parallel-build/flambda/true/label/ocaml-manycores/stdlib @@0d :@\k443 4 3 3 4 4 4 4 4@ 2@@8CamlinternalFormatBasics0%FU(Q/Tu&Stdlib0Lku]8_٠.Stdlib__Either0Vy`u~c à+Stdlib__Seq0nwzG&amg d0muh:0\@0muh:0\ARCU@@fа7P\@T@ @X@@@@i@_@ѐ-G@t@@qYe@ @@P@@