       case didContinue(NSUserActivity)
       case didFail(String, Error)
     }
-    enum StateRestoration {
+    enum StateRestoration { // Readonly
       case idle
       case willEncode(NSCoder)
       case didDecode(NSCoder)
     }
-    enum State {
+    enum State { // Readonly
       case awaitingLaunch
       case launched([UIApplicationLaunchOptionsKey: Any]?)
       case active

      var action: AsyncAction<Action>
      struct Action {
        var id: UIApplicationShortcutItem
        var completion: (Bool) -> Void
      }
    }
    struct RemoteNofitication {
      var notification: [AnyHashable : Any]
      var state: State
      enum State {
        case progressing((UIBackgroundFetchResult) -> Void)
        case complete(UIBackgroundFetchResult, (UIBackgroundFetchResult) -> Void)
      }
    }
    struct WatchKitExtensionRequest {
      var userInfo: [AnyHashable: Any]?
      var reply: ([AnyHashable : Any]?) -> Void
    }
    enum BackgroundURLSessionDataAvailability {
      case none
      case some (String, (Void) -> Void)
      case ending ((Void) -> Void)
    }
    enum UserActivityState {
      case idle
      case willContinue(String)
      case isContinuing(NSUserActivity)

      var minimumInterval: Interval
      var state: State
      enum State {
        case idle // Readonly
        case progressing((UIBackgroundFetchResult) -> Void) // Readonly
        case complete(UIBackgroundFetchResult, (UIBackgroundFetchResult) -> Void)
      }
      enum Interval {
