def step

bend-collections@1.0.0.0 · src/containers/stack.bend:52

import bend-collections@1.0.0.0/src/containers/stack.bend as Stack
import Base
import bend-collections@1.0.0.0/src/containers/types/stack.bend as E

52def step(~T: Data, q: Stack<T>, op: E.Op<T>) -> Stack<T> & E.Obs<T>:
53  match op:
54    case E.Length{}:
55      obs_nat(~T, length(~T, q))
56    case E.Push{+x}:
57      (push(~T, q, x), E.OUnit{})
58    case E.Pop{}:
59      obs_item(~T, pop(~T, q))
60    case E.Peek{}:
61      obs_item(~T, peek(~T, q))
62    case E.ToList{}:
63      obs_list(~T, to_list(~T, q))

Uses (13)

Used by (1)