set combinations reduce into
(defn power-set [s] (reduce (fn [s e] (into s (map #(conj % e) s))) #{#{}} s))