anchor.diff:              let world = splashLabel.SetSize cameraEyeSize world
               let world = splashLabel.SetPosition (-cameraEyeSize * 0.5f) world
               let world = splashLabel.SetLabelImage splashData.SplashImage world
  -            let world = World.monitor (World.handleSplashScreenIdle splashData.IdlingTime) (Events.IncomingFinish ->- splashScreen) splashScreen world
  +            let world = World.monitor (World.handleSplashScreenIdle splashData.IdlingTime splashScreen) (Events.IncomingFinish ->- splashScreen) splashScreen world
               let world = World.monitor (World.handleAsScreenTransitionFromSplash destination) (Events.OutgoingFinish ->- splashScreen) splashScreen world
               (splashScreen, world)
   
  
positive.code:             match World.getOptSelectedScreen world with
              | Some selectedScreen ->
                  let world = World.updateScreen selectedScreen world
                  let groups = World.proxyGroups selectedScreen world
                  let world = Seq.fold (fun world group -> World.updateGroup group world) world groups
                  let viewBounds = World.getCameraBy Camera.getViewBoundsRelative world
  
negative.code:                 (true, screen.SetTransitionTicksNp 0L world)
              else (false, screen.SetTransitionTicksNp (transitionTicks + World.getTickRate world) world)
  
          static member private updateScreenTransition (selectedScreen : Screen) world =
              // TODO: split this function up...
              match selectedScreen.GetTransitionStateNp world with
              | IncomingState ->
                  match world.State.Liveness with
                  | Running ->
                      let world =
                          if selectedScreen.GetTransitionTicksNp world = 0L
                          then World.publish () (Events.IncomingStart ->- selectedScreen) selectedScreen world
                          else world
                      match world.State.Liveness with
                      | Running ->
                          let (finished, world) = World.updateScreenTransition1 selectedScreen (selectedScreen.GetIncoming world) world
                          if finished then
                              let world = World.setScreenTransitionState IdlingState selectedScreen world
                              World.publish () (Events.IncomingFinish ->- selectedScreen) selectedScreen world
                          else world
                      | Exiting -> world
                  | Exiting -> world
              | OutgoingState ->
                  let world =
                      if selectedScreen.GetTransitionTicksNp world <> 0L then world
                      else World.publish () (Events.OutgoingStart ->- selectedScreen) selectedScreen world
                  match world.State.Liveness with
                  | Running ->
                      let (finished, world) = World.updateScreenTransition1 selectedScreen (selectedScreen.GetOutgoing world) world
                      if finished then
                          let world = World.setScreenTransitionState IdlingState selectedScreen world
                          match world.State.Liveness with
                          | Running -> World.publish () (Events.OutgoingFinish ->- selectedScreen) selectedScreen world
                          | Exiting -> world
                      else world
                  | Exiting -> world
              | IdlingState -> world
  
          static member private handleSplashScreenIdleUpdate idlingTime ticks event world =
              let world = World.unsubscribe SplashScreenUpdateKey world
  