 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (deftype Ok [v]
-  proto/Context
+  p/Context
   (get-context [_] validation-applicative)
 
-  proto/Extract
+  p/Extract
   (extract [_] v)
 
   #?(:clj clojure.lang.IDeref

         (with-out-str (print [v])))])

  #?@(:cljs
       [cljs.core/IEquiv
        (-equiv [_ other]
                (if (instance? Fail other)
                  (= v (.-v other))
                  false))]))

(alter-meta! #'->Ok assoc :private true)
(alter-meta! #'->Fail assoc :private true)

  "Return true in case of `v` is instance
  of the Validation applicative."
  [v]
  (if (satisfies? p/Context v)
    (identical? (p/get-context v) validation-applicative)
    false))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
