         f (-> t :name resolve)
         a (:args t)]
     (apply f a)))
-(util/defalias w-rp! ws-replay!)
-
-(defn ws-deep-trace-replay
-  [qual-sym args]
+(util/defalias w-rpi! ws-replay!)
+
+(defn- deep-trace-apply*
+  [workspace qual-sym args]
   (let [meta' (-> qual-sym
                   resolve
                   meta)
         ns' (-> meta'
                 :ns
                 str)
-        workspace (ws/default-workspace)
         dtraced-fn (dtrace/deep-tracer {:workspace nil
                                         :qual-sym qual-sym
                                         :meta' meta'
                                         :ns' ns'}
                                        nil)]
     (binding [trace/*trace-log-parent* workspace]
-      (apply dtraced-fn args)
-      (ws-deref! workspace))))
-(util/defalias w-dtr ws-deep-trace-replay)
-
-(defn ws-deep-trace-replay-print
+      (apply dtraced-fn args))))
+
+(defn ws-query-deep-trace-replay
+  [query]
+  (let [results (ws-query* query)
+        workspace (ws/default-workspace)]
+    (doseq [{:keys [name args]} results]
+      (deep-trace-apply* workspace
+                         name
+                         args))
+    (ws-deref! workspace)))
+
+
+(defn ws-deep-trace-apply
+  [qual-sym args]
+  (let [workspace (ws/default-workspace)]
+    (deep-trace-apply* workspace
+                       qual-sym
+                       args)
+    (ws-deref! workspace)))
+(util/defalias w-dta ws-deep-trace-apply)
+
+(defn ws-deep-trace-apply-print
   [qual-sym args]
   (ws-print (ws-deep-trace-replay qual-sym
                                   args)))
-(util/defalias w-dtrp ws-deep-trace-replay-print)
+(util/defalias w-dtap ws-deep-trace-apply-print)
+
 
 ;; === END Workspace functions
 

          %)
       form))

(defmacro ws-query
  "Queries the trace record of the active workspace."
  [& body] `(q/q (ws-deref!)
                 ~@(syms->qbn body)))
(util/defalias-macro w-q ws-query)

(defmacro ws-query-print
  "Queries the trace record of the active workspace."
  [& body]
  `(with-printer-default
     (print-trees (q/q (ws-deref!)
                       ~@(syms->qbn body)))))
(util/defalias-macro w-qp ws-query-print)
(util/defalias-macro q ws-query-print)


  "Queries `tree`, a trace record."
  [tree & body] `(q/q ~tree
                      ~@body))

;; === END Query functions

