anchor.diff:              |> editor.GetLineText
           getLineWithoutPrompt lineStr
   
  -    let setCaretLine (s:string) =
  +    let setCaretLine s =
           let line = editor.GetLineByOffset editor.CaretOffset
           editor.ReplaceText(line.Offset, line.EndOffset - line.Offset, prompt + s)
   
  +    
       let resetFsi intent =
           killIntent <- intent
           session |> Option.iter (fun ses -> ses.Kill())
           if intent = Restart then session <- setupSession()
  +
  +    member x.SendText s = 
  +        editor.InsertAtCaret s
  +        x.SendCommand (s + ";;")
   
       member x.Session = session
       member x.Shutdown()  =
  
positive.code: 
              let line = IdeApp.Workbench.ActiveDocument.Editor.CaretLine
              let text = IdeApp.Workbench.ActiveDocument.Editor.GetLineText(line)
              //let file = IdeApp.Workbench.ActiveDocument.FileName
              //let sel = String.Format("{2};;", line, file.FullPath, text)
              x.SendCommand (text + ";;")
              //advance to the next line
              if PropertyService.Get ("FSharpBinding.AdvanceToNextLine", true)
              then IdeApp.Workbench.ActiveDocument.Editor.SetCaretLocation (line + 1, Mono.TextEditor.DocumentLocation.MinColumn, false)
  
negative.code:             else
                  //*attempt* to add the pad manually this seems to fail sporadically on updates and reinstalls, returning null
                  let pad = IdeApp.Workbench.AddPad(new FSharpInteractivePad(),
                                                    "FSharp.MonoDevelop.FSharpInteractivePad",
                                                    "F# Interactive",
                                                    "Center Bottom",
                                                    IconId("md-fs-project"))
  