Add MonadState instance for SIO
This commit is contained in:
parent
3015133b0e
commit
a1e708107b
@ -245,6 +245,7 @@ import Network.Wai.Test hiding (assertHeader, assertNoHeader, request)
|
|||||||
import Control.Monad.Trans.Reader (ReaderT (..))
|
import Control.Monad.Trans.Reader (ReaderT (..))
|
||||||
import Conduit (MonadThrow)
|
import Conduit (MonadThrow)
|
||||||
import Control.Monad.IO.Class
|
import Control.Monad.IO.Class
|
||||||
|
import Control.Monad.State.Class
|
||||||
import System.IO
|
import System.IO
|
||||||
import Yesod.Core.Unsafe (runFakeHandler)
|
import Yesod.Core.Unsafe (runFakeHandler)
|
||||||
import Yesod.Test.TransversingCSS
|
import Yesod.Test.TransversingCSS
|
||||||
@ -1601,6 +1602,11 @@ instance YesodDispatch site => Hspec.Example (SIO (YesodExampleData site) a) whe
|
|||||||
newtype SIO s a = SIO (ReaderT (IORef s) IO a)
|
newtype SIO s a = SIO (ReaderT (IORef s) IO a)
|
||||||
deriving (Functor, Applicative, Monad, MonadIO, MonadThrow, MonadUnliftIO)
|
deriving (Functor, Applicative, Monad, MonadIO, MonadThrow, MonadUnliftIO)
|
||||||
|
|
||||||
|
instance MonadState s (SIO s)
|
||||||
|
where
|
||||||
|
get = getSIO
|
||||||
|
put = putSIO
|
||||||
|
|
||||||
getSIO :: SIO s s
|
getSIO :: SIO s s
|
||||||
getSIO = SIO $ ReaderT readIORef
|
getSIO = SIO $ ReaderT readIORef
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user