anchor.diff:  type foo4 = N1.T<Param1=1,
   type foo5 = N1.T<Param1=1,ParamIgnored=
   """,
  -            [("type foo = N1.T<", Some ("[16..23)", 0, 0, None));
  -             ("type foo2 = N1.T<", Some ("[35..48)", 0, 0, Some "Param1"));
  -             ("type foo2 = N1.T<Param1", Some ("[35..48)", 0, 1, Some "Param1"));
  -             ("type foo2 = N1.T<Param1=", Some ("[35..48)", 0, 1, Some "Param1"));
  -             ("type foo3 = N1.T<", Some ("[60..79)", 0, 0, Some "ParamIgnored"));
  -             ("type foo3 = N1.T<ParamIgnored=", Some ("[60..79)", 0, 1, Some "ParamIgnored"));
  -             ("type foo4 = N1.T<Param1", Some ("[91..106)", 0, 2, Some "Param1"));
  -             ("type foo4 = N1.T<Param1=", Some ("[91..106)", 0, 2, Some "Param1"));
  -             ("type foo4 = N1.T<Param1=1", Some ("[91..106)", 0, 2, Some "Param1"));
  -             ("type foo5 = N1.T<Param1", Some ("[118..146)", 0, 2, Some "Param1"));
  -             ("type foo5 = N1.T<Param1=", Some ("[118..146)", 0, 2, Some "Param1"));
  -             ("type foo5 = N1.T<Param1=1", Some ("[118..146)", 0, 2, Some "Param1"));
  -             ("type foo5 = N1.T<Param1=1,", Some ("[118..146)", 1, 2, Some "ParamIgnored"));
  -             ("type foo5 = N1.T<Param1=1,ParamIgnored",Some ("[118..146)", 1, 2, Some "ParamIgnored"));
  -             ("type foo5 = N1.T<Param1=1,ParamIgnored=",Some ("[118..146)", 1, 2, Some "ParamIgnored"))
  +            [("type foo = N1.T<", Some ("[18..26)", 0, 0, None));
  +             ("type foo2 = N1.T<", Some ("[38..52)", 0, 0, Some "Param1"));
  +             ("type foo2 = N1.T<Param1", Some ("[38..52)", 0, 1, Some "Param1"));
  +             ("type foo2 = N1.T<Param1=", Some ("[38..52)", 0, 1, Some "Param1"));
  +             ("type foo3 = N1.T<", Some ("[64..84)", 0, 0, Some "ParamIgnored"));
  +             ("type foo3 = N1.T<ParamIgnored=", Some ("[64..84)", 0, 1, Some "ParamIgnored"));
  +             ("type foo4 = N1.T<Param1", Some ("[96..112)", 0, 2, Some "Param1"));
  +             ("type foo4 = N1.T<Param1=", Some ("[96..112)", 0, 2, Some "Param1"));
  +             ("type foo4 = N1.T<Param1=1", Some ("[96..112)", 0, 2, Some "Param1"));
  +             ("type foo5 = N1.T<Param1", Some ("[124..153)", 0, 2, Some "Param1"));
  +             ("type foo5 = N1.T<Param1=", Some ("[124..153)", 0, 2, Some "Param1"));
  +             ("type foo5 = N1.T<Param1=1", Some ("[124..153)", 0, 2, Some "Param1"));
  +             ("type foo5 = N1.T<Param1=1,", Some ("[124..153)", 1, 2, Some "ParamIgnored"));
  +             ("type foo5 = N1.T<Param1=1,ParamIgnored",Some ("[124..153)", 1, 2, Some "ParamIgnored"));
  +             ("type foo5 = N1.T<Param1=1,ParamIgnored=",Some ("[124..153)", 1, 2, Some "ParamIgnored"))
               ]);
             ( """
   //4
  
positive.code: Console.WriteLine([(1,2)])
  """,
              [
               ("WriteLine(", Some ("[17..42)", 0, 0, None));
               (",", None); 
               ("[(", Some ("[17..42)", 0, 1, None))
              ]);
            ( """
  //3
  
negative.code: type foo4 = N1.T<Param1=1, >
  type foo5 = N1.T<Param1=1,ParamIgnored= >
  """,
              [("type foo = N1.T<", Some ("[18..24)", 0, 0, None));
               ("type foo2 = N1.T<", Some ("[40..53)", 0, 0, Some "Param1"));
               ("type foo2 = N1.T<Param1", Some ("[40..53)", 0, 1, Some "Param1"));
               ("type foo2 = N1.T<Param1=", Some ("[40..53)", 0, 1, Some "Param1"));
               ("type foo3 = N1.T<", Some ("[68..87)", 0, 0, Some "ParamIgnored"));
               ("type foo3 = N1.T<ParamIgnored=", Some ("[68..87)", 0, 1, Some "ParamIgnored"));
               ("type foo4 = N1.T<Param1", Some ("[102..117)", 0, 2, Some "Param1"));
               ("type foo4 = N1.T<Param1=", Some ("[102..117)", 0, 2, Some "Param1"));
               ("type foo4 = N1.T<Param1=1", Some ("[102..117)", 0, 2, Some "Param1"));
               ("type foo5 = N1.T<Param1", Some ("[132..160)", 0, 2, Some "Param1"));
               ("type foo5 = N1.T<Param1=", Some ("[132..160)", 0, 2, Some "Param1"));
               ("type foo5 = N1.T<Param1=1", Some ("[132..160)", 0, 2, Some "Param1"));
               ("type foo5 = N1.T<Param1=1,", Some ("[132..160)", 1, 2, Some "ParamIgnored"));
               ("type foo5 = N1.T<Param1=1,ParamIgnored",Some ("[132..160)", 1, 2, Some "ParamIgnored"));
               ("type foo5 = N1.T<Param1=1,ParamIgnored=",Some ("[132..160)", 1, 2, Some "ParamIgnored"))])
  //Test case 5
            ( """let _ = System.DateTime(""",
              [("let _ = System.DateTime(",  Some ("[8..24)", 0, 0, None)) ])
            ]
  
      let sb = System.Text.StringBuilder()
      for (fileContents, testCases) in manyTestCases do
        printfn "Test case: fileContents = %s..." fileContents.[2..4]
        
        let actual = 
          [ for (marker, expected) in testCases do
              printfn "Test case: marker = %s" marker 
  