def settle.br
bend-kit-runner@0.13.0.1 · runner.bend:1289
import bend-kit-runner@0.13.0.1/runner.bend as Runner
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes
import bend-kit-resources@0.1.0.0/resources.bend as Res
1289def settle.br(~A: Data, ~penc: A -> Bytes.Bytes, +op: Op<A>, y: Ran(A), g: Res.Grant, err: Out(Unit),
1290 next: Runner<A> -> Out(Unit) -> IO(Runner<A> & Out(Bool))) -> IO(Runner<A> & Out(Bool)):
1291 match y:
1292 case (r, Fail{e}):
1293 next(release(A, r, g), first(err, Fail{e}))
1294 case (r, Done{u}):
1295 do IO<Runner<A> & Out(Bool)>:
1296 z : Ran(A) <- commit(~A, ~penc, r, op)
1297 settle.done(A, z, g, err, next)