anchor.diff:  // X.ListEnumerator // does not resolve
   //
   let ResolveNestedTypeThroughAbbreviation (ncenv: NameResolver) (tcref: TyconRef) m =
  -    if tcref.IsTypeAbbrev && tcref.Typars(m).IsEmpty && isAppTy ncenv.g tcref.TypeAbbrev.Value && isNil (argsOfAppTy ncenv.g tcref.TypeAbbrev.Value) then
  -        tcrefOfAppTy ncenv.g tcref.TypeAbbrev.Value
  +    if tcref.IsTypeAbbrev && tcref.Typars(m).IsEmpty then 
  +        match tryAppTy ncenv.g tcref.TypeAbbrev.Value with
  +        | ValueSome (abbrevTcref, []) -> abbrevTcref
  +        | _ -> tcref
       else
           tcref
   
  
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:         let extMemsFromHierarchy =
              infoReader.GetEntireTypeHierarchy(AllowMultiIntfInstantiations.Yes, m, ty)
              |> List.collect (fun ty ->
                   match tryDestAppTy g ty with
                   | ValueSome tcref ->
                      let extMemInfos = nenv.eIndexedExtensionMembers.Find tcref
                      SelectPropInfosFromExtMembers infoReader ad optFilter ty m extMemInfos
                   | _ -> [])
  
          extMemsDangling @ extMemsFromHierarchy
  
  