anchor.diff:          let extMemsFromHierarchy =
               infoReader.GetEntireTypeHierarchy(AllowMultiIntfInstantiations.Yes, m, ty)
               |> List.collect (fun ty ->
  -                 if isAppTy g ty then
  -                    let tcref = tcrefOfAppTy g ty
  +                 match tryDestAppTy g ty with
  +                 | ValueSome tcref ->
                       let extMemInfos = nenv.eIndexedExtensionMembers.Find tcref
                       SelectPropInfosFromExtMembers infoReader ad optFilter ty m extMemInfos
  -                 else [])
  +                 | _ -> [])
   
           extMemsDangling @ extMemsFromHierarchy
   
  
positive.code: 
              match lookupKind with
              | LookupKind.Expr | LookupKind.Pattern ->
                  if isAppTy g ty then
                      let tcref = tcrefOfAppTy g ty
                      for uc in tcref.UnionCasesArray do
                          addToBuffer uc.DisplayName
              | _ -> ()
  
          raze (UndefinedName (depth, FSComp.SR.undefinedNameFieldConstructorOrMember, id, suggestMembers))
  
negative.code: // X.ListEnumerator // does not resolve
  //
  let ResolveNestedTypeThroughAbbreviation (ncenv: NameResolver) (tcref: TyconRef) m =
      if tcref.IsTypeAbbrev && tcref.Typars(m).IsEmpty then 
          match tryAppTy ncenv.g tcref.TypeAbbrev.Value with
          | ValueSome (abbrevTcref, []) -> abbrevTcref
          | _ -> tcref
      else
          tcref
  
  