 
    :root/user
    (fn [env ast]
-     (resolve (chan)
-              (assoc env :user/name (:user/name (:params ast)))
-              ast))
+     (resolve (assoc env :user/name (:user/name (:params ast)))
+              ast
+              (chan)))
 
    :user/name
    (fn [env ast]

   (fn [env ast]
     (p/alet [get-user (get-in env [:apis :get-user])
              user (p/await (get-user {:name (:user/name env)}))]
       (resolve (chan)
                (assoc env :user/name (:favorite-fellow-user-name user))
                ast)))})

(deftest new-thing-works
  (async done

       (doto to (put! v) (close!)))))
  to)

(defn resolve [env query-or-ast channel]
  (let [ast (if (vector? query-or-ast)
              (om/query->ast query-or-ast)
              query-or-ast)
