def shared_runner
bendvy-ecs-core@0.1.0.4 · ordinary_reader_system.bend:290
import bendvy-ecs-core@0.1.0.4/ordinary_reader_system.bend as OrdinaryReaderSystem
import Base
import bendvy-ecs-core@0.1.0.4/change_tick.bend as Tick
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/system.bend as Sys
import bendvy-ecs-core@0.1.0.4/transaction.bend as Tx
import bendvy-ecs-core@0.1.0.4/reader_parameter.bend as RP
import bendvy-ecs-core@0.1.0.4/event_notice_runtime.bend as Mixed
import bendvy-ecs-core@0.1.0.4/event_family_routing.bend as Route
import bendvy-ecs-core@0.1.0.4/relation_commands.bend as Notice
import bendvy-ecs-core@0.1.0.4/internal/relation_failures/domains.bend as D
290def shared_runner(~S:Data,~C:Type,~R:Type,~P:Data,~F:Type,~H:Type,
291 ~Reader:Type,~View:Data,~Delta:Type,~Args:Type,~Declaration:Type,~Failure:Data,~Output:Type,
292 ~validateFn:Route.Runtime<S,C,R,Notice.Notice<S,P>,Mixed.State<S,P,F,H>> -> Reader -> Route.Runtime<S,C,R,Notice.Notice<S,P>,Mixed.State<S,P,F,H>> & (Reader & Bool),
293 ~prepareFn:Route.Runtime<S,C,R,Notice.Notice<S,P>,Mixed.State<S,P,F,H>> -> @+cursor:Maybe<&2,Tick.Tick> -> Reader -> Route.Runtime<S,C,R,Notice.Notice<S,P>,Mixed.State<S,P,F,H>> & (Reader & (View & Delta)),
294 ~commitFn:Route.Runtime<S,C,R,Notice.Notice<S,P>,Mixed.State<S,P,F,H>> -> Reader -> Delta -> @+cursor:Tick.Tick -> Route.Runtime<S,C,R,Notice.Notice<S,P>,Mixed.State<S,P,F,H>> & Reader,~releaseFn:Route.Runtime<S,C,R,Notice.Notice<S,P>,Mixed.State<S,P,F,H>> -> Reader -> Route.Runtime<S,C,R,Notice.Notice<S,P>,Mixed.State<S,P,F,H>>,
295 ~Ops:Type -> Type,
296 ~body:@-K:Type -> @-caps:Ops(K) -> (View & Args) -> K -> K & (Tx.Outcome<Failure> & Output),
297 ~grant:Ops(Tx.Tx<W.World<S,C,R,Notice.Notice<S,P>>,Notice.Notice<S,P>>),
298 ~sync:F -> Nat -> List<&2,P> -> F,
299 ~classify:Notice.Notice<S,P> -> Maybe<D.DescriptorKey<S>>,
300 world:W.World<S,C,R,Notice.Notice<S,P>>,
301 input:Invocation<(Mixed.State<S,P,F,H> & Nat),Reader,RP.Param<Route.Runtime<S,C,R,Notice.Notice<S,P>,Mixed.State<S,P,F,H>>,Reader,View,Delta,validateFn,prepareFn,commitFn,releaseFn>,Declaration,Args>) -> Sys.Outcome<W.World<S,C,R,Notice.Notice<S,P>>,Empty,Envelope<(Mixed.State<S,P,F,H> & Nat),Reader,RP.Param<Route.Runtime<S,C,R,Notice.Notice<S,P>,Mixed.State<S,P,F,H>>,Reader,View,Delta,validateFn,prepareFn,commitFn,releaseFn>,Declaration,Failure,Output>>:
302 runner(~S,~C,~R,~Notice.Notice<S,P>,~Route.Runtime<S,C,R,Notice.Notice<S,P>,Mixed.State<S,P,F,H>>,~(Mixed.State<S,P,F,H> & Nat),~Reader,~View,~Delta,~Args,~Declaration,~Failure,~Output,
303 ~validateFn,~prepareFn,~commitFn,~releaseFn,~Mixed.split(~S,~C,~R,~P,~F,~H),~Mixed.join(~S,~C,~R,~P,~F,~H),
304 ~mixed_before_attempt(~S,~C,~R,~P,~F,~H,~sync,~classify),
305 ~mixed_after_success(~S,~C,~R,~P,~F,~H,~sync,~classify),~Ops,~body,~grant,world,input)