                       (conj route token)
                       results)))
                 (catch Exception e
-                  (.printStackTrace e)
-                  (prn stash)
-                  (throw (ex-info "Exception @match" {:exception e}))))))]
+                  ;; (.printStackTrace e) - probably use logging/debug and turn logging output
+                  ;; (prn stash)
+                  (throw (ex-info (format "Exception @match stack=%s stash=%s"
+                                          (with-out-str (clojure.stacktrace/print-stack-trace e))
+                                          (with-out-str (pr stash)))
+                                  {:exception e}))
+                  ))))]
     (match-recur pattern true stash 0 [] [])))
 
 (defn- pass-once

  3. tokens containing final info are produced using their production rules"
  (:use [clojure.tools.logging])
  (:require [clojure.set :as sets]
            [duckling.time.prod]
            [duckling.time.api :as time]
            [duckling.util :as util]))

                                    (subs sentence pos end)
                                    (:name rule)
                                    sentence
                                    e
                                    (with-out-str (clojure.stacktrace/print-stack-trace e)))
                        {:exception e}))))))

(defn- never-produced?
