anchor.diff:                      battle
               withSigs (List.rev (allySignalsRev @ enemySignalsRev)) battle
   
  -        and updateNoCurrentCommand time (battle : Battle) =
  +        and private updateNoCurrentCommand time (battle : Battle) =
               match battle.ActionCommands with
               | Queue.Cons (nextCommand, futureCommands) -> updateNextCommand time nextCommand futureCommands battle
               | Queue.Nil -> updateNoNextCommand time battle
   
  -        and updateRunning time (battle : Battle) =
  +        and private updateRunning time (battle : Battle) =
               match battle.CurrentCommandOpt with
               | Some currentCommand -> updateCurrentCommand time currentCommand battle
               | None -> updateNoCurrentCommand time battle
   
  -        and updateBattleResults time startTime outcome (battle : Battle) =
  +        and private updateResults time startTime outcome (battle : Battle) =
               let localTime = time - startTime
               if localTime = 0L then
                   let alliesLevelingUp =
  
positive.code:                 let battle = Battle.updateCurrentCommandOpt (constant None) battle
                  withMsgs [ResetCharacter sourceIndex; PoiseCharacter sourceIndex] battle
  
          static let rec updateWound targetIndexOpt time battle =
              match targetIndexOpt with
              | Some targetIndex ->
                  let character = Battle.getCharacter targetIndex battle
  
negative.code:                         if List.forall (fun (character : Character) -> character.IsWounded) allies then
                              // lost battle
                              let battle = Battle.updateBattleState (constant (BattleCease (false, Set.empty, time))) battle
                              let (sigs2, battle) = update time battle
                              (msg (CelebrateCharacters false) :: sigs @ sigs2, battle)
                          elif
                              List.forall (fun (character : Character) -> character.IsWounded) enemies &&
                              List.hasAtMost 1 enemies then
                              // won battle
                              let battle = Battle.updateBattleState (constant (BattleResults (true, time))) battle
                              let (sigs2, battle) = update time battle
                              (msg (CelebrateCharacters true) :: sigs @ sigs2, battle)
                          else (sigs, battle)
                      | Some _ -> (sigs, battle)
                  withSigs sigs battle
              | None -> just battle
  
          and private updateReady time timeStart (battle : Battle) =
              let timeLocal = time - timeStart
              if timeLocal = inc 62L then // first frame after transitioning in
                  match battle.BattleSongOpt with
  