       (f/signal! pred)
       (f/signal! obj)
       (swap! queries assoc id {:acc acc :result res})
-      {:acc acc :result res}))
+      {:pattern [s p o] :acc acc :result res}))
   (query-result
     [_ id] (when-let [q (@queries id)] @@(:res q)))
   (add-rule!

     '[[toxi author fabric]
       [fabric type project]
       [toxi type person]])
    (info :inf-vertices (get-in inf1 [:query :result :id]) (get-in inf1 [:inf :id]))
    {:g   g
     :ctx ctx
     :all all
     :toxi toxi
     :types types
     :knows knows
     :projects projects
     :pq pq
     :jq jq
     :num-projects num-projects
     :num-types num-types}))

        num-projects (add-counter! g projects)
        num-types (add-counter! g types)
        inf1 (add-rule! g :knows [nil 'knows nil] (fn [[s p o]] [[s 'type 'person] [o 'type 'person] [o 'knows s]]))
        pq (:qvar-result (add-param-query! g :pq '[?s knows ?o]))
        jq (:qvar-result (add-join-query! g '[[?p author ?prj] [?prj type project] [?p type person]]))
        ctx (f/async-context {:graph g :processor f/eager-vertex-processor :timeout nil})]
    (f/execute! ctx)
    (mapv
