anchor.diff:  type MetadataTable =
       | Shared of MetadataTable<SharedRow>
       | Unshared of MetadataTable<UnsharedRow>
  -    member t.FindOrAddSharedEntry(x) = match t with Shared u -> u.FindOrAddSharedEntry(x) | Unshared u -> failwithf "incorrect table kind, u.name = %s" u.name
  -    member t.AddSharedEntry(x) = match t with | Shared u -> u.AddSharedEntry(x) | Unshared u -> failwithf "incorrect table kind, u.name = %s" u.name
  -    member t.AddUnsharedEntry(x) = match t with Unshared u -> u.AddUnsharedEntry(x) | Shared u -> failwithf "incorrect table kind, u.name = %s" u.name
  -    member t.RowsOfSharedTable = match t with Shared u -> u.EntriesAsArray | Unshared u -> failwithf "incorrect table kind, u.name = %s" u.name
  -    member t.RowsOfUnsharedTable = match t with Unshared u -> u.EntriesAsArray | Shared u -> failwithf "incorrect table kind, u.name = %s" u.name
  -    member t.SetRowsOfSharedTable rows = match t with Shared u -> u.SetRowsOfTable (Array.map SharedRow rows) | Unshared u -> failwithf "incorrect table kind, u.name = %s" u.name
  +    member t.FindOrAddSharedEntry(x) = match t with Shared u -> u.FindOrAddSharedEntry(x) | Unshared u -> failwithf "FindOrAddSharedEntry: incorrect table kind, u.name = %s" u.name
  +    member t.AddSharedEntry(x) = match t with | Shared u -> u.AddSharedEntry(x) | Unshared u -> failwithf "AddSharedEntry: incorrect table kind, u.name = %s" u.name
  +    member t.AddUnsharedEntry(x) = match t with Unshared u -> u.AddUnsharedEntry(x) | Shared u -> failwithf "AddUnsharedEntry: incorrect table kind, u.name = %s" u.name
  +    member t.GenericRowsOfTable = match t with Unshared u -> u.EntriesAsArray |> Array.map (fun x -> x.GenericRow) | Shared u -> u.EntriesAsArray |> Array.map (fun x -> x.GenericRow) 
  +    member t.SetRowsOfSharedTable rows = match t with Shared u -> u.SetRowsOfTable (Array.map SharedRow rows) | Unshared u -> failwithf "SetRowsOfSharedTable: incorrect table kind, u.name = %s" u.name
       member t.Count = match t with Unshared u -> u.Count | Shared u -> u.Count 
   
   
  
positive.code:     // Hence we need to sort it before we emit any entries in GenericParamConstraint\CustomAttributes that are attached to generic params. 
      // Note this mutates the rows in a table.  'SetRowsOfTable' clears 
      // the key --> index map since it is no longer valid 
      cenv.GetTable(TableNames.GenericParam).SetRowsOfSharedTable (SortTableRows TableNames.GenericParam (cenv.GetTable(TableNames.GenericParam).RowsOfSharedTable))
      GenTypeDefsPass4 [] cenv tds
      reportTime cenv.showTimes "Module Generation Pass 4"
  
  
negative.code:     ok
  
  
  type GenericRow = RowElement[]
  
  /// This is the representation of shared rows is used for most shared row types.
  /// Rows ILAssemblyRef and ILMethodRef are very common and are given their own
  /// representations.
  