 ;; values without actually creating a map, right?
 (defn flags
   ([values] (into {}
-                  (for [[name flag] (:__flags @values)] [name (:value flag)])))
+                  (for [[name flag] (:__flags @values)] [name (:value @flag)])))
   ([] (flags *flags*)))
 
 (defrecord Flag

     :else
     (throw (Exception. (str "Non boolean argument to boolean flag: " argument))))))

(defn define-boolean [name default help & args]
  (apply define boolean-parser name default
         (or help "a boolean value")

           [optlist, unparsed-args] (getopt/getopt args shortopts longopts)]
       (prn "optlist returned by getopt" optlist)
       (prn "unparsed args returned by getopt" unparsed-args)
       (swap! flagvalues update-flag-values optlist)
       unparsed-args)))
