anchor.diff:  
           // Completion at 'inherit C(...)"
           | Some (CompletionContext.Inherit(InheritanceContext.Class, (plid, _))) ->
  -            GetEnvironmentLookupResolutions(mkPos line loc, plid, filterCtors, false)
  -            |> fst
  +            GetEnvironmentLookupResolutionsAtPosition(mkPos line loc, plid, filterCtors, false)
               |> FilterRelevantItemsBy None GetBaseClassCandidates
               |> Option.map toCompletionItems
   
           // Completion at 'interface ..."
           | Some (CompletionContext.Inherit(InheritanceContext.Interface, (plid, _))) ->
  -            GetEnvironmentLookupResolutions(mkPos line loc, plid, filterCtors, false)
  -            |> fst
  +            GetEnvironmentLookupResolutionsAtPosition(mkPos line loc, plid, filterCtors, false)
               |> FilterRelevantItemsBy None GetInterfaceCandidates
               |> Option.map toCompletionItems
   
           // Completion at 'implement ..."
           | Some (CompletionContext.Inherit(InheritanceContext.Unknown, (plid, _))) ->
  -            GetEnvironmentLookupResolutions(mkPos line loc, plid, filterCtors, false) 
  -            |> fst
  +            GetEnvironmentLookupResolutionsAtPosition(mkPos line loc, plid, filterCtors, false) 
               |> FilterRelevantItemsBy None (fun t -> GetBaseClassCandidates t || GetInterfaceCandidates t)
               |> Option.map toCompletionItems
   
  
positive.code:                         None
                      | _ ->         
                         // Use an environment lookup as the last resort
                         match nameResItems, envItems, qualItems with            
                         
                         // First, use unfiltered name resolution items, if they're not empty
  
negative.code:                     let plid, residue = List.frontAndBack origLongIdent
                      plid, Some residue
  
              let (nenv, ad), m = GetBestEnvForPos (mkPos line loc)
              let ty = NameResolution.TryToResolveLongIdentAsType ncenv nenv m plid
  
              match nameResItems with            
              | NameResResult.TypecheckStaleAndTextChanged -> None // second-chance intellisense will try again
              | NameResResult.Cancel(denv,m) -> Some([], denv, m)
  