Validation still happens after coercion, so e.g., the String will only pass validation if you have a `#{Character}` schema, which seems reasonable enough to me.  But I can see arguments either way.  If so, you can replace with `(fn [x] (if (sequential? x) (set x) x))` which has the same semantics as yours but will produce nicer error messages (I think).