multi-except-1.0.0: test/Test/MultiExcept/Bifunctor.hs
{-# LANGUAGE CPP #-}
module Test.MultiExcept.Bifunctor
( spec
) where
import Test.Hspec
#if MIN_VERSION_base(4,8,0)
import Data.Bifunctor
import Control.Applicative.MultiExcept
spec :: Spec
spec = describe "Bifunctor instance" $ do
it "maps errors with first" $
first (+ 1) (throwError 3 *> throwError 4) `shouldBe` (throwError 4 *> throwError 5 :: MultiExcept Int ())
it "maps successes with second" $
second (+ 1) (succeed 3) `shouldBe` (succeed 4 :: MultiExcept Int Int)
#else
import Control.Applicative
spec :: Spec
spec = pure ()
#endif