anchor.diff:          override __.MemberType: MemberTypes = MemberTypes.Field
   
           override this.ReflectedType = notRequired this "ReflectedType" fieldName
  -        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" fieldName
   
           override this.SetValue(_obj, _value, _invokeAttr, _binder, _culture) = notRequired this "SetValue" fieldName
  
positive.code:         override this.GetMembers _bindingFlags = notRequired this "GetMembers" this.Name
          override this.GetInterface(_name, _ignoreCase) = notRequired this "GetInterface" this.Name
          override this.GetInterfaces() = notRequired this "GetInterfaces" this.Name
          override __.GetCustomAttributes(_inherit) = emptyAttributes
          override __.GetCustomAttributes(_attributeType, _inherit) = emptyAttributes
          override __.IsDefined(_attributeType, _inherit) = false
  
          override this.MemberType = notRequired this "MemberType" this.Name
          override this.GetMember(_name,_mt,_bindingFlags) = notRequired this "GetMember" this.Name
          override this.GUID = notRequired this "GUID" this.Name
          override this.InvokeMember(_name, _invokeAttr, _binder, _target, _args, _modifiers, _culture, _namedParameters) = notRequired this "InvokeMember" this.Name
  
negative.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[]>)
          
          type Attributes<'T when 'T :> Attribute>() = 
              static let empty = ([| |] : 'T []) |> box |> unbox<obj[]>
              static member Empty() = empty
              static member CreateEmpty (typ : Type) =
                  let gtype = typedefof<Attributes<_>>.MakeGenericType([|typ|])
                  let gmethod = gtype.GetMethod("Empty", BindingFlags.Static ||| BindingFlags.Public )
                  gmethod.Invoke(null, [||]) :?> obj array
  
          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
  