anchor.diff:      { Value: string
         Range: Range.range }
   
  +let private printfFunctions = set [ "printf"; "printfn"; "sprintf"; "failwithf"; "eprintf"; "eprintfn" ]
  +
   /// Returns ranges of all idents found in an untyped AST
   let getPrintfLiterals ast =
  -    let printfFunctions = set [ "printf"; "printfn"; "sprintf"; "failwithf"; "eprintf"; "eprintfn" ]
  -    let apps = ResizeArray()
  +    let literals = ResizeArray()
   
       let rec visitExpr = function
           | SynExpr.IfThenElse(cond, trueBranch, falseBranchOpt, _, _, _, _) ->
  
positive.code:             visitModulesAndNamespaces modules
          | _ -> ())
  
      List.ofSeq apps
negative.code:             visitExpr body
          | SynExpr.App (_,_, SynExpr.Ident funcName, SynExpr.Const (SynConst.String (value, r), _), _) -> 
              if printfFunctions |> Set.contains funcName.idText then
                  literals.Add { Value = value; Range = r }
          | SynExpr.App (_,_, funcExpr, argExpr, _) -> 
              visitExpr argExpr
              visitExpr funcExpr
  