anchor.diff:    //relying on this is complicated since there is no upper bound on message size
     //therefore we use a classic lock file to provide concurrency control on the fifo
     let flockName = tmp + pipeName + ".lock"
  -  let rec lockPipe () =    
  +  let rec lockPipe () =
       let flockFd = Syscall.``open``(flockName, OpenFlags.O_CREAT|||OpenFlags.O_EXCL|||OpenFlags.O_WRONLY, FilePermissions.S_IRUSR|||FilePermissions.S_IWUSR)
  -    if flockFd <> -1 then
  -      Syscall.close(flockFd) |> ignore
  +    if flockFd <> -1 then Syscall.close(flockFd) |> ignore
       elif flockFd = -1 && Stdlib.GetLastError() = Errno.EEXIST then
         Thread.Sleep 100
         lockPipe()
  
positive.code:         if not client.IsConnected then reply <| Exception (new UnknownRecipientException("npp: message target is stopped or pipe is broken", actorId))
          else
  
          let data = self.SerializeDataAndHandleForeignRcs msg
          
          do! client.AsyncWriteBytes data
  
  
negative.code:     else new PipeReceiverWindows<'T>(pipeName, processMessage, ?singleAccept = singleAccept) :> PipeReceiver<'T>
  
  
  and PipeReceiverUnix<'T>(pipeName: string, processMessage: 'T -> unit, ?singleAccept: bool) =
    inherit PipeReceiver<'T>(pipeName)
  
    let singleAccept = defaultArg singleAccept false
  