anchor.diff:  }
   
   type TestUnion =
  -    | StringCase of String: string * string
  -    | IntCase of Int: int
  +    | StringCase of SomeString: string * string
  +    | IntCase of SomeInt: int
   
   type RecordF = { F : int -> string }
   
  
positive.code:             let types =
                  info.GetFields()
                  |> Array.map (fun field -> field.PropertyType)
              info.Tag, info.Name, types, values)
  
      let canMakeSameUnionCases =
          unbox<TestUnion> (FSharpValue.MakeUnion(unionCase1Info, unionCase1ValueFields)) = unionCase1
  
negative.code:     let unionCaseInfos = [| unionCase1Info; unionCase2Info |]
      let unionCaseValueFields = [| unionCase1ValueFields; unionCase2ValueFields |]
  
      let expectedUnionCase1Fields = 0, "StringCase", [| typeof<string>; typeof<string> |], [| "SomeString"; "Item2" |], [| box "a"; box "b" |]
      let expectedUnionCase2Fields = 1, "IntCase", [| typeof<int> |], [| "SomeInt" |], [| box 1 |]
      let expectedUnionFields = [| expectedUnionCase1Fields; expectedUnionCase2Fields |]
  
      let unionFields =
  