 (ns test-core
   #+cljs
   (:require [cats.core :as m]
-            [cats.monad.maybe :as maybe]
-            [cats.builtin :refer :all])
+            [cats.monad.maybe :as maybe])
   #+cljs
   (:require-macros [cemerick.cljs.test
                     :refer (is deftest with-test run-tests testing test-var)]

  (:require [clojure.test :refer :all]
            [cats.core :as m :refer [mlet lift-m]]
            [cats.builtin :refer :all]
            [cats.monad.maybe :as maybe]))


(deftest test-mlet

      (is (= (maybe/nothing)
             (monad+ (maybe/just 1) (maybe/nothing)))))
    (testing "It can lift a function to a Monad Transformer"
      (let [maybe-sequence-monad (maybe/maybe-transformer sequence-monad)]
        (is (= [(maybe/just 1) (maybe/just 2) (maybe/just  3) (maybe/just  4) (maybe/just  5) (maybe/just 6)]
               (m/with-monad maybe-sequence-monad
                 (monad+ [(maybe/just 0) (maybe/just 2) (maybe/just 4)]
                         [(maybe/just 1) (maybe/just 2)]))))))))

