anchor.diff:      override __.SupportedDiagnostics = ImmutableArray.Create Descriptor
       override this.AnalyzeSyntaxAsync(_, _) = Task.FromResult ImmutableArray<Diagnostic>.Empty
   
  -    static member GetUnusedOpenRanges(document: Document, options, checker: FSharpChecker) =
  +    static member GetUnusedOpenRanges(document: Document, options, checker: FSharpChecker) : Async<Option<range list>> =
           asyncMaybe {
               do! Option.guard Settings.CodeFixes.UnusedOpens
               let! sourceText = document.GetTextAsync()
  
positive.code:         | Some (island, _, _) -> island = fullName
          | None -> false
  
      let getUnusedOpens (sourceText: SourceText) (parsedInput: ParsedInput) (symbolUses: FSharpSymbolUse[]) =
  
          let getPartNamespace (symbolUse: FSharpSymbolUse) (fullName: string) =
              // given a symbol range such as `Text.ISegment` and a full name of `MonoDevelop.Core.Text.ISegment`, return `MonoDevelop.Core`
  
negative.code:             
              return 
                  unusedOpens
                  |> List.map (fun range ->
                        Diagnostic.Create(
                           Descriptor,
                           RoslynHelpers.RangeToLocation(range, sourceText, document.FilePath)))
                  |> Seq.toImmutableArray
          } 
          |> Async.map (Option.defaultValue ImmutableArray.Empty)
  