hasql-transaction-0.8: library/Hasql/Transaction/Session.hs
{-|
Extensions to Session.
Can be used imported in the same namespace as @Hasql.Session@ without conflicts.
-}
module Hasql.Transaction.Session
where
import Hasql.Transaction.Prelude
import Hasql.Transaction.Requisites.Model
import Hasql.Transaction.Requisites.Sessions
import Hasql.Session
import qualified Hasql.Transaction.Transaction as Transaction
import qualified Hasql.Transaction.Transaction as Reexports (Transaction)
{-|
Execute an alternating transaction arrow providing an input for it.
-}
transact :: Transaction.Transaction i o -> i -> Session o
transact (Transaction.Transaction mode level list) i =
inAlternatingTransaction mode level (fmap (\ fn -> runStateT (fn i) Uncondemned) list)