def reset_taken
bendvy-ecs-core@0.1.0.4 · machine.bend:120
import bendvy-ecs-core@0.1.0.4/machine.bend as Machine
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 transaction.bend as Tx
120def reset_taken(~S: Data,~M: Data,~V: Data,~W: Type,~E: Data,
121 ~put: W -> Slot<S,M,V> -> W,
122 pair: W & Slot<S,M,V>,undo: List<&1,(W -> W)>,commands:List<&1,Deferred.Command<W>>,events: List<&2,E>,trace:TraceFacts.State) -> Tx.Tx<W,E>:
123 match pair:
124 case (world,+old):
125 Tx.Tx{put(world,reset(~S,~M,~V,old)),(world => put(world,old)) <> undo,commands,events,trace}