spec.alpha is implemented as a bunch of macros that make it difficult to work with spec forms as if they were "just data". This is one of the issues that spec-alpha2 tries to address [1].
Sure, you can import libraries to try to work around it but that's hardly ideal.
[1] https://github.com/clojure/spec-alpha2/wiki/Differences-from...
Re:State of Clojure 2020
by keithasaurus on Friday February 21, 2020 @12:44AM
(#22381179)
Schema is a pretty nice alternative: https://github.com/plumatic/schema
I think they've taken the approach of making the system thorough and capable and this being a Lisp, we users can skin it with any level of shorthand that we please.
Datomic (the database from Cognitect) has a similar approach with its schema, which is quite verbose, but many folks that I know tend to simply write a function which spits out the schema, since it's 'just data'.
I tend to use Ghostwheel [1], but there's also spec-tools [2] and others.
[1]: https://github.com/gnl/ghostwheel
[2]: https://github.com/metosin/spec-tools