(def seasons #{:summer :fall :winter :spring})
(def season {:summer 0, :fall 1, :winter 2, :spring 3})
;; neither a set nor a map promises any order of its own
(println "values are" (keys season))
(println "base values are" (vals season))
;; sort by the base value when the order matters
(def ordered (mapv key (sort-by val season)))
;; ordered is [:summer :fall :winter :spring]
(prn ordered)
(println "first is" (first ordered))
(println "how many:" (count seasons))