     ;; not typing
     (case (:key e)
       :c (update-in state [:show-cards] not)
+      :q (update-in state [:query-filter] not)
       :j (update-in state [:top] #(+ 15 %))
       :k (update-in state [:top] #(- % 15))
       :l (update-in state [:left] #(+ 15 %))

            :top 0
            :query ""
            :show-cards false
            :debug (atom nil)
            :debug-avail (atom [])
            :debug-selected (atom [])})))

(defn debug [state f text]
  (let [query (.toLowerCase (:query state))]
    (swap! (:debug-avail state) conj text)
    (when (and (not-empty query)
               (nil? (deref (:debug state)))
               (.contains (.toLowerCase text) query))
      (swap! (:debug-selected state) conj text)
      (reset! (:debug state) (.clone (f))))))

            [quil.core :as q]
            [quil.middleware :as m]
            [set-solver.core :refer :all]
            [set-solver.util :refer [constrain enumerate]])
  (:import [java.nio ByteBuffer ByteOrder]
           [org.opencv.core Mat Size Rect Point CvType]
           [org.opencv.imgcodecs Imgcodecs]
