monad-io-adapter-0.1.0.0: test/Control/Monad/IO/AdapterSpec.hs
module Control.Monad.IO.AdapterSpec (spec) where
import Control.Monad.Base (MonadBase)
import Control.Monad.IO.Class (MonadIO)
import Test.Hspec
import Control.Monad.IO.Adapter
spec :: Spec
spec = do
describe "MonadIOAdapterT" $
it "converts a MonadIO constraint into MonadBase IO" $
(adaptMonadIO (pure () :: forall n. MonadIO n => n ())
:: forall m. MonadBase IO m => m ())
`shouldReturn` ()
describe "MonadBaseIOAdapterT" $
it "converts a MonadBase IO constraint into MonadIO" $
(adaptMonadBaseIO (pure () :: forall n. MonadBase IO n => n ())
:: forall m. MonadIO m => m ())
`shouldReturn` ()