core-typed

Typed Clojure, an optional type system for Clojure
donaldball 2015-12-27T02:19:54.000049Z

(defmacro case-split
  "Usage: (case-split v
            type1 expr1
            type2 expr2
            ...)"
  [x & cases]
  (cons 'cond
        (mapcat (fn [[type expr]]
                  (list (list (list 'clojure.core.typed/pred type) x) expr))
                (partition-all 2 cases))))

donaldball 2015-12-27T02:20:07.000050Z

Is this an abuse of pred?