def work.return
bend-kit-camber@0.15.0.1 · camber.bend:136
import bend-kit-camber@0.15.0.1/camber.bend as Camber
import Base
136def work.return(~R: Type, ~P: Data, ~I: Data, ~E: Data, ~O: Data,
137 ~destroy: R -> IO(Unit),
138 messages: Chan(Message<R, P, I, E, O>), reply: Chan(Outcome<E, O>),
139 result: R & Result<&2, &2, E, O>
140) -> IO(Unit):
141 (returned, outcome) = result
142 do IO<Unit>:
143 accepted : Result<&1, &1, Message<R, P, I, E, O>, Unit> <- Chan.send(Message<R, P, I, E, O>, messages, Returned{returned})
144 work.returned(~R, ~P, ~I, ~E, ~O, ~destroy, accepted)
145 sent : Result<&1, &1, Outcome<E, O>, Unit> <- Chan.send(Outcome<E, O>, reply, outcome.value(E, O, outcome))
146 return Unit{}