anchor.diff:              Console.WriteLine("\t{0}", oracle)
   
       let continueSession() =
  +        let (readKey, consumeKey) = createBlockingReadKey()
  +        _readKeysHandlers.Add(80, consumeKey)
  +
           let savedTop = Console.CursorTop
           Console.CursorTop <- !_restoreSessionConsoleTop
           Console.Write("A previous session already exists, do you want to continue? [Y/N] ")
           let restoreSession = ref String.Empty
           while !restoreSession <> "Y" && !restoreSession <> "N" do
  -            restoreSession := Console.ReadKey().KeyChar.ToString().ToUpper()
  +            restoreSession := readKey().KeyChar.ToString().ToUpper()
   
           Console.CursorTop <- savedTop
           (!restoreSession).Equals("Y", StringComparison.Ordinal)
  
positive.code:             | List_Templates -> "show all the available templates"
              | List_Oracles -> "show all the available oracles"
              | Version -> "show the full version"
  
  type ConsoleCtrlDelegate = delegate of Int32 -> Boolean
  
  module Program =
  
      let _syncRoot = new Object()
      let _nextCursorTopForUsername = ref 0
      let _restoreSessionConsoleTop = ref 0
      let mutable _consoleCtrlDelegateHandler: ConsoleCtrlDelegate option = None
      let mutable _updateProgressBarCallback : (unit -> unit) option = None
      
      [<DllImport("kernel32.dll")>]
      extern Boolean SetConsoleCtrlHandler(ConsoleCtrlDelegate handlerRoutine, Boolean add)
      
      let handleCtrCancelEvent (sessionManager: SessionManager) (saveCallback: unit -> unit) (deleteCallback: unit -> unit) _ =
          lock _syncRoot (fun () ->           
              Console.WriteLine()
              Console.WriteLine()
              Console.Write("Do you want to save the current session? [Y/N] ")
              let saveSession = ref String.Empty
              while !saveSession <> "Y" && !saveSession <> "N" do
                 saveSession := Console.ReadKey().KeyChar.ToString().ToUpper()
  
              if (!saveSession).Equals("Y", StringComparison.Ordinal) then
                  saveCallback()
  
negative.code: ﻿namespace Mandolin0
  
  open System
  open System.Collections.Generic
  open System.Text
  open System.Reflection
  open System.Threading
  open System.Runtime.InteropServices
  open Autofac
  open Nessos.UnionArgParser
  