anchor.diff:      else
           raise (SessionError (VFSIstrings.SR.couldNotFindFsiExe fsiRegistryPath))
   
  -let readLinesAsync(reader: System.IO.StreamReader): IEvent<string> =
  -    let newLine = Event<_>()
  +let readLinesAsync (reader: System.IO.StreamReader) trigger =
       let buffer = System.Text.StringBuilder(1024)
       let byteBuffer = Array.zeroCreate 128
       let encoding = System.Text.Encoding.UTF8
  
positive.code:                 return! read newPos
          }
      Async.StartImmediate (read 0)
      newLine.Publish
  
  let fsiStartInfo channelName =
      let procInfo = new ProcessStartInfo()
  
negative.code:         let c = buffer.[pos]
          if c = '\r' || c = '\n' then
              let line = buffer.ToString(0, pos)
              trigger line
  
              let deletePos = 
                  if c = '\r' && (pos + 1) < buffer.Length && buffer.[pos + 1] = '\n' then pos + 2 else pos + 1
  