?55.5.0+dev0-2025-04-28/%Stack!tA;!a@@A@A@O@B@@@6../../stdlib/stack.mliaa@@@@%Stack@@A@±%EmptyB##exnG@@@AdDDdDS@@A@B@&create@$unitc@@@%Stackd!t!a@C@@@@@@@/h0h@@.B@@$push@!a@C@@%Stacke!t@@@1f@@@@@@@@PkQk@@OC@@#pop@%Stackg!t!a@C@@@@@@@jnJJknJ^@@iD@@'pop_opt@%Stackh!t!a@C@@@@&optionL @@@@@@rr@@E@@$drop@%Stacki!t!a@C@@@@j@@@@@@wwwww@@F@@#top@%Stackk!t!a@C@@@@@@@|  |  @@G@@'top_opt@%Stackl!t!a@C@@@@Z @@@@@@@  @  @@H@@%clear@%Stackm!t!a@C@@@@n@@@@@@E  E  *@@I@@$copy@%Stacko!t!a@C@@@@%Stackp!t@@@@@@%H V V&H V m@@$J@@(is_empty@%Stackq!t!a@C@@@@$boolr@@@@@@EK  FK  @@DK@@&length@%Stacks!t!a@C@@@@#intt@@@@@@eN  fN  @@dL@@$iter@@!a@C@^u@@@@@@%Stackv!t@@@nw@@@@@@@@Q Z ZQ Z @@M@@$fold @@#acc@ C@@!a@C@@@@@@@%Stackx!t@@@@@@@@@@V : :V : q@@N@@&to_seq`@%Stacky!t!a@ 4C@ @@@ &Stdlibz#Seq!t@@@ 1@@ 2@^ ^ ^^ ^ {@@O@@'add_seqa@%Stack{!t!a@ >C@ 5@@@ 7@&Stdlib|#Seq!t@@@ 9}@@@ :@@ ;@@ <@c  c @@P@@&of_seqb@&Stdlib~#Seq!t!a@ FC@ ?@@@ A%Stack!t@@@ C@@ D@+gii,gi@@*Q@@@39Last-in first-out stacks.@ F This module implements stacks (LIFOs), with in-place modification.@@@@@@@@@@@5unsynchronized_access :Unsynchronized accesses to stacks are a programming error.@A6../../stdlib/stack.mli7Unsynchronized accesses@@ 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@@").@#'Stack.t3 /The type of stacks containing elements of type "'a!.@@@@@@@@@@@@kO@@A@@fd@@+Stack.Empty3,Raised when )Stack.popD@$ or )Stack.topD@> is applied to an empty stack.@@@@@@@@@@@@@@@@sr@@,Stack.create3 $Return a new stack, initially empty.@@@@@@@@@@@@u@ w@@@@d*Stack.push3(push x s2 adds the element !x5 at the top of stack !s!.@@@@@@@@@@@@t@u@"p@@@@dD3%pop s 2 removes and returns the topmost element in stack !s/, or raises ^G@7 if the stack is empty.@@@@@@@@@@@@s@?t@@@@g-Stack.pop_opt3)pop_opt s 2 removes and returns the topmost element in stack !s0, or returns $None7 if the stack is empty.@@@@$4.08@@@@@@@y@_z@@@@f*Stack.drop3&drop s & removes the topmost element in stack !s/, or raises G@7 if the stack is empty.@@@@#5.1@@@@@@@x@y@@@@g3%top s & returns the topmost element in stack !s/, or raises G@7 if the stack is empty.@@@@@@@@@@@@v@w@@@@j-Stack.top_opt3)top_opt s & returns the topmost element in stack !s(, or $None7 if the stack is empty.@@@@$4.08@@@@@@@|@}@@@@k+Stack.clear3 "Discard all elements from a stack.@@@@@@@@@@@@l@m@@@@[*Stack.copy3 !Return a copy of the given stack.@@@@@@@@@@@@\@]@@@@G.Stack.is_empty3'Return $true> if the given stack is empty, %false+ otherwise.@@@@@@@@@@@@T@U@@@@B,Stack.length3 >Return the number of elements in a stack. Time complexity O(1)@@@@@@@@@@@@C@D@@@@1*Stack.iter3(iter f s) applies !f< in turn to all elements of !s z, from the element at the top of the stack to the element at the bottom of the stack. The stack itself is unchanged.@@@@@@@@@@@@A@"B@%6@@@@**Stack.fold3-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.@@@@$4.03@@@@@@@H@QI@TJ@W;@@@@4A@4Stacks and Sequences@@,Stack.to_seq3 YIterate on the stack, top to bottom. It is safe to modify the stack during iteration.@@@@$4.07@@@@@@@>@o?@@@@'-Stack.add_seq3 ;Add the elements from the sequence on the top of the stack.@@@@$4.07@@@@@@@*@+@@@@@,Stack.of_seq3 !Create a stack from the sequence.@@@@$4.07@@@@@@@@@@@@@@@@A#Seq@@@@@