anchor.diff:              if commandHistoryFuture.Count = 0 then
                   commandHistoryFuture.Push (getCaretLine())
               else
  -                if commandHistoryPast.Count = 1 then ()
  +                if commandHistoryPast.Count = 0 then ()
                   else commandHistoryFuture.Push (commandHistoryPast.Pop ())
               setCaretLine (commandHistoryPast.Peek ())
   
       member x.ProcessCommandHistoryDown () =
           if commandHistoryFuture.Count > 0 then
  -            if commandHistoryFuture.Count = 1 then
  +            if commandHistoryFuture.Count = 0 then
                   setCaretLine (commandHistoryFuture.Pop ())
               else
                   commandHistoryPast.Push (commandHistoryFuture.Pop ())
  
positive.code:                         x.Editor.InsertAtCaret "\n"
                          if not (lineStr.TrimEnd().EndsWith(";;")) then
                              fsi.AddMorePrompt()
                              //x.Editor.InsertAtCaret promptExt
                      
                      Task.FromResult false
                  | SpecialKey.Up -> 
  
negative.code:         else
              "", line
      
      override x.IsValidInContext(context) =
          context :? FsiDocumentContext
  
      override x.KeyPress (descriptor:KeyDescriptor) =
          match FSharpInteractivePad.Fsi with
          | Some fsi -> 
              let lineStr, line = getCaretLine x.Editor
  
              let result = 
                  match descriptor.SpecialKey with
  