anchor.diff:      let private ScreenTransitionMouseX2Key = Gen.id
       let private ScreenTransitionKeyboardKeyKey = Gen.id
       let private SplashScreenUpdateKey = Gen.id
  +
  +    (* Timers *)
  +    let private InputTimer = Diagnostics.Stopwatch ()
  +    let private PhysicsTimer = Diagnostics.Stopwatch ()
  +    let private UpdateTimer = Diagnostics.Stopwatch ()
  +    let private TaskletsTimer = Diagnostics.Stopwatch ()
  +    let private PerFrameTimer = Diagnostics.Stopwatch ()
  +    let private PreFrameTimer = Diagnostics.Stopwatch ()
  +    let private PostFrameTimer = Diagnostics.Stopwatch ()
  +    let private ActualizeTimer = Diagnostics.Stopwatch ()
  +    let private RenderTimer = Diagnostics.Stopwatch ()
  +    let private AudioTimer = Diagnostics.Stopwatch ()
  +    let private TotalTimer = Diagnostics.Stopwatch ()
   
       type World with
   
  
positive.code: 
          /// Run the game engine with the given handlers, but don't clean up at the end, and return the world.
          static member runWithoutCleanUp runWhile preProcess postProcess sdlDeps liveness rendererThreadOpt audioPlayerThreadOpt world =
              if runWhile world then
                  let world = preProcess world
                  let world = World.preFrame world
                  match liveness with
                  | Running ->
                      let world = World.updateScreenTransition world
                      match World.getLiveness world with
                      | Running ->
                          let (liveness, world) = World.processInput world
                          match liveness with
                          | Running ->
                              let world = World.processPhysics world
                              match World.getLiveness world with
                              | Running ->
                                  let world = World.updateSimulants world
                                  match World.getLiveness world with
                                  | Running ->
                                      let world = World.processTasklets world
                                      match World.getLiveness world with
                                      | Running ->
                                          let world = World.actualizeSimulants world
                                          match World.getLiveness world with
                                          | Running ->
                                              let world = World.perFrame world
                                              match World.getLiveness world with
                                              | Running ->
  #if MULTITHREAD
  
negative.code:                                                         let audioPlayerResult = World.play audioMessages audioPlayer world
                                                          Subsystem.applyResult audioPlayerResult (World.getAudioPlayer world) world
                                                      else world
                                                  AudioTimer.Stop ()
  #endif
                                                  // post-process the world
                                                  PostFrameTimer.Start ()
                                                  let world = World.postFrame world
                                                  let world = postProcess world
                                                  PostFrameTimer.Stop ()
                                                  match World.getLiveness world with
                                                  | Running ->
  
                                                      // update counters and recur
                                                      TotalTimer.Stop ()
                                                      let world = World.updateTickTime world
                                                      let world = World.incrementUpdateCount world
                                                      World.runWithoutCleanUp runWhile preProcess postProcess sdlDeps liveness rendererThreadOpt audioPlayerThreadOpt world
  