def write_taken
bendvy-ecs-core@0.1.0.4 · machine_queue.bend:25
import bendvy-ecs-core@0.1.0.4/machine_queue.bend as MachineQueue
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/machine.bend as M
import bendvy-ecs-core@0.1.0.4/transaction.bend as Tx
25def write_taken(~S:Data,~K:Data,~V:Data,~W:Type,~E:Data,~put:W -> M.Slot<S,K,V> -> W,~same:V -> V -> Bool,pair:W & M.Slot<S,K,V>,undo:List<&1,(W -> W)>,commands:List<&1,Deferred.Command<W>>,events:List<&2,E>,trace:TraceFacts.State,value:V,skipSame:Bool) -> Tx.Tx<W,E>:
26 match pair:
27 case (world,+old):Tx.Tx{put(world,queue(~S,~K,~V,~same,old,value,skipSame)),(world => put(world,old)) <> undo,commands,events,trace}