   [node err-msg]
   (let [full-err-msg (str "inactive node modification attempted for node "
                           (with-out-str (pr node))
-                          " with state "
-                          @(:status node)
                           (when-not (empty? err-msg)
                             (str " whilst " err-msg)))]
     (condp = *inactive-node-modification-error*

  "Returns true if n is a running synth node."
  [n]
  (and (node? n)
       (= :live @(:status n))))

(defn node-paused?
  "Returns true if n is a paused synth node."
  [n]
  (and (node? n)
       (= :paused @(:status n))))

(defn node-loading?
  "Returns true if n is a loading synth node."
  [n]
  (and (node? n) (= :loading @(:status n))))

(defn node-active?
  "Returns true if n is an active synth node."

   *block-node-until-ready?* to false."
  [node]
  (when *block-node-until-ready?*
    (deref! (:loaded? node) (str
                             "blocking until the following node has completed loading: "
                             (with-out-str (pr node))))))

(extend java.lang.Long
  ISynthNode
