anchor.diff:      type EnemyDispatcher () =
           inherit SimpleBodyDispatcher
               (fun (enemy : Entity) -> CapsuleShape { Height = enemy.Size.Y * 0.5f; Radius = enemy.Size.Y * 0.25f; Center = Vector2.Zero })
  -            
  +
  +        let hasAppeared (entity : Entity) (world : World) =
  +            entity.Position.X - (world.Camera.EyeCenter.X + world.Camera.EyeSize.X * 0.5f) < 0.0f
  +
           let playHitSound world =
               let soundAsset = { SoundAssetName = "Hit"; PackageName = StagePackageName; PackageFileName = AssetGraphFileName }
               let sound = PlaySoundMessage { Volume = 1.0f; Sound = soundAsset }
  
positive.code:             let sound = PlaySoundMessage { Volume = 1.0f; Sound = soundAsset }
              { world with AudioMessages = sound :: world.AudioMessages }
  
          let movementHandler event world =
              if World.gamePlaying world then
                  let enemy = World.getEntity event.Subscriber world
                  let hasAppeared = enemy.Position.X - (world.Camera.EyeCenter.X + world.Camera.EyeSize.X * 0.5f) < 0.0f
                  if hasAppeared then
                      let physicsId = Entity.getPhysicsId enemy
                      let optGroundTangent = Physics.getOptGroundContactTangent physicsId world.Integrator
                      let force =
                          match optGroundTangent with
                          | None -> Vector2 (-2000.0f, -30000.0f)
                          | Some groundTangent -> Vector2.Multiply (groundTangent, Vector2 (-2000.0f, if groundTangent.Y > 0.0f then 8000.0f else 0.0f))
                      let applyForceMessage = ApplyForceMessage { PhysicsId = physicsId; Force = force }
                      let world = { world with PhysicsMessages = applyForceMessage :: world.PhysicsMessages }
                      (Unhandled, world)
                  else (Unhandled, world)
              else (Unhandled, world)
  
          let collisionHandler event world =
  
negative.code:         override dispatcher.Register (address, world) =
              let world = base.Register (address, world)
              world |>
                  World.observe TickEventName address -<| CustomSub tickHandler |>
                  World.observe (CollisionEventName @ address) address -<| CustomSub collisionHandler
  
          override dispatcher.Unregister (address, world) =
  