anchor.diff:      override x.CreateTooltipWindow (editor, offset, modifierState, item) = 
           let doc = IdeApp.Workbench.ActiveDocument
           if (doc = null) then null else
  +        //At the moment as the new tooltips are unfinished we have two types here
  +        // ToolTipText for the old tooltips and (string * XmlDoc) for the new tooltips
           match item.Item with 
           | :? ToolTipText as titem ->
               let tooltip = TipFormatter.formatTip(titem)
  
positive.code:             //check to see if the last result is the same tooltipitem, if so return the previous tooltipitem
              match lastResult with
              | Some(tooltipItem) when
                  tooltipItem.Item :?> ToolTipText = tiptext && 
                  tooltipItem.ItemSegment = TextSegment(editor.LocationToOffset (line, col1 + 1), col2 - col1) -> tooltipItem
              //If theres no match or previous cached result generate a new tooltipitem
  
negative.code: namespace MonoDevelop.FSharp
  
  open System
  open System.Collections.Generic
  open FSharp.CompilerBinding
  open Mono.TextEditor
  open MonoDevelop.Core
  open MonoDevelop.Ide
  open MonoDevelop.Ide.CodeCompletion
  open Gdk
  open MonoDevelop.Components
  open Microsoft.FSharp.Compiler.SourceCodeServices
  
  [<AutoOpen>]
  module FSharpTypeExt =
      let isOperator (name: string) =
              if name.StartsWith "( " && name.EndsWith " )" && name.Length > 4 then
                  name.Substring (2, name.Length - 4) |> String.forall (fun c -> c <> ' ')
              else false
  
      let rec getAbbreviatedType (fsharpType: FSharpType) =
          if fsharpType.IsAbbreviation then
              let typ = fsharpType.AbbreviatedType
              if typ.HasTypeDefinition then getAbbreviatedType typ
              else fsharpType
          else fsharpType
  
      let isReferenceCell (fsharpType: FSharpType) = 
          let ty = getAbbreviatedType fsharpType
          ty.HasTypeDefinition && ty.TypeDefinition.IsFSharpRecord && ty.TypeDefinition.FullName = "Microsoft.FSharp.Core.FSharpRef`1"
      
      type FSharpType with
          member x.IsReferenceCell =
              isReferenceCell x
  
  type XmlDoc =
  | Full of string
  | Lookup of key: string * filename: string option
  | EmptyDoc
  
  type ToolTips =
  | ToolTip of string * XmlDoc * TextSegment
  | EmptyTip
  
  [<AutoOpen>]
  module NewTooltips =
      let getColourScheme () =
          Highlighting.SyntaxModeService.GetColorStyle (IdeApp.Preferences.ColorScheme)
  
      let hl str (style: Highlighting.ChunkStyle) =
          let color = getColourScheme().GetForeground (style) |> GtkUtil.ToGdkColor
          let  colorString = HelperMethods.GetColorString (color)
          "<span foreground=\"" + colorString + "\">" + str + "</span>"
  
      /// Add two strings with a space between
      let (++) a b = a + " " + b
  
      let getSegFromSymbolUse (editor:TextEditor) (symbolUse:FSharpSymbolUse)  =
          let startOffset = editor.Document.LocationToOffset(symbolUse.RangeAlternate.StartLine, symbolUse.RangeAlternate.StartColumn)
          let endOffset = editor.Document.LocationToOffset(symbolUse.RangeAlternate.EndLine, symbolUse.RangeAlternate.EndColumn)
          TextSegment.FromBounds(startOffset, endOffset)
  
      let getSummaryFromSymbol (symbolUse:FSharpSymbolUse) =
          let xmlDoc, xmlDocSig = 
              match symbolUse.Symbol with
              | :? FSharpMemberFunctionOrValue as func -> func.XmlDoc, func.XmlDocSig
              | :? FSharpEntity as fse -> fse.XmlDoc, fse.XmlDocSig
              | :? FSharpField as fsf -> fsf.XmlDoc, fsf.XmlDocSig
              | _ -> ResizeArray() :> IList<_>, ""
  
          if xmlDoc.Count > 0 then Full (String.Join( "\n", xmlDoc |> Seq.map GLib.Markup.EscapeText))
          else
              if String.IsNullOrWhiteSpace xmlDocSig then XmlDoc.EmptyDoc
              else Lookup(xmlDocSig, symbolUse.Symbol.Assembly.FileName)
  
  /// Resolves locations to tooltip items, and orchestrates their display.
  /// We resolve language items to an NRefactory symbol.
  