(time
  (fn [] (defn multi
  	[coll x]
  	(list* (map #(* % x) coll)))

  (defmacro lolmacro
	[& lists]
	`(fn [& xs#]
		(list* (map multi [~@lists] xs#))))

  (def loltwo (lolmacro [1 2 3] [4 5 6]))
  (def lolthree (lolmacro [1 2 3] [4 5 6] [7 8 9]))

  (println (loltwo 2 1))
  (println (lolthree 3 2 1))))