anchor.diff:      member x.FullName = 
           checkIsResolved()
           let fail() = invalidOp (sprintf "the type '%s' does not have a qualified name" x.LogicalName)
  -        if entity.IsTypeAbbrev || entity.IsProvidedGeneratedTycon || entity.IsNamespace then fail()
  +        if entity.IsTypeAbbrev || entity.IsProvidedErasedTycon || entity.IsNamespace then fail()
           match entity.CompiledRepresentation with 
           | CompiledTypeRepr.ILAsmNamed(tref,_,_) -> tref.FullName
           | CompiledTypeRepr.ILAsmOpen _ -> fail()
       
       member x.TryFullName = 
           if isUnresolved() then None
  -        elif entity.IsTypeAbbrev || entity.IsProvidedGeneratedTycon || entity.IsNamespace then None
  +        elif entity.IsTypeAbbrev || entity.IsProvidedErasedTycon || entity.IsNamespace then None
           else
               match entity.CompiledRepresentation with 
               | CompiledTypeRepr.ILAsmNamed(tref,_,_) -> Some tref.FullName
  
positive.code: 
      member __.IsProvidedAndGenerated  = 
          isResolved() &&
          entity.IsProvidedGeneratedTycon
  
      member __.IsClass = 
          isResolved() &&
  
negative.code:     member x.QualifiedName = 
          checkIsResolved()
          let fail() = invalidOp (sprintf "the type '%s' does not have a qualified name" x.LogicalName)
          if entity.IsTypeAbbrev || entity.IsProvidedErasedTycon || entity.IsNamespace then fail()
          match entity.CompiledRepresentation with 
          | CompiledTypeRepr.ILAsmNamed(tref,_,_) -> tref.QualifiedName
          | CompiledTypeRepr.ILAsmOpen _ -> fail()
  