def step

bend-collections@1.0.0.0 · src/containers/queue.bend:66

import bend-collections@1.0.0.0/src/containers/queue.bend as Queue
import Base
import bend-collections@1.0.0.0/src/containers/types/queue.bend as E

66def step(~T: Data, q: Queue<T>, op: E.Op<T>) -> Queue<T> & E.Obs<T>:
67  match op:
68    case E.Length{}:
69      obs_nat(~T, length(~T, q))
70    case E.Enqueue{+x}:
71      (enqueue(~T, q, x), E.OUnit{})
72    case E.Dequeue{}:
73      obs_item(~T, dequeue(~T, q))
74    case E.Peek{}:
75      obs_item(~T, peek(~T, q))
76    case E.ToList{}:
77      obs_list(~T, to_list(~T, q))

Uses (13)

Used by (1)