{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module Database.PostgreSQL.Tx.MonadLogger where import Database.PostgreSQL.Tx (TxM, Tx(TxEnv, tx), UnsafeTx(unsafeIOTx)) import Control.Monad.Logger (LoggingT(runLoggingT), mapLoggingT, Loc, LogSource, LogLevel, LogStr) type Logger = Loc -> LogSource -> LogLevel -> LogStr -> IO () instance Tx (LoggingT TxM) where type TxEnv (LoggingT TxM) = Logger tx = flip runLoggingT instance (UnsafeTx io t) => UnsafeTx (LoggingT io) (LoggingT t) where unsafeIOTx = mapLoggingT unsafeIOTx