anchor.diff:  
       typeCheckResults.Errors |> shouldEqual [||]
       typeCheckResults.GetFormatSpecifierLocations() 
  -    |> Array.map (fun range -> range.StartLine, range.StartColumn, range.EndLine, range.EndColumn)
  -    |> shouldEqual [|(2, 19, 2, 21);
  -                     (4, 12, 4, 14);
  -                     (6, 29, 6, 31);
  -                     (7, 29, 7, 30); (7, 33, 7, 34)|]
  +    |> Array.map (fun (range, numArgs) -> range.StartLine, range.StartColumn, range.EndLine, range.EndColumn, numArgs)
  +    |> shouldEqual [|(2, 19, 2, 21, 1);
  +                     (4, 12, 4, 14, 1);
  +                     (6, 29, 6, 31, 1);
  +                     (7, 29, 7, 30, 1);
  +                     (7, 33, 7, 34, 1)|]
    
   [<Test>]
   let ``Printf specifiers for user-defined functions`` () = 
  
positive.code: let _ = (10, 12) ||> sprintf "%A
                                %O"
  let _ = sprintf "\n%-8.1e+567" 1.0
  let _ = sprintf @"%O\n%-5s" "1" "2" """
  
      let file = "/home/user/Test.fsx"
      let untyped, typeCheckResults = parseAndTypeCheckFileInProject(file, input) 
  
      typeCheckResults.Errors |> shouldEqual [||]
      typeCheckResults.GetFormatSpecifierLocations() 
      |> Array.map (fun range -> range.StartLine, range.StartColumn, range.EndLine, range.EndColumn)
      |> shouldEqual [|(2, 45, 2, 46); 
                       (3, 23, 3, 24); 
                       (4, 38, 4, 39); 
                       (5, 29, 5, 30); 
                       (6, 17, 6, 19);
                       (7, 17, 7, 21); 
                       (8, 17, 8, 22);
                       (9, 18, 9, 21); 
                       (10, 18, 10, 20);
                       (12, 12, 12, 14); 
                       (15, 12, 15, 14);
                       (16, 28, 16, 29); 
                       (18, 30, 18, 31);
                       (19, 30, 19, 31);
                       (20, 19, 20, 24); 
                       (21, 18, 21, 19); (21, 22, 21, 25)|]
  
  [<Test>]
  let ``Printf specifiers for triple-quote strings`` () = 
  
negative.code: 
      typeCheckResults.Errors |> shouldEqual [||]
      typeCheckResults.GetFormatSpecifierLocations() 
      |> Array.map (fun (range, numArgs) -> range.StartLine, range.StartColumn, range.EndLine, range.EndColumn, numArgs)
      |> shouldEqual [|(3, 24, 3, 25, 1); 
                       (3, 29, 3, 30, 1);
                       (4, 58, 4, 59, 1);
                       (4, 75, 4, 76, 1);
                       (4, 82, 4, 83, 1);
                       (4, 108, 4, 109, 1)|]
  
  [<Test>]
  let ``should not report format specifiers for illformed format strings`` () = 
      let input = 
        """
  let _ = sprintf "%.7f %7.1A %7.f %--8.1f"
  let _ = sprintf "ABCDE"
  """
  
      let file = "/home/user/Test.fsx"
      let untyped, typeCheckResults = parseAndTypeCheckFileInProject(file, input) 
      typeCheckResults.GetFormatSpecifierLocations() 
      |> Array.map (fun (range, numArgs) -> range.StartLine, range.StartColumn, range.EndLine, range.EndColumn, numArgs)
      |> shouldEqual [||]
  
  [<Test>]
  