clojure-spec 2018-01-19

(s/keys :req [::foo]) or (s/keys :req ["foo"])?

if the former, is it not syntactically possible to express all string keys? if the latter, how are the strings tied to the spec registry?

Do specs replace deftype and reify? If not, how do I use them together?

no. deftype is used for performance and polymorphism, reify is mostly used for Java interop, and spec is about specifying your data. so itโ€™s three different use-cases really ๐Ÿ™‚