anchor.diff:                 mkQuickFix doc d.range "Prefix with _" s2 |] )
   
   
  +    let upercaseDU (doc : TextDocument) (diagnostics : Diagnostic seq) =
  +        diagnostics
  +        |> ifDiagnostic "Discriminated union cases and exception labels must be uppercase identifiers" (fun d ->
  +            let s = doc.getText(d.range).ToCharArray()
  +            let c = s.[0]?toUpperCase() |> unbox<char>
  +
  +            let chars = [| yield c; yield! s.[1..]  |]
  +            let s = String(chars)
  +
  +            [| mkRenameFix doc d.range (sprintf "Replace with %s" s) s |] )
  +
  +
       let private createProvider () =
           { new CodeActionProvider
             with
  
positive.code:         edit.replace(uri, range, suggestion)
          workspace.applyEdit edit
  
  
      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
  
          ()
  
  
negative.code:                     getSuggestions
                      getNewKeywordSuggestions
                      fixUnused
                      upercaseDU
                  |] |> Array.collect (fun f -> f doc diagnostics) |> ResizeArray |> Case1
              }
  
  