   (let [r (cond (= (safe-some-> args first) "local")
               (apply concat (apply
                 (partial map #(list :local 'set! %1 %2))
-                (map next (leave :odd (next args)))))
+                (map next (leave :even (next args)))))
               (= (safe-some-> args first first)
                  :varlist)
               `(do ~@(apply
                 (partial map #(list 'set! %1 %2))
-                (map next (leave :odd args))))
+                (map next (leave :even args))))
               (= "while" (first args))
               (get-while-statement args)
               (= "repeat" (first args))


(def third #(nth %1 2))
(def fourth #(nth %1 3))

(defn leave [odd-or-even-kw items]
  (map second (remove #((if (= odd-or-even-kw :odd) odd? even?) (first %1)) (map #(vector %1 %2) (range) items))))

(comment
  (let [s [[{:a 1} ['(set! a 3) :b #{'('(set! b 4))}]] ['(['(set! a 6)])]]


(defn get-while-statement [& args]
  (println "while-args:" args)
  (let [while-args (leave :odd (first args))]
    (println "while-args1:" while-args)
    `(while ~(first while-args)
       ~(second while-args))
