         (f (.-v s))
         s))
 
-    proto/Foldable
+    p/Foldable
     (foldl [_ f z mv]
       (if (right? mv)
-        (f z (proto/extract mv))
+        (f z (p/extract mv))
         z))
 
     (foldr [_ f z mv]
       (if (right? mv)
-        (f (proto/extract mv) z)
+        (f (p/extract mv) z)
         z))))
 
 

  "Return true in case of `v` is instance
  of Either monad."
  [v]
  (if (satisfies? proto/Context v)
    (identical? (proto/get-context v) either-monad)
    false))

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

  [e]
  {:pre [(either? e)]}
  (if (left? e)
    (right (p/extract e))
    (left (p/extract e))))
