anchor.diff:                  let outputString = n.ToString()
                   // Wait until FsAC sends the 'listener started' magic string until
                   // we inform the caller that it's ready to accept requests.
  -                let isStartedMessage = outputString.Contains ": listener started in"
  +                let isStartedMessage = outputString.Contains "listener started in"
                   if isStartedMessage then
  -                    log.Debug ("got FSAC line, is it the started message? %s", isStartedMessage)
  +                    fsacStdoutWriter ("Resolving startup promise because FSAC printed the 'listener started' message")
  +                    fsacStdoutWriter "\n"
                       service <- Some child
                       resolve child
                       isResolvedAsStarted <- true
   
  -                // always log the output
  -                log.Debug ("FSAC stdout: %s", n.ToString())
  +                fsacStdoutWriter outputString
               )
               |> Process.onError (fun e ->
  -                log.Error ("FSAC process error: %s", e.ToString())
  +                fsacStdoutWriter (e.ToString())
                   if not isResolvedAsStarted then
                       reject ()
               )
               |> Process.onErrorOutput (fun n ->
  -                log.Error ("FSAC stderr: %s", n.ToString())
  +                fsacStdoutWriter (n.ToString())
                   if not isResolvedAsStarted then
                       reject ()
               )
  
positive.code:             |> ignore)
  
  
  
      let start () =
           let path = (VSCode.getPluginPath "Ionide.Ionide-fsharp") + "/bin/FsAutoComplete.Suave.exe"
           start' path
  
negative.code: 
      let private request<'a, 'b> (fsacAction: string) id requestId (obj : 'a) =
          let started = DateTime.Now
          let fullRequestUrl = url fsacAction requestId
          logOutgoingRequest requestId fsacAction obj
  
          ax.post (fullRequestUrl, obj)
  