def select.due
bend-kit-scheduler@0.4.1.0 · queue.bend:46
import bend-kit-scheduler@0.4.1.0/queue.bend as Queue
import Base
import bend-kit-collections@0.1.4.1/heap.bend as H
46def select.due(~A: Data, b: Bool, i: Nat, h: H.Heap<Ticket<A>>, r: List<&2, Ticket<A>>, t: Ticket<A>, l: H.Heap<Ticket<A>>, q: H.Heap<Ticket<A>>) -> State<A> & Maybe<&2, Ticket<A>>:
47 match b:
48 case False{}:
49 (State{i, h, r}, None{})
50 case True{}:
51 +t = t
52 (State{i, H.Heap.merge(~Ticket<A>, ~(a => b => le(A, a, b)), l, q), t <> r}, Some{t})