~/bend-docscommunity

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.

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>>)