src/containers/stack.bend checks
raw source on the hub · import 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/stack.bend as Stack
2 imports
import Base import ./types/stack.bend as E
Types
type Stack source · line 6 · raw
@-T:Data -> Type
Stack over the native singly linked List, with a stored length. Push/pop/peek/length O(1); to_list shares immutable Data elements/list.
ST@-T:Data -> @items:List<&2, T> -> @count:Nat -> Stack<T>
Templates
template new source · line 9 · raw
@-T:Data -> Stack<T>
template length source · line 12 · raw
@-T:Data -> @s:Stack<T> -> Pair(Stack<T>, Nat)
template push source · line 16 · raw
@-T:Data -> @s:Stack<T> -> @x:T -> Stack<T>
template pop source · line 20 · raw
@-T:Data -> @s:Stack<T> -> Pair(Stack<T>, Result<&2, &2, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Error, T>)
template peek source · line 27 · raw
@-T:Data -> @s:Stack<T> -> Pair(Stack<T>, Result<&2, &2, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Error, T>)
template to_list source · line 34 · raw
@-T:Data -> @s:Stack<T> -> Pair(Stack<T>, List<&2, T>)
template obs_nat source · line 40 · raw
@-T:Data -> @r:Pair(Stack<T>, Nat) -> Pair(Stack<T>, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Obs<T>)
template obs_item source · line 44 · raw
@-T:Data -> @r:Pair(Stack<T>, Result<&2, &2, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Error, T>) -> Pair(Stack<T>, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Obs<T>)
template obs_list source · line 48 · raw
@-T:Data -> @r:Pair(Stack<T>, List<&2, T>) -> Pair(Stack<T>, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Obs<T>)
template step source · line 52 · raw
@-T:Data -> @q:Stack<T> -> @op:0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Op<T> -> Pair(Stack<T>, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Obs<T>)
template record source · line 65 · raw
@-T:Data -> @acc:List<&2, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Obs<T>> -> @r:Pair(Stack<T>, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Obs<T>) -> Pair(Stack<T>, List<&2, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Obs<T>>)
template step_acc source · line 69 · raw
@-T:Data -> @op:0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Op<T> -> @st:Pair(Stack<T>, List<&2, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Obs<T>>) -> Pair(Stack<T>, List<&2, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Obs<T>>)
template run_acc source · line 73 · raw
@-T:Data -> @ops:List<&2, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Op<T>> -> @st:Pair(Stack<T>, List<&2, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Obs<T>>) -> Pair(Stack<T>, List<&2, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Obs<T>>)
template finish source · line 80 · raw
@-T:Data -> @st:Pair(Stack<T>, List<&2, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Obs<T>>) -> Pair(Stack<T>, List<&2, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Obs<T>>)
template run source · line 84 · raw
@-T:Data -> @ops:List<&2, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Op<T>> -> @q:Stack<T> -> Pair(Stack<T>, List<&2, 0xd9a2fae439ac7ff9e21e0853948f94fe/src/containers/types/stack.Obs<T>>)