anchor.diff:  
   
   let ExecBuffered checkError =
  -    supervisedExec ignore ignore checkError
  +    supervisedExec ignore ignore checkError true
   
   let Exec checkError = 
  -    supervisedExec (printfn "%s") (printfn "%s") checkError
  +    supervisedExec (printfn "%s") (printfn "%s") checkError false
   
   let ExecSingleLine checkError (command : string) (args : string) (dir : DirectoryInfo) (vars : Map<string, string>) =
       let mutable res : string = null
  
positive.code:         | x :: _ -> res <- x
          | [] -> failwith "No data found"
  
      supervisedExec (printfn "%s") (printfn "%s") firstLine command args dir vars
      res
  
  
  
negative.code:     | Err of string list
      | End of int
  
  let private defaultPSI (command : string) (args : string) (dir : DirectoryInfo) (vars : Map<string, string>) redirect =
      let psi = ProcessStartInfo (FileName = command,
                                  Arguments = args,
                                  UseShellExecute = false, 
                                  WorkingDirectory = dir.FullName, 
                                  LoadUserProfile = true)
      for var in vars do
          psi.EnvironmentVariables.Add(var.Key, var.Value)
  
      if redirect then
          psi.RedirectStandardOutput <- true
          psi.RedirectStandardError <- true
  
      psi
      
  
  let private supervisedExec onOut onErr onEnd redirect (command : string) (args : string) (dir : DirectoryInfo) (vars : Map<string, string>) =
      let psi = defaultPSI command args dir vars redirect
      use proc = Process.Start (psi)
      if proc |> isNull then failwith "Failed to start process"
  
  