   (s/conform number? v))
 
 
-(s/def ::nilable-saiyan? (s/nilable (s/or :t true? :f false?)))
 (defn nil-allowed-bool [v]
   (s/conform ::nilable-saiyan? v))
 
 
-(s/def ::nilable-number (s/nilable number?))
 (defn nil-allowed-number [v]
   (s/conform ::nilable-number v))
 
 
-(s/def ::nilable-string (s/nilable string?))
 (defn nil-allowed-string [v]
   (s/conform ::nilable-string v))
 
 
-(s/def ::person (s/keys :req-un [::name ::saiyan? ::age]))
 (defn person-map [v]
   (s/conform ::person v))
 
 
-(s/def ::Person? #(instance? Person %))
-(s/def ::typed-person (s/and ::Person?
-                        (s/keys :req-un [::name ::saiyan? ::age])))
 (defn person-record [v]
   (s/conform ::typed-person
              v))

  (s/conform prime? v))


(s/def ::range (s/tuple (partial in-range? 0.0 1.0)
                 (partial in-range? 1 10)
                 (partial in-range? 1 100)))
(defn range-check [v]
  (s/conform ::range v))


(s/def ::keyword-set (s/and set?
                       (s/coll-of keyword? #{})))
(defn set-of-keywords [v]
  (s/conform ::keyword-set v))


(s/def ::three-tuple
  (s/and coll?
    #(= (count %) 3)
    #(keyword? (first %))
    #(string? (second %))
    #(number? (nth % 2))))

(defn three-tuple [v]
  ;; (s/conform (s/tuple keyword? string? number?) v)
  (s/conform ::three-tuple v))


(s/def ::vector-of-two-elements (s/and (s/coll-of nil [])
                                  (s/tuple nil nil)))

(defn vector-of-two-elements [v]
  (s/conform ::vector-of-two-elements v))

  (:import [validation_benchmark.common Person]))


(s/def ::age integer?)
(s/def ::name string?)
(s/def ::keyword-set (s/and set?
                            (s/coll-of keyword? #{})))
(s/def ::nilable-saiyan? (s/nilable (s/or :t true? :f false?)))
(s/def ::nilable-number (s/nilable number?))
(s/def ::nilable-string (s/nilable string?))
(s/def ::person (s/keys :req-un [::name ::saiyan? ::age]))
(s/def ::Person? #(instance? Person %))
(s/def ::range (s/tuple (partial in-range? 0.0 1.0)
                        (partial in-range? 1 10)
                        (partial in-range? 1 100)))
(s/def ::saiyan? (s/or :t true? :f false?))
(s/def ::three-tuple
  (s/and coll?
         #(= (count %) 3)
         #(keyword? (first %))
         #(string? (second %))
         #(number? (nth % 2))))
(s/def ::typed-person (s/and ::Person?
                             (s/keys :req-un [::name ::saiyan? ::age])))
(s/def ::vector-of-two-elements (s/and (s/coll-of nil [])
                                       (s/tuple nil nil)))


(defn atomic-keyword [v]
