def receipt
bendvy-ecs-core@0.1.0.4 · decode_immediate.bend:22
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
22def receipt(~S:Data,~C:Type,~R:Type,~E:Data,~P:Type,~Q:Type,+target:W.Handle<S>,world:W.World<S,C,R,E>,inverse:W.World<S,C,R,E> -> Install.Restore<W.World<S,C,R,E>,Request.Packet<P>,Q>,commands:List<Deferred.Command<W.World<S,C,R,E>>>,events:List<&2,E>,trace:TraceFacts.State,result:List<(W.World<S,C,R,E> -> W.World<S,C,R,E>)> & Nat) -> 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>>))):
23 match result:
24 case (undo,position):(T.Tx{world,undo,commands,events,trace},(Done{target},(None{},(Some{Journal.Receipt{position,(world => restored(~S,~C,~R,~E,~P,~Q,target,inverse(world)))}},None{}))))