anchor.diff:  
           override this.GetRaiseMethod _nonPublic = notRequired this "GetRaiseMethod" eventName
           override this.ReflectedType = notRequired this "ReflectedType" eventName
  -        override __.GetCustomAttributes(_inherit) = emptyAttributes
  -        override __.GetCustomAttributes(_attributeType, _inherit) = emptyAttributes
  +        override __.GetCustomAttributes(_inherit) = Attributes<_>.Empty()
  +        override __.GetCustomAttributes(attributeType, _inherit) = Attributes.CreateEmpty attributeType
           override this.IsDefined(_attributeType, _inherit) = notRequired this "IsDefined" eventName
           override __.GetCustomAttributesData() = customAttributesImpl.GetCustomAttributesData()
   
  
positive.code:         let genToken() =  token <- token + 1; token
          /// Internal code of .NET expects the obj[] returned by GetCustomAttributes to be an Attribute[] even in the case of empty arrays
          let emptyAttributes = (([| |]: Attribute[]) |> box |> unbox<obj[]>)
  
          let nonNull str x = if isNull x then failwithf "Null in '%s', stacktrace = '%s'" str Environment.StackTrace else x
          let nonNone str x = match x with None -> failwithf "No value has been specified for '%s', stacktrace = '%s'" str Environment.StackTrace | Some v -> v
  
negative.code:         override this.GetMethodImplementationFlags() = notRequired this "GetMethodImplementationFlags" this.Name
          override this.Invoke(_obj, _invokeAttr, _binder, _parameters, _culture) = notRequired this "Invoke" this.Name
          override this.ReflectedType = notRequired this "ReflectedType" this.Name
          override __.GetCustomAttributes(inherited) =
              gmd.GetCustomAttributes(inherited)
          override __.GetCustomAttributes(attributeType, inherited) =
              gmd.GetCustomAttributes(attributeType, inherited)
  
          override __.ToString() = gmd.ToString() + "@inst"
  
  