 
 (>defn branch-node?
   [node]
-  [(? (s/keys)) => boolean?]
+  [(? ::node) => boolean?]
   (boolean (node-branches node)))
 
 (>defn node-kind
   "Return a keyword describing the type of the node."
   [node]
-  [(? (s/keys)) => ::node-type]
+  [(? ::node) => ::node-type]
   (cond
     (pc-sym node)
     ::node-resolver

  "Direct successors of node, branch nodes and run-next, in case of branch nodes the
  branches will always come before the run-next."
  [{::keys [run-next] :as node}]
  [(s/keys) => (s/coll-of ::node-id)]
  (let [branches (node-branches node)]
    (cond-> []
      branches


  Note that in case of repeated events, only the last one will be kept."
  [{::keys [node-trace] :as node}]
  [(s/keys :opt [::node-trace]) => ::node]
  (into
    node
    (map (juxt ::pt/event identity))
