anchor.diff:          static member private updateSimulants world =
   
               // gather simulants
  +            UpdateGatherTimer.Start ()
               let screens = match World.getOmniScreenOpt world with Some omniScreen -> [omniScreen] | None -> []
               let screens = match World.getSelectedScreenOpt world with Some selectedScreen -> selectedScreen :: screens | None -> screens
               let screens = List.rev screens
               let layers = Seq.concat (List.map (flip World.getLayers world) screens)
               let (entities, world) = World.getEntitiesInView2 world
  -
  -            // update simulants breadth-first
  +            UpdateGatherTimer.Stop ()
  +
  +            // update game
  +            UpdateGameTimer.Start ()
               let world = World.updateGame world
  +            UpdateGameTimer.Stop ()
  +            
  +            // update screens
  +            UpdateScreensTimer.Start ()
               let world = List.fold (fun world screen -> World.updateScreen screen world) world screens
  +            UpdateScreensTimer.Stop ()
  +
  +            // update layers
  +            UpdateLayersTimer.Start ()
               let world = Seq.fold (fun world layer -> World.updateLayer layer world) world layers
  +            UpdateLayersTimer.Stop ()
  +
  +            // update entities
  +            UpdateEntitiesTimer.Start ()
               let world =
                   Seq.fold (fun world (entity : Entity) ->
                       if World.isTicking world || entity.GetAlwaysUpdate world
  
positive.code:     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 ()
  
negative.code:                     else world)
                      world
                      entities
              UpdateEntitiesTimer.Stop ()
  
  #if !DISABLE_POST_UPDATES
              // post-update game
              PostUpdateGameTimer.Start ()
              let world = World.postUpdateGame world
              PostUpdateGameTimer.Stop ()
  
              // post-update screens
              PostUpdateScreensTimer.Start ()
              let world = List.fold (fun world screen -> World.postUpdateScreen screen world) world screens
              PostUpdateScreensTimer.Stop ()
  
              // post-update layers
              PostUpdateLayersTimer.Start ()
              let world = Seq.fold (fun world layer -> World.postUpdateLayer layer world) world layers
              PostUpdateLayersTimer.Stop ()
  
              // post-update entities
              PostUpdateEntitiesTimer.Start ()
              let world =
                  Seq.fold (fun world (entity : Entity) ->
                      if World.isTicking world || entity.GetAlwaysUpdate world
  