(defn string-to-string [s1] {:pre [(string? s1)] :post [(string? %)]} s1)
I like :pre and :post conditions, they allow me to figure out wh
Something like below where clojure spec is explaining the problem? This will throw an assertion error which you can catch.
(defn string-to-string [s1] {:pre [ (or (s/valid? ::ur-spec-or-predicate s1) (s/explain ::ur-spec-or-predicate s1)]} s1)