anchor.diff:              | Forward = 1
               | Backward = 2
   
  -        type Handler(cmd : Command, keyInfo : ConsoleKeyInfo, h : KeyHandler) =
  -            member val HandledCommand = cmd
  -            member val KeyInfo = keyInfo
  -            member val KeyHandler = h
  -
  -            new(cmd : Command, key, h : KeyHandler) = Handler(cmd, new ConsoleKeyInfo((char) 0, key, false, false, false), h)
  -            new(cmd : Command, c, h : KeyHandler) = Handler(cmd, new ConsoleKeyInfo (c, ConsoleKey.Zoom, false, false, false), h)
  -            
  -            static member Alt cmd c k h = Handler (cmd, new ConsoleKeyInfo (c, k, false, true, false), h)
  -            static member Control cmd (c : char) h = Handler (cmd, (char) ((int)c - (int)'A' + 1), h)
  +
   
           /// Emulates the bash-like behavior, where edits done to the
           /// history are recorded
  
positive.code:                 History = History.empty name histsize
                  KillBuffer = ""
                  AutoCompleteEvent = None
              }
  
          type SearchState =
  
negative.code: 
                  /// Invoked when the user requests auto-completion using the tab character
                  AutoCompleteEvent : AutoCompleteHandler option
  
                  TabAtStartCompletes : bool
              }
  
          let makeGlobalState (name : string option) (histsize : int) =
  