module Database.PostgreSQL.Tx.Unsafe ( -- * Introduction -- $intro -- ** Operations unsafeRunIOInTxM , unsafeWithRunInIOTxM -- ** For adaptor libraries , unsafeUnTxM , unsafeRunTxM , unsafeMkTxM , unsafeMksTxM , unsafeLookupTxEnvIO , unsafeMkTxException ) where import Database.PostgreSQL.Tx.Internal -- $intro -- -- @postgresql-tx@ discourages performing arbitrary 'IO' within a database -- transaction, but sometimes performing this 'IO' is necessary. This module -- provides operations and infrastructure for performing "unsafe" 'IO' actions -- within 'TxM' or a specific database library implementation monad. It also -- provides utilities for use in adaptor libraries. -- -- Clients must explicitly import this module to perform 'IO' in 'TxM' or a -- specific database library implementation monad. All functions this module -- provides are prefixed with @unsafe*@. These two factors serve as annotation -- to simplify understanding exactly which parts of transactional database code -- are performing arbitary 'IO'.