anchor.diff:              return failwith "Eval returned unexpected result" }
   
       let cancel () = async {
  -        let! res = request<Result<unit>> (url "cancel") None 
  -        if res.result <> "cancel" then Logger.logf "ERROR" "Received unexpected response for 'cancel': %O" [| res |] }
  +        let! res = request<Result<unit>> (url "cancel") None
  +        if res = unbox null || res.result <> "cancel" then Logger.logf "ERROR" "Received unexpected response for 'cancel': %O" [| res |] }
   
       let output () = async {
  -        let! res = request<Result<unit>> (url "output") None 
  -        if res.result <> "output" then Logger.logf "ERROR" "Received unexpected response for 'output': %O" [| res |] 
  +        let! res = request<Result<unit>> (url "output") None
  +        if res = unbox null || res.result <> "output" then Logger.logf "ERROR" "Received unexpected response for 'output': %O" [| res |]
           return res.output }
   
       let start () =
           try
  -            let pth = 
  +            let pth =
                   if Process.isWin () then @"\ionide-fsi\bin\FsInteractiveService.exe"
                   else @"/ionide-fsi/bin/FsInteractiveService.exe"
               let location = Globals.atom.packages.packageDirPaths.[0] + pth
  
positive.code: 
  type EvalDetails =
    { string : string
      html : string 
      warnings : TypeCheckError[] }
  
  type EvalRequest = 
    { file : string
      line : int
      code : string }
  
  /// Wrapper that discriminates based on Result.result
  type EvaluationResult = 
    | Error of Result<TypeCheckError[]>
    | Exception of Result<string>
    | Success of Result<EvalDetails>
  
negative.code:     let reset () = async {
          stop ()
          start () }
  