             return Transition(from: oldState, into: newState)
         }
     }
+
+    static
+    func via(
+        scope: String = #file,
+        context: String = #function,
+        same: SameStateStrategy,
+        body: @escaping (Become<S>, @escaping SubmitAction) throws -> Void
+        ) -> Action
+    {
+        return via(scope: scope, context: context, same: same)
+        {
+            _, _, become, submit in
+
+            //---
+
+            try body(become, submit)
+        }
+    }
 }

            
            //---
            
            try body(globalModel, { newState = $0 }, submit)
            
            //---
            

        scope: String = #file,
        context: String = #function,
        same: SameStateStrategy,
        body: @escaping (GlobalModel, SomeState, Become<S>, @escaping SubmitAction) throws -> Void
        ) -> Action
    {
        return Action(scope, context, self)
