anchor.diff:  
               match lookupKind with
               | LookupKind.Expr | LookupKind.Pattern ->
  -                if isAppTy g ty then
  -                    let tcref = tcrefOfAppTy g ty
  +                match tryDestAppTy g ty with
  +                | ValueSome tcref ->
                       for uc in tcref.UnionCasesArray do
                           addToBuffer uc.DisplayName
  +                | _ -> ()
               | _ -> ()
   
           raze (UndefinedName (depth, FSComp.SR.undefinedNameFieldConstructorOrMember, id, suggestMembers))
  
positive.code:             infoReader.GetEntireTypeHierarchy(AllowMultiIntfInstantiations.Yes, m, ty)
              |> List.collect (fun ty ->
                  let g = infoReader.g
                  if isAppTy g ty then
                      let tcref = tcrefOfAppTy g ty
                      let extValRefs = nenv.eIndexedExtensionMembers.Find tcref
                      SelectMethInfosFromExtMembers infoReader optFilter ty  m extValRefs
                  else [])
          extMemsDangling @ extMemsFromHierarchy
  
  /// Get all the available methods of a type (both intrinsic and extension)
  
negative.code:     Item.Types (x.DisplayName, [FreshenTycon ncenv m x])
  
  let ItemOfTy g x =
      let nm = 
          match tryDestAppTy g x with
          | ValueSome tcref -> tcref.DisplayName 
          | _ -> "?"
      Item.Types (nm, [x])
  
  // Filter out 'PrivateImplementationDetail' classes
  