(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))))
Is this an abuse of pred
?