anchor.diff:      else new PipeReceiverWindows<'T>(pipeName, processMessage, ?singleAccept = singleAccept) :> PipeReceiver<'T>
   
   
  -and PipeReceiverUnix<'T>(pipeName: string, processMessage: 'T -> unit, ?singleAccept: bool) as self =
  +and PipeReceiverUnix<'T>(pipeName: string, processMessage: 'T -> unit, ?singleAccept: bool) =
     inherit PipeReceiver<'T>(pipeName)
   
     let singleAccept = defaultArg singleAccept false
  
positive.code:       let timeout' = if initTimeout <> rc.Timeout then rc.Timeout else timeout
  
        try
          use sender = PipeSender<'T>.GetPipeSender(pipeName, actorId)
          do! sender.PostAsync msg
          return! rcr.AwaitReply timeout'
        with :? CommunicationException as e -> return! Async.Raise e
            | e -> return! Async.Raise <| CommunicationException(sprintf "PipeProtocol: error communicating with %O" actorId, e)
      }
  
    member private self.TryPostWithReply(msgF: IReplyChannel<'R> -> 'T, timeout: int) =
  
negative.code:   override __.Poster = poster
    override __.Connect(connectionTimeout: int) = client.Connect(connectionTimeout)
    override __.Disconnect() =
      try Async.RunSynchronously <| client.AsyncWriteBytes(serializer.Serialize<Request<'T>>(Disconnect)) with _ -> ()
      client.Dispose()
  
  
  