anchor.diff:      /// <param name="faultPolicy">The default fault policy to be used by the cluster. Defaults to NoRetry.</param>
       static member Connect(worker : ThespianWorker, [<O;D(null:obj)>] ?logLevel : LogLevel, [<O;D(null:obj)>] ?faultPolicy : FaultPolicy) : ThespianCluster =
           match worker.RuntimeState with
  -        | None -> invalidOp "Worker '%s' is not part of an active cluster." worker.Uri
  +        | None -> invalidOp <| sprintf "Worker '%s' is not part of an active cluster." worker.Uri
           | Some state -> new ThespianCluster(state, logLevel, faultPolicy)
   
       /// <summary>
  
positive.code:     /// <param name="runAsBackground">Run as background process. Defaults to false.</param>
      /// <param name="heartbeatInterval">Specifies the default heartbeat interval emitted by the worker. Defaults to 500ms</param>
      /// <param name="heartbeatThreshold">Specifies the maximum time threshold of heartbeats after which the worker will be declared dead. Defaults to 10sec.</param>
      static member Spawn (?hostname : string, ?port : int, ?workingDirectory : string, ?maxConcurrentWorkItems : int,
                                  ?logLevel : LogLevel, ?logFiles : seq<string>, ?useAppDomainIsolation : bool, ?runAsBackground : bool,
                                  ?heartbeatInterval : TimeSpan, ?heartbeatThreshold : TimeSpan) =
  
          ThespianWorker.SpawnAsync(?hostname = hostname, ?port = port, ?maxConcurrentWorkItems = maxConcurrentWorkItems, ?logLevel = logLevel, 
                                      ?logFiles = logFiles, ?runAsBackground = runAsBackground, ?useAppDomainIsolation = useAppDomainIsolation,
  
negative.code:     ///     Sends a kill signal to the worker process.
      /// </summary>
      /// <param name="signal">Process exit signal. Defaults to 1.</param>
      member __.Kill([<O;D(null:obj)>]?signal : int) : unit = 
          let signal = defaultArg signal 1
          protect(fun () -> aref <-- Kill signal)
  
  