anchor.diff:              let posGeq p1 p2 =
                   posEq p1 p2 || posGt p1 p2
   
  -            let inside (docloc:Mono.TextEditor.DocumentLocation) (start, finish) =
  +            let isInside (docloc:Editor.DocumentLocation) (start, finish) =
                   let cursor = (docloc.Column, docloc.Line)
                   posGeq cursor start && posGeq finish cursor
   
               let toplevel = ast.GetNavigationItems()
   
               let topLevelTypesInsideCursor =
  -                toplevel |> Array.filter (fun tl -> let m = tl.Declaration.Range in inside loc ((m.StartColumn, m.StartLine),(m.EndColumn, m.EndLine)))
  -                         |> Array.sortBy(fun xs -> xs.Declaration.Range.StartLine)
  +                toplevel
  +                |> Array.filter (fun tl -> let range = tl.Declaration.Range
  +                                           isInside loc ((range.StartColumn, range.StartLine),(range.EndColumn, range.EndLine)))
  +                |> Array.sortBy(fun xs -> xs.Declaration.Range.StartLine)
   
               let newPath = ResizeArray<_>()
               for top in topLevelTypesInsideCursor do
  
positive.code: open MonoDevelop.Core
  open MonoDevelop.Components
  open MonoDevelop.Ide
  open MonoDevelop.Ide.Gui
  open MonoDevelop.Ide.Gui.Content
  open Microsoft.FSharp.Compiler.SourceCodeServices
  
negative.code: 
          member x.ActivateItem(n) =
              let node = memberList.[n]
              let extEditor = ext.DocumentContext.GetContent<Editor.TextEditor>()
              if extEditor <> null then
                  let (scol,sline) = node.Range.StartColumn, node.Range.StartLine
                  extEditor.SetCaretLocation(max 1 sline, max 1 scol, true)
  
          member x.GetMarkup(n) =
              let node = memberList.[n]
  