anchor.diff:        trefCache: Dictionary<ILTypeRef,int>
   
         /// The following are all used to generate unique items in the output 
  -      tables: array<MetadataTable<IGenericRow>>
  -      AssemblyRefs: MetadataTable<AssemblyRefRow>
  +      tables: MetadataTable[]
  +      AssemblyRefs: MetadataTable<SharedRow>
         fieldDefs: MetadataTable<FieldDefKey>
         methodDefIdxsByKey:  MetadataTable<MethodDefKey>
         methodDefIdxs:  Dictionary<ILMethodDef,int>
  
positive.code:       if cenv.generatePdb then 
          il.Locals |> ILList.toArray |> Array.map (fun l -> 
              // Write a fake entry for the local signature headed by e_IMAGE_CEE_CS_CALLCONV_FIELD. This is referenced by the PDB file
              ignore (FindOrAddRow cenv TableNames.StandAloneSig (SimpleSharedRow [| Blob (GetFieldDefTypeAsBlobIdx cenv env l.Type) |]))
              // Now write the type
              GetTypeAsBytes cenv env l.Type) 
        else 
  
negative.code: and GenGenericParamPass3 cenv env idx owner gp = 
      // here we just collect generic params, its constraints\custom attributes will be processed on pass4
      // shared since we look it up again below in GenGenericParamPass4
      AddSimpleSharedRow cenv TableNames.GenericParam (GetGenericParamAsGenericParamRow cenv env idx owner gp) 
      |> ignore
  
  
  and GenGenericParamPass4 cenv env idx owner gp = 
      let gpidx = FindOrAddSharedRow cenv TableNames.GenericParam (GetGenericParamAsGenericParamRow cenv env idx owner gp)
      GenCustomAttrsPass3Or4 cenv (hca_GenericParam, gpidx) gp.CustomAttrs
      gp.Constraints |> ILList.iter (GenGenericParamConstraintPass4 cenv env gpidx) 
  
  