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

                      (conj route token)
                      results)))
                (catch Exception e
                  (.printStackTrace e)
                  (prn stash)
                  (throw (ex-info "Exception @match" {:exception e}))))))]
    (match-recur pattern true stash 0 [] [])))

(defn- pass-once

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

(defn- never-produced?
