                 identity)
           listings)))
 
-(p/defnp t-match [products listings]
-  (let [manufacturer-matcher (make-manufacturer-matcher products manufacturer-matchers)
-        title-matchers (map-vals make-title-matcher products)]
-    (->> (t/group-by (comp :product_name #(match-listing manufacturer-matcher title-matchers %)))
-         (t/fold {:reducer #(update %1 :listings conj %2)
-                  :reducer-identity (constantly {:listings []})
-                  :combiner conj
-                  :combiner-identity (constantly [])})
-         (t/tesser (t/chunk 1024 listings))
-         (pmap (fn [[prod m]]
-                (assoc m :product_name prod))))))
-
-(p/defnp r-match [products listings]
-  (let [manufacturer-matcher (make-manufacturer-matcher products manufacturer-matchers)
-        title-matchers (map-vals make-title-matcher products)
-        reducef (fn ([] {})
-                  ([m [listing prod]]
-                   (assoc m prod
-                          (-> m
-                              (get prod {:product_name prod
-                                         :listings []})
-                              (update :listings conj listing)))))]
-    (->> listings
-         (r/map (juxt identity (comp :product_name #(match-listing manufacturer-matcher title-matchers %))))
-         (into []))))
-;         (r/fold reducef)
-;         vals)))
-
 (p/defnp group-matches [matches]
   (let [product first
         listing second]

                  {:product_name (:product_name prod)
                   :listings (map listing matching-listings)}
                  matching-listings))))))

(defn -main
  [& args]


; Result :: {:product_name str
;            :listings [Listing]}


; TODO
; listing manufacturer "Eastman Kodak Company"


(defn- parse-json
  "Parses a JSON string, keywordizing keys."
