anchor.diff:  open Ionide.VSCode.Helpers
   
   module QuickFix =
  -    let private mkQuickFix (document : TextDocument) (range : vscode.Range) (title : string) (suggestion : string) =
  +
  +    let private mkCommand name (document : TextDocument) (range : vscode.Range) (title : string) (suggestion : string) =
           let cmd = createEmpty<Command>
           cmd.title <- title
  -        cmd.command <- "fsharp.quickFix"
  +        cmd.command <- name
           cmd.arguments <- Some ([| document |> unbox; range |> unbox; suggestion |> unbox; |] |> ResizeArray)
           cmd
  +
  +    let private mkQuickFix =
  +        mkCommand "fsharp.quickFix"
  +
  +    let private mkRenameFix =
  +        mkCommand "fsharp.renameFix"
   
       let ifDiagnostic selector (f : Diagnostic -> Command[])  (diagnostics : Diagnostic seq) =
           let diagnostic = diagnostics |> Seq.tryFind (fun d -> d.message.Contains selector)
  
positive.code:                mkQuickFix doc d.range "Prefix with _" s2 |] )
  
  
      let private createProvider () =
          { new CodeActionProvider
            with
  
negative.code:         edit.replace(uri, range, suggestion)
          workspace.applyEdit edit
  
      let applyRenameFix(doc : TextDocument, range : vscode.Range, suggestion : string) =
          commands.executeCommand("vscode.executeDocumentRenameProvider", Uri.file doc.fileName, range.start, suggestion)
          |> Promise.bind (workspace.applyEdit)
  
  
      let activate selector (disposables: Disposable[]) =
          languages.registerCodeActionsProvider (selector, createProvider()) |> ignore
          commands.registerCommand("fsharp.quickFix",Func<obj,obj,obj,obj>(fun a b c -> applyQuickFix(a |> unbox, b |> unbox, c |> unbox) |> unbox )) |> ignore
          commands.registerCommand("fsharp.renameFix",Func<obj,obj,obj,obj>(fun a b c -> applyRenameFix(a |> unbox, b |> unbox, c |> unbox) |> unbox )) |> ignore
  
          ()
  
  