anchor.diff:  open System.Text.RegularExpressions
   
   type MainController(fileSys: IFileSystemService, settingsFactory: unit -> Mvc<SettingsEvents, SettingsModel>) =
  -    let setCommandSelection cursorPos (model: MainModel) =
  -        let nameLen =
  -            match model.CommandText.LastIndexOf('.') with
  -            | -1 -> model.CommandText.Length
  -            | index -> index
  -        match cursorPos with
  -            | Begin -> model.CommandTextSelection <- (0, 0)
  -            | End  -> model.CommandTextSelection <- (nameLen, 0)
  -            | Replace -> model.CommandTextSelection <- (0, nameLen)
  -
       interface IController<MainEvents, MainModel> with
           member this.InitModel model =
               model.Path <- fileSys.Root
  
positive.code:             model.Status <- "Opened File: " + path.Value
  
      member this.ParentPath (model: MainModel) =
          let path = model.Path
          this.OpenPath (fileSys.Parent model.Path) 0 model
          let index = model.Nodes |> Seq.tryFindIndex (fun n -> n.Path = path)
          match index with
              | Some i -> model.Cursor <- i
              | None -> ()
  
      member this.Back (model: MainModel) =
  
negative.code:             |> Seq.choose (fun (i, n) -> if predicate n then Some i else None)
              |> Seq.tryHead
          match firstMatch with
              | Some index -> this.SetCursor index model
              | None -> ()
  
      member this.OpenPath path cursor (model: MainModel) =
          try
  