(defmacro def
"Given a namespace-qualified keyword or resolvable symbol k, and a
spec, spec-name, predicate or regex-op makes an entry in the
registry mapping k to the spec"
[k spec-form]
(let [k (if (symbol? k) (ns-qualify k) k)]
`(def-impl '~k '~(res spec-form) ~spec-form)))