                   [["-a" nil
                     :id :alpha
                     :default true
+                    ;; same as (update-in m [k] not)
                     :assoc-fn (fn [m k v] (assoc m k (not v)))]
                    ["-v" "--verbose"
                     :default 0
+                    ;; same as (update-in m [k] inc)
                     :assoc-fn (fn [m k _] (assoc m k (inc (m k))))]])]
       (is (= (parse-option-tokens specs [])
              [{:alpha true :verbose 0} []]))

                                         [:short-opt "-v"]
                                         [:long-opt "--verbose"]])
             [{:alpha true :verbose 3} []]))
      (is (= (parse-option-tokens specs [[:short-opt "-v"]] :no-defaults true)
             [{:verbose 1} []]))))
  (testing "can deal with negative flags"

      (clojure.java.shell/sh
        "phantomjs"
        "target/runner.js"
        "target/cli_test.js"))))
