def replaced
import bendvy-ecs-core@0.1.0.4/recoverable_owner.bend as RecoverableOwnerimport Base
import bendvy-ecs-core@0.1.0.4/owner_product.bend as Product
3# Only canonical product exchanges create these inverses. No body-provided inverse.
4def replaced(~State:Type,~P:Type,~Rest:Type,~lens:Product.Lens<State,P,Rest>,replacement:P,taken:Rest & P) -> State & P:
5 match taken:
6 case (rest,old):(Product.put_field(~State,~P,~Rest,lens)(rest,replacement),old)