                          (or (-> o :var direct-nav?)
                              (-> o :sym direct-nav?))))
 
-          (maybe-direct-nav
-           (:val o)
-           (or (-> o :var direct-nav?)
-               (-> o :sym direct-nav?)
-               (-> o :val direct-nav?))))
+          (:val o))
 
         (instance? LocalSym o)
         (->DynamicVal (:sym o))

            `(coerce-nav ~code)))

    (instance? DynamicFunction o)
    (let [op (resolve-dynamic-fn-arg (:op o))
          params (map resolve-dynamic-fn-arg (:params o))]
      (if (all-static? (conj params op))
        (coerce-nav (apply op params))
        (let [code `(~(-> op resolve-dynamic-fn-arg-code original-obj)
                      ~@(map resolve-dynamic-fn-arg-code params))]
          (if (direct-nav? op) code `(coerce-nav ~code)))))

    :else
    (coerce-nav o)))

(defn direct-nav? [o]
  (-> o meta :direct-nav))

(defn all-static? [params]
  (every? (complement dynamic-param?) params))

(defn- magic-precompilation* [o]
  (cond (sequential? o)
        (flatten (map magic-precompilation* o))
