Hi!
You need to use something like "cond-pre" or "conditional" instead. This will also make your error messages much better, etc.
In your case, you can't use "cond-pre" since your things all look the same. But you should be able to do something like: `(defschema Val (s/conditional #(= (% 1) 'Int) IntVal ...))`.
LMK if you have questions or that doesn't work for you.
Best, Jason