anchor.diff:                  let cursor = (docloc.Column, docloc.Line)
                   posGeq cursor start && posGeq finish cursor
   
  -            let toplevel = ast.Untyped.GetNavigationItems().Declarations
  +            let toplevel = 
  +                // GetNavigationItems is not 100% solid and throws occasional exceptions
  +                try ast.Untyped.GetNavigationItemsDeclarationsSafe()
  +                with _ -> [| |] 
   
               #if DEBUG
               let allthings = [| for tl in  toplevel do yield (tl.Declaration.Name, tl.Nested |> Array.map (fun n -> n.Name)) |]
  
positive.code: 
  
  open Microsoft.FSharp.Compiler.Range
  type FSharpPathExtension() =
      inherit TextEditorExtension()
  
  
negative.code:         memberList.Clear()
          match tag with
          | :? TypedParseResult as tpr ->
              let navitems = tpr.Untyped.GetNavigationItemsDeclarationsSafe()
              for decl in navitems do
                  memberList.Add(decl.Declaration)
          | :? (TypedParseResult * string) as typeAndFilter ->
              let tpr, filter = typeAndFilter 
              let navitems = tpr.Untyped.GetNavigationItemsDeclarationsSafe()
              for decl in navitems do
                  if decl.Declaration.Name.StartsWith(filter) then
                      memberList.Add(decl.Declaration)
          | :? TopLevelDeclaration as tld ->
  