anchor.diff:                      Error (CannotUndoDelete (permanent, item))
                       |> AsyncSeq.singleton
               let model = { model with RedoStack = action :: model.RedoStack }
  -            if iter < count then
  -                yield! undoIter fs model count (iter + 1)
  +            let repeat = model.RepeatCount |? 1
  +            if iter < repeat then
  +                yield! undoIter (iter + 1) fs model
               else
  -                yield { model with Status = Some <| MainStatus.undoAction action model.PathFormat count }
  +                yield { model with Status = Some <| MainStatus.undoAction action model.PathFormat repeat }
           | [] -> return NoUndoActions
       }
   
  -    let undo fs model = undoIter fs model (model.RepeatCount |? 1) 1
  -
  -    let rec private redoIter fs model count iter = asyncSeqResult {
  +    let undo = undoIter 1
  +
  +    let rec private redoIter iter fs model = asyncSeqResult {
           match model.RedoStack with
           | action :: rest ->
               let model = { model with RedoStack = rest }
  
positive.code:             yield! delete fsWriter model.SelectedItem false model
      }
  
      let rec private undoIter fs model count iter = asyncSeqResult {
          match model.UndoStack with
          | action :: rest ->
              let model = { model with UndoStack = rest }
  
negative.code:                     yield! delete fs item permanent model
              }
              let model = { model with RedoStack = rest }
              let repeat = model.RepeatCount |? 1
              if iter < repeat then
                  yield! redoIter (iter + 1) fs model
              else
                  yield { model with Status = Some <| MainStatus.redoAction action model.PathFormat repeat }
          | [] -> return NoRedoActions
      }
  
      let redo = redoIter 1
  
      let openSplitScreenWindow (os: IOperatingSystem) getScreenBounds model = result {
          let mapFst f t = (fst t |> f, snd t)
  