polysemy-hasql-0.0.1.0: Polysemy effects for databases
Safe HaskellSafe-Inferred
LanguageHaskell2010

Polysemy.Hasql.Transaction

Documentation

type XaQStore res err f q d = Scoped res (QStore f q d !! err) !! err Source #

type XaStore res err i d = XaQStore res err Maybe i (Uid i d) Source #

class TransactionEffects all effs err res r where Source #

Methods

transactionEffects :: res -> InterpretersFor effs r Source #

Instances

Instances details
TransactionEffects all ('[] :: [Effect]) err res r Source # 
Instance details

Defined in Polysemy.Hasql.Transaction

(TransactionEffects all effs err res r, Member (Scoped res (eff !! err) !! err) (effs ++ r), Member (Stop err) (effs ++ r)) => TransactionEffects all (eff ': effs) err res r Source # 
Instance details

Defined in Polysemy.Hasql.Transaction

Methods

transactionEffects :: res -> InterpretersFor (eff ': effs) r Source #

transact :: forall effs res err r. (effs ++ ('[Transaction res] ++ r)) ~ ((effs ++ '[Transaction res]) ++ r) => Member (Transactions res) r => TransactionEffects effs effs err res (Transaction res ': r) => InterpretersFor (effs ++ '[Transaction res]) r Source #

type family XaStores (ds :: [(Type, Type)]) :: [Effect] where ... Source #

Equations

XaStores '[] = '[] 
XaStores ('(i, d) ': ds) = Store i d ': XaStores ds 

transactStores :: forall ds res err r xas. xas ~ XaStores ds => (XaStores ds ++ (Transaction res ': r)) ~ ((xas ++ '[Transaction res]) ++ r) => Member (Transactions res) r => TransactionEffects xas xas err res (Transaction res ': r) => InterpretersFor (xas ++ '[Transaction res]) r Source #

connectionScope :: forall eff err r a. Member (Scoped ConnectionSource (eff !! err)) r => Connection -> (() -> Sem ((eff !! err) ': r) a) -> Sem r a Source #

interpretForXa :: forall dep eff err r. Member (Scoped ConnectionSource (dep !! err)) r => (forall x r0. eff (Sem r0) x -> Sem (Stop err ': ((dep !! err) ': r)) x) -> InterpreterFor (Scoped Connection (eff !! err) !! err) r Source #

interpretWithXa :: forall dep eff err r. FirstOrder eff "interpretResumable" => Members [Scoped ConnectionSource (dep !! err), dep !! err] r => (forall x r0. eff (Sem r0) x -> Sem (Stop err ': ((dep !! err) ': r)) x) -> InterpretersFor [Scoped Connection (eff !! err) !! err, eff !! err] r Source #