         (assoc ::run-next run-next)))))
 
 (defn extend-node-run-next [{::keys [index-syms] :as out} {::keys [run-next run-next-stack] :as env}]
-  ; TODO handle graph here
   (if run-next
     (if-let [node-ids (seq (get index-syms (pc-sym env)))]
       (reduce

      (set/subset? (all-attribute-resolvers env (pc-attr env)) syms)
      (update ::unreachable-attrs conj (pc-attr env)))))

(defn compute-missing [out {::keys [previous-out] :as env} missing]
  (if (seq missing)
    (let [root-node (get-root-node out)


                unreachable-attrs (filter #(set/subset? (all-attribute-resolvers env %) unreachable-syms) still-missing)]
            (update out' ::unreachable-attrs into unreachable-attrs)))))
    out))

(defn get-resolver-extension-node-id
  [{::keys [index-syms] :as out} env]
  (let [resolver (pc-sym env)]
    (and (contains? (::index-syms out) resolver)
         (not (dynamic-resolver? env resolver))
         (first (get index-syms resolver)))))

(defn resolver-input-paths
  [out
