 ;;  if pass? if false
 ;;
 ;;  TODO: matchers list
-;;  - all the matchers using `on` should have good error messages with bad types
-;;  - re-matches
+;;  - containsString
+;;  - startsWith
+;;  - endsWith
+;;  - equalIgnoringCase
+;;  - equalIgnoringWhiteSpace
+;;  - stringContainsInOrder
 (defn describe-list [call xs]
   (str "(" call " " (clojure.string/join " " xs) ")"))
 

   :describe-mismatch
   standard-describe-mismatch})

(defn not
  "passes if the given matcher fails
  (matcha/run-match (matcha/not (matcha/= 1)) 1) ; => passes

            (and (pred x)
                 ((:match m) x)))
   :description (:description m)
   :describe-mismatch
   (fn [x]
     (if (pred x)
       ((:describe-mismatch m describe-class-mismatch) x)
       (str "not a " type-name ", " (describe-class-mismatch x))))})

(defn =
  "matches based on equality of the value given
