def installed
bendvy-ecs-core@0.1.0.4 · decode_immediate.bend:26
import bendvy-ecs-core@0.1.0.4/decode_immediate.bend as DecodeImmediate
import Base
import bendvy-ecs-core@0.1.0.4/deferred_command.bend as Deferred
import bendvy-ecs-core@0.1.0.4/trace_facts.bend as TraceFacts
import bendvy-ecs-core@0.1.0.4/decode_owned_journal.bend as Journal
import bendvy-ecs-core@0.1.0.4/decode_requests.bend as Request
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/transaction.bend as T
import bendvy-ecs-core@0.1.0.4/bundle_install.bend as Install
26def installed(~S:Data,~C:Type,~R:Type,~E:Data,~P:Type,~Q:Type,+target:W.Handle<S>,undo:List<(W.World<S,C,R,E> -> W.World<S,C,R,E>)>,commands:List<Deferred.Command<W.World<S,C,R,E>>>,events:List<&2,E>,trace:TraceFacts.State,result:Install.Attempt<W.World<S,C,R,E>,Request.Packet<P>,Q>) -> T.Tx<W.World<S,C,R,E>,E> & (Result<&2,&2,W.WorldError,W.Handle<S>> & (Maybe<&1,Request.Packet<P>> & (Maybe<&1,Journal.Receipt<W.World<S,C,R,E>,Request.Packet<P>,Q>> & Maybe<&1,Journal.Pending<Q>>))):
27 match result:
28 case Install.Installed{world,inverse}:receipt(~S,~C,~R,~E,~P,~Q,target,world,inverse,commands,events,trace,Journal.count_inverses(~W.World<S,C,R,E>,undo))
29 case Install.Refused{world,payload,error}:(T.Tx{deactivated(~S,~C,~R,~E,W.deactivate(~S,~C,~R,~E,world,target)),undo,commands,events,trace},(Fail{error},(Some{payload},(None{},None{}))))
30 case Install.Quarantined{world,recovery,+error}:(T.Tx{world,undo,commands,events,trace},(Fail{error},(None{},(None{},Some{Journal.Pending{recovery,error}}))))