persistent-mtl-0.1.0.1: Monad transformer for the persistent API
Safe HaskellNone
LanguageHaskell2010

Database.Persist.Monad.Class

Description

Defines the MonadSqlQuery type class that a monad can make an instance of in order to interpret how to run a SqlQueryRep sent by a lifted function from Database.Persist.Monad.Shim.

Synopsis

Documentation

class Monad m => MonadSqlQuery m where Source #

The type-class for monads that can run persistent database queries.

Methods

runQueryRep :: Typeable record => SqlQueryRep record a -> m a Source #

The main function that interprets a SQL query operation and runs it in the monadic context.

withTransaction :: m a -> m a Source #

Run all queries in the given action using the same database connection.

You should make sure to not fork any threads within this action. This will almost certainly cause problems. https://github.com/brandonchinn178/persistent-mtl/issues/7

Instances

Instances details
MonadSqlQuery m => MonadSqlQuery (MaybeT m) Source # 
Instance details

Defined in Database.Persist.Monad.Class

Methods

runQueryRep :: Typeable record => SqlQueryRep record a -> MaybeT m a Source #

withTransaction :: MaybeT m a -> MaybeT m a Source #

MonadUnliftIO m => MonadSqlQuery (SqlQueryT m) Source # 
Instance details

Defined in Database.Persist.Monad

Methods

runQueryRep :: Typeable record => SqlQueryRep record a -> SqlQueryT m a Source #

withTransaction :: SqlQueryT m a -> SqlQueryT m a Source #

MonadIO m => MonadSqlQuery (MockSqlQueryT m) Source # 
Instance details

Defined in Database.Persist.Monad.TestUtils

MonadSqlQuery m => MonadSqlQuery (IdentityT m) Source # 
Instance details

Defined in Database.Persist.Monad.Class

Methods

runQueryRep :: Typeable record => SqlQueryRep record a -> IdentityT m a Source #

withTransaction :: IdentityT m a -> IdentityT m a Source #

(Monoid w, MonadSqlQuery m) => MonadSqlQuery (WriterT w m) Source # 
Instance details

Defined in Database.Persist.Monad.Class

Methods

runQueryRep :: Typeable record => SqlQueryRep record a -> WriterT w m a Source #

withTransaction :: WriterT w m a -> WriterT w m a Source #

(Monoid w, MonadSqlQuery m) => MonadSqlQuery (WriterT w m) Source # 
Instance details

Defined in Database.Persist.Monad.Class

Methods

runQueryRep :: Typeable record => SqlQueryRep record a -> WriterT w m a Source #

withTransaction :: WriterT w m a -> WriterT w m a Source #

MonadSqlQuery m => MonadSqlQuery (StateT s m) Source # 
Instance details

Defined in Database.Persist.Monad.Class

Methods

runQueryRep :: Typeable record => SqlQueryRep record a -> StateT s m a Source #

withTransaction :: StateT s m a -> StateT s m a Source #

MonadSqlQuery m => MonadSqlQuery (StateT s m) Source # 
Instance details

Defined in Database.Persist.Monad.Class

Methods

runQueryRep :: Typeable record => SqlQueryRep record a -> StateT s m a Source #

withTransaction :: StateT s m a -> StateT s m a Source #

MonadSqlQuery m => MonadSqlQuery (ReaderT r m) Source # 
Instance details

Defined in Database.Persist.Monad.Class

Methods

runQueryRep :: Typeable record => SqlQueryRep record a -> ReaderT r m a Source #

withTransaction :: ReaderT r m a -> ReaderT r m a Source #

MonadSqlQuery m => MonadSqlQuery (ExceptT e m) Source # 
Instance details

Defined in Database.Persist.Monad.Class

Methods

runQueryRep :: Typeable record => SqlQueryRep record a -> ExceptT e m a Source #

withTransaction :: ExceptT e m a -> ExceptT e m a Source #

(Monoid w, MonadSqlQuery m) => MonadSqlQuery (RWST r w s m) Source # 
Instance details

Defined in Database.Persist.Monad.Class

Methods

runQueryRep :: Typeable record => SqlQueryRep record a -> RWST r w s m a Source #

withTransaction :: RWST r w s m a -> RWST r w s m a Source #

(Monoid w, MonadSqlQuery m) => MonadSqlQuery (RWST r w s m) Source # 
Instance details

Defined in Database.Persist.Monad.Class

Methods

runQueryRep :: Typeable record => SqlQueryRep record a -> RWST r w s m a Source #

withTransaction :: RWST r w s m a -> RWST r w s m a Source #