anchor.diff:    | Error of exn
   
   type PipeReceiver<'T>(pipeName: string, processMessage: 'T -> unit, ?singleAccept: bool) as self =
  +  let onMono = Type.GetType("Mono.Runtime") <> null
     let singleAccept = defaultArg singleAccept false
     let serializer = Serialization.defaultSerializer
   
     let errorEvent = new Event<exn>()
   
     let createServerStreamInstance _ =
  -    new NamedPipeServerStream(pipeName, PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous)
  +    new NamedPipeServerStream(pipeName, PipeDirection.InOut, 1, PipeTransmissionMode.Byte, if onMono then PipeOptions.None else PipeOptions.Asynchronous)
   
     // avoid getting ObjectDisposedException in callback if server has already been disposed
     let awaitConnectionAsync (s: NamedPipeServerStream) =
  
positive.code:       if not cts.IsCancellationRequested then
          if server.IsConnected then server.WaitForPipeDrain()
          cts.Cancel()
          if server.IsConnected then server.Disconnect()
          server.Dispose()
      with _ -> ()
  
  
negative.code:         do! awaitConnectionAsync server
          let! keep = connectionLoop server
          if keep then
            if not onMono then server.Disconnect()
            return! serverLoop server
          else self.Stop()
        with e -> return errorEvent.Trigger e
  