def step

bend-collections@1.0.0.0 · src/containers/binary_heap.bend:399

import bend-collections@1.0.0.0/src/containers/binary_heap.bend as BinaryHeap
import Base
import bend-collections@1.0.0.0/src/containers/types/binary_heap.bend as E

399def step(~A: Data, ~cmp: A -> A -> Cmp, h: Heap<A>, op: E.Op<A>) -> Heap<A> & E.Obs<A>:
400  match op:
401    case E.Length{}:
402      obs_nat(~A, length(~A, h))
403    case E.Push{x}:
404      (push(~A, ~cmp, h, x), E.OUnit{})
405    case E.Peek{}:
406      obs_item(~A, peek(~A, h))
407    case E.Pop{}:
408      obs_item(~A, pop(~A, ~cmp, h))
409    case E.FromList{xs}:
410      replace(~A, ~cmp, h, xs)
411    case E.ToSortedList{}:
412      obs_list(~A, to_sorted_list(~A, ~cmp, h))

Uses (15)

Used by (1)