def select
import bend-kit-scheduler@0.4.1.0/queue.bend as Queueimport Base
import bend-kit-collections@0.1.4.1/heap.bend as H
54def select(~A: Data, now: Nat, s: State<A>) -> State<A> & Maybe<&2, Ticket<A>>:
55 match s:
56 case State{i, H.HLeaf{}, r}:
57 (State{i, H.HLeaf{}, r}, None{})
58 case State{i, H.HNode{+n, +t, +l, +q}, r}:
59 select.due(~A, Nat.is_le(deadline(A, t), now), i, H.HNode{n, t, l, q}, r, t, l, q)