anchor.diff:  open Microsoft.FSharp.Compiler.Ast
   open Microsoft.FSharp.Compiler.Range
   
  -module internal UnusedOpens =
  +module UnusedOpens =
       /// Represents single open statement.
  -    type private OpenStatement =
  +    type OpenStatement =
           { /// Full namespace or module identifier as it's presented in source code.
             LiteralIdent: string
             /// All possible namespace or module identifiers, including the literal one.
  
positive.code:           /// Enclosing module or namespace range (that is, the scope on in which this open statement is visible).
            ModuleRange: range }
  
      let rec private visitSynModuleOrNamespaceDecls (parent: Ast.LongIdent) (decls: SynModuleDecls) (moduleRange: range) : OpenStatement list =
          [ for decl in decls do
              match decl with
              | SynModuleDecl.Open(LongIdentWithDots.LongIdentWithDots(id = longId), range) ->
  
negative.code:                 yield! visitSynModuleOrNamespaceDecls longId decls moduleRange
              | _ -> () ]
  
      let getOpenStatements (parsedInput: ParsedInput) : OpenStatement list = 
          match parsedInput with
          | ParsedInput.ImplFile (ParsedImplFileInput(modules = modules)) ->
              [ for md in modules do
  