anchor.diff:              visitModulesAndNamespaces modules
           | _ -> ())
   
  -    List.ofSeq apps+    List.ofSeq literals
positive.code:     { Value: string
        Range: Range.range }
  
  /// 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 rec visitExpr = function
          | SynExpr.IfThenElse(cond, trueBranch, falseBranchOpt, _, _, _, _) ->
  
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
  