 (parse (s/cat :cat1 integer? :cat2 keyword?) [42 :foo])
 ```"
   (parse (s/cat :cat1 integer? :cat2 keyword?) [42 :foo]))
+
+(defcard
+  "In Clojure you can use `s/unform` to convert a *conformed value*
+back to a *data value*. AFAIK this doesn't work in Clojurescript.")
 
 (defcard
   "

```"
  (parse ::int :foo))

(s/def ::ints (s/or :or1 integer? :or2 (s/* ::ints)))

(defcard
  "
```
(s/def ::ints (s/or :or1 integer? :or2 (s/* ::ints)))
(parse ::ints [42 [43 44] 45])
```"
  (parse ::ints [42 [43 44] 45]))

         [:foo 42 43 :baz]))

(defcard
  "`s/&` version 2: check the two integers with
an additional predicate

The *conformed value* produced by `(s/cat :cat1 integer? :cat2 integer?)`
is the input of predicate `#(> (:cat1 %) (:cat2 %))`.
```
(parse (s/cat :cat1 keyword?
              :cat2 (s/& (s/cat :cat1 integer?
