 (ns cats.monad.maybe-spec
-  #?(:cljs
-     (:require [cljs.test :as t]
-               [cats.builtin :as b]
-               [cats.protocols :as p]
-               [cats.monad.maybe :as maybe]
-               [cats.monad.either :as either]
-               [cats.context :as ctx :include-macros true]
-               [cats.core :as m :include-macros true])
-     :clj
+  #?@(:cljs
+      [(:require [cljs.test :as t]
+                 [clojure.test.check]
+                 [clojure.test.check.generators :as gen]
+                 [clojure.test.check.properties :as prop :include-macros true]
+                 [cats.labs.test :as lt]
+                 [cats.builtin :as b]
+                 [cats.protocols :as p]
+                 [cats.monad.maybe :as maybe]
+                 [cats.monad.either :as either]
+                 [cats.context :as ctx :include-macros true]
+                 [cats.core :as m :include-macros true])
+       (:require-macros [clojure.test.check.clojure-test :refer (defspec)])])
+  #?(:clj
      (:require [clojure.test :as t]
+               [clojure.test.check.clojure-test :refer [defspec]]
+               [clojure.test.check :as tc]
+               [clojure.test.check.generators :as gen]
+               [clojure.test.check.properties :as prop]
+               [cats.labs.test :as lt]
                [cats.builtin :as b]
                [cats.protocols :as p]
                [cats.monad.maybe :as maybe]

               [cats.context :as ctx]
               [cats.core :as m])))

(t/deftest maybe-monad-tests
  (t/testing "Basic maybe operations."
    (t/is (= 1 (maybe/from-maybe (maybe/just 1))))

  (t/testing "Test predicates"
    (let [m1 (maybe/just 1)]
      (t/is (maybe/maybe? m1))
      (t/is (maybe/just? m1)))))

(def maybe-vector-t (maybe/maybe-t b/vector-context))

