anchor.diff:              World.cleanUpSubsystems world |> ignore
   
           /// Run the game engine with the given handlers, but don't clean up at the end, and return the world.
  -        static member runWithoutCleanUp runWhile pre post sdlDeps liveness rendererTaskOpt audioPlayerTaskOpt world =
  +        static member runWithoutCleanUp runWhile pre post sdlDeps liveness rendererThreadOpt audioPlayerThreadOpt world =
               if runWhile world then
                   let world = pre world
                   match liveness with
  
positive.code:                                                     result)
                                          
                                                  // start the audio thread
                                                  let audioPlayerTask = Task.Factory.StartNew (fun () ->
                                                      Subsystem.processMessages audioMessages audioPlayer world)
  
                                                  // fin
                                                  (Some rendererTask, Some audioPlayerTask, world)
                                              | (_, _) -> (None, None, world)
  
                                          // post-process the world
  
negative.code: 
                                          // attempt to finish threads
                                          let world =
                                              match (rendererThreadOpt, audioPlayerThreadOpt) with
                                              | ((Some rendererThread), (Some audioPlayerThread)) ->
  
                                                  // finish all threads
                                                  let rendererResult = rendererThread |> Async.AwaitTask |> Async.RunSynchronously
                                                  let audioPlayerResult = audioPlayerThread |> Async.AwaitTask |> Async.RunSynchronously
  
                                                  // apply their results
                                                  let world = Subsystem.applyResult rendererResult (World.getRenderer world) world
  