def viewed
import bendvy-ecs-core@0.1.0.3/resource_field.bend as ResourceFieldimport Base
import bendvy-ecs-core@0.1.0.3/owner_product.bend as Product
4# Canonical product lenses preserve affine siblings during selected-field operations.
5def viewed(~R:Type,~P:Type,~Rest:Type,~V:Data,~lens:Product.Lens<R,P,Rest>,rest:Rest,result:P & V) -> R & V:
6 match result:
7 case (part,value):(Product.put_field(~R,~P,~Rest,lens)(rest,part),value)