def fold
import bendvy-ecs-core@0.1.0.4/ordinary_app_existing_execution.bend as OrdinaryAppExistingExecutionimport Base
import bendvy-ecs-core@0.1.0.4/ordinary_app_registration_fields.bend as Fields
18def fold(~S:Data,~O:Type,~Shared:Type,~catalog:O -> O & Fields.Fields<S>,value:O & Shared) -> (O & Shared) & List<&2,Fields.Fields<S>>:
19 match value:
20 case (owner,shared):folded(~S,~O,~Shared,shared,catalog(owner))