h$E>      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None7persistent-mtl A copy of  to explicitly allow only IO operations that are rerunnable, e.g. in the context of a SQL transaction.persistent-mtlLift the given IO operation to m.The given IO operation may be rerun, so use of this function requires manually verifying that the given IO operation is rerunnable.None '(?persistent-mtlThe data type containing a constructor for each persistent function we'd like to lift into  .The record type parameter contains the ! types used in a given function.We're using a free-monads-like technique here to allow us to introspect persistent functions in  ., e.g. to mock out persistent calls in tests.persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to persistent-mtlConstructor corresponding to  persistent-mtlConstructor corresponding to !persistent-mtlConstructor corresponding to "persistent-mtlConstructor corresponding to #persistent-mtlConstructor corresponding to $persistent-mtlConstructor corresponding to %persistent-mtlConstructor corresponding to &persistent-mtlConstructor corresponding to 'persistent-mtlConstructor corresponding to (persistent-mtlConstructor corresponding to )persistent-mtlConstructor corresponding to *persistent-mtlConstructor corresponding to +persistent-mtlConstructor corresponding to ,persistent-mtlConstructor corresponding to -persistent-mtlConstructor corresponding to .persistent-mtlConstructor corresponding to /persistent-mtlConstructor corresponding to 0persistent-mtlConstructor corresponding to 1persistent-mtlConstructor corresponding to 2persistent-mtlConstructor corresponding to 3persistent-mtlConstructor corresponding to 4persistent-mtlConstructor corresponding to 5persistent-mtlConstructor corresponding to 6persistent-mtlConstructor corresponding to 7persistent-mtlConstructor corresponding to 8persistent-mtlConstructor corresponding to 9persistent-mtlConstructor corresponding to :persistent-mtlConstructor corresponding to ;persistent-mtlConstructor corresponding to <persistent-mtlConstructor corresponding to =persistent-mtlConstructor corresponding to >persistent-mtlConstructor corresponding to ?persistent-mtlConstructor corresponding to @persistent-mtlConstructor corresponding to Apersistent-mtlConstructor corresponding to Bpersistent-mtlConstructor corresponding to Cpersistent-mtlConstructor corresponding to Dpersistent-mtlConstructor corresponding to Epersistent-mtlConstructor corresponding to Fpersistent-mtlConstructor corresponding to Gpersistent-mtlConstructor corresponding to Hpersistent-mtlConstructor corresponding to Ipersistent-mtlConstructor corresponding to Jpersistent-mtlConstructor corresponding to Kpersistent-mtlConstructor corresponding to Lpersistent-mtlConstructor corresponding to Mpersistent-mtlConstructor corresponding to Npersistent-mtlConstructor corresponding to Opersistent-mtlConstructor corresponding to Ppersistent-mtlConstructor corresponding to Qpersistent-mtlConstructor for lifting an arbitrary SqlPersistT action into SqlQueryRep.Rpersistent-mtlA helper to execute the actual  persistent! function corresponding to each  data constructor. L!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQR L!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQRNoneTpersistent-mtlThe type-class for monads that can run persistent database queries.Vpersistent-mtl(Interpret the given SQL query operation.Wpersistent-mtlRun all queries in the given action using the same database connection.TUWVTUWVNone'(?&bpersistent-mtlThe lifted version of cpersistent-mtlThe lifted version of dpersistent-mtlThe lifted version of epersistent-mtlThe lifted version of fpersistent-mtlThe lifted version of gpersistent-mtlThe lifted version of hpersistent-mtlThe lifted version of ipersistent-mtlThe lifted version of jpersistent-mtlThe lifted version of kpersistent-mtlThe lifted version of lpersistent-mtlThe lifted version of mpersistent-mtlThe lifted version of npersistent-mtlThe lifted version of opersistent-mtlThe lifted version of ppersistent-mtlThe lifted version of qpersistent-mtlThe lifted version of rpersistent-mtlThe lifted version of spersistent-mtlThe lifted version of tpersistent-mtlThe lifted version of upersistent-mtlThe lifted version of vpersistent-mtlThe lifted version of wpersistent-mtlThe lifted version of xpersistent-mtlThe lifted version of ypersistent-mtlThe lifted version of zpersistent-mtlThe lifted version of {persistent-mtlThe lifted version of |persistent-mtlThe lifted version of }persistent-mtlThe lifted version of ~persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlThe lifted version of persistent-mtlLift an arbitrary  action into T.This is unsafe because the action may be rerun. This function should primarily be used to interop with other libraries built on top of persistent.Example usage: -- | Run an esqueleto select. select :: (MonadSqlQuery m, E.SqlSelect a r) => E.SqlQuery a -> m [r] select q = unsafeLiftSql "esqueleto-select" (E.select q) persistent-mtl-A helper for functions that return a conduit.bcdefghijklmnopqrstuvwxyz{|}~bcdefghijklmnopqrstuvwxyz{|}~None#$%'(// persistent-mtl&The monad transformer that implements T.persistent-mtl!Environment to configure running .#For simple usage, you can just use , but for more advanced usage, including the ability to retry transactions, use  with .persistent-mtl4The pool for your persistent backend. Get this from withSqlitePool% or the equivalent for your backend.persistent-mtlRetry a transaction when an exception matches this predicate. Will retry with an exponential backoff.5Defaults to always returning False (i.e. never retry)persistent-mtl!The number of times to retry, if  is satisfied.Defaults to 10.persistent-mtl/Errors that can occur within a SQL transaction.persistent-mtl8The retry limit was reached when retrying a transaction.persistent-mtl(The monad that tracks transaction state.Conceptually equivalent to , but restricts IO operations, for two reasons: 1. Forking a thread that uses the same  as the current thread causes Bad Things to happen. 2. Transactions may need to be retried, in which case IO operations in a transaction are required to be rerunnable.You shouldn't need to explicitly use this type; your functions should only declare the T constraint.persistent-mtl does not have an instance for  to prevent accidental lifting of unsafe monadic actions. Use this function to explicitly mark a monadic action as rerunnable.persistent-mtl%Build a SqlQueryEnv from the default.Usage: let env = mkSqlQueryEnv pool $ \env -> env { retryIf = 10 } in runSqlQueryTWith env m persistent-mtlRun the * monad transformer with the given backend.persistent-mtlRun the = monad transformer with the explicitly provided environment.TWbcdefghijklmnopqrstuvwxyz{|}~TWNone '(= persistent-mtlA mocked query to use in .Use  or another helper to create a .persistent-mtl3A monad transformer for testing functions that use T.persistent-mtlRuns a ) monad transformer using the given mocks.When a database query is executed, the first mock that returns a  is returned. If no mocks match the query, an error is thrown. See  for the constructors available to match against. Most of the time, you'll want to use * to only match queries against a specific record type (e.g. only match   calls for the Person entity).Usage: myFunction :: MonadSqlQuery m => m [String] myFunction = map personName  $ selectList [PersonAge >. 25] [] let persons = [Person ...] result <- runMockSqlQueryT myFunction [ withRecord @Person $ \case SelectList _ _ -> Just persons _ -> Nothing , withRecord @Post $ \case Insert Post{ name = "post1" } -> Just $ toSqlKey 1 _ -> Nothing , mockQuery $ \case RawExecuteCount "DELETE FROM person WHERE name = 'Alice'" [] -> Just 1 _ -> Nothing ] persistent-mtlA helper for defining a mocked database query against a specific record2 type. Designed to be used with TypeApplications.Most / constructors are in the context of a specific record type, like Person. This helper only matches mocked database queries that are querying the record you specify.%Some constructors reference multiple record types, like  . Look at the type to see the record you need to match against. For example, :withRecord @(Person, Post) $ \case BelongsTo _ _ -> ... would match the function call belongsTo :: (Person -> Maybe (Key Post)) -> Person -> SqlQueryRep (Person, Post) (Maybe Post) persistent-mtl.A helper for defining a mocked database query.%This does not do any matching on the record> type, so it is mostly useful for queries that don't use the record type, like  .persistent-mtlA helper for mocking a   or  call.Usage: mockSelectSource $ \filters opts -> if null filters && null opts then let person1 = [Entity (toSqlKey 1) $ Person "Alice"] person2 = [Entity (toSqlKey 2) $ Person "Bob"] in Just [person1, person2] else Nothing persistent-mtlA helper for mocking a  or  call.Usage: mockSelectKeys $ \filters opts -> if null filters && null opts then Just $ map toSqlKey [1, 2] else Nothing persistent-mtlA helper for mocking a  call.Usage: mockWithRawQuery $ \sql vals -> if sql == "SELECT id, name FROM person" then let row1 = [toPersistValue 1, toPersistValue "Alice"] row2 = [toPersistValue 2, toPersistValue "Bob"] in Just [row1, row2] else Nothing persistent-mtlA helper for mocking a  or  call.Usage: mockRawQuery $ \sql vals -> if sql == "SELECT id, name FROM person" then let row1 = [toPersistValue 1, toPersistValue "Alice"] row2 = [toPersistValue 2, toPersistValue "Bob"] in Just [row1, row2] else Nothing persistent-mtlA helper for mocking a  call.Usage: mockRawSql $ \sql vals -> if sql == "SELECT id, name FROM person" then let row1 = [toPersistValue 1, toPersistValue "Alice"] row2 = [toPersistValue 2, toPersistValue "Bob"] in Just [row1, row2] else Nothing  L!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQ L!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNOPQ Safe-Inferred> !"#$%&'() *+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh ijklmnopqrstuvwxyz{|}~   vwxyz{|}~   -persistent-mtl-0.3.0.0-J0GddyRPJEdIEHVw4fgwakControl.Monad.IO.Rerunnable"Database.Persist.Monad.SqlQueryRepDatabase.Persist.Monad.ClassDatabase.Persist.Monad.ShimDatabase.Persist.Monad Database.Persist.Monad.TestUtilsControl.Monad.IO.ClassMonadIO MonadSqlQuery selectList BelongsTo rawExecute selectSourceselectSourceRes selectKeys selectKeysRes withRawQueryrawQuery rawQueryResrawSqlPaths_persistent_mtlMonadRerunnableIO rerunnableIO$fMonadRerunnableIOResourceT$fMonadRerunnableIOWriterT$fMonadRerunnableIOWriterT0$fMonadRerunnableIOStateT$fMonadRerunnableIOStateT0$fMonadRerunnableIORWST$fMonadRerunnableIORWST0$fMonadRerunnableIOMaybeT$fMonadRerunnableIOIdentityT$fMonadRerunnableIOExceptT$fMonadRerunnableIOReaderT$fMonadRerunnableIOIO SqlQueryRepGetGetManyGetJust GetJustEntity GetEntity BelongsToJustInsertInsert_ InsertMany InsertMany_InsertEntityMany InsertKeyRepsert RepsertManyReplaceDeleteUpdate UpdateGet InsertEntity InsertRecordGetBy GetByValue CheckUniqueCheckUniqueUpdateableDeleteBy InsertUniqueUpsertUpsertByPutManyInsertByInsertUniqueEntity ReplaceUnique OnlyUniqueSelectSourceRes SelectFirst SelectKeysResCountExists SelectListSelectKeysList UpdateWhere DeleteWhereDeleteWhereCountUpdateWhereCountParseMigrationParseMigration'PrintMigration ShowMigration GetMigration RunMigrationRunMigrationQuietRunMigrationSilentRunMigrationUnsafeRunMigrationUnsafeQuiet GetFieldName GetTableName WithRawQuery RawQueryRes RawExecuteRawExecuteCountRawSqlTransactionSaveTransactionSaveWithIsolationTransactionUndoTransactionUndoWithIsolation UnsafeLiftSqlrunSqlQueryRep$fShowSqlQueryRep TransactionM runQueryRepwithTransaction$fMonadSqlQueryWriterT$fMonadSqlQueryWriterT0$fMonadSqlQueryStateT$fMonadSqlQueryStateT0$fMonadSqlQueryRWST$fMonadSqlQueryRWST0$fMonadSqlQueryMaybeT$fMonadSqlQueryIdentityT$fMonadSqlQueryExceptT$fMonadSqlQueryReaderTgetgetManygetJust getJustEntity getEntity belongsTo belongsToJustinsertinsert_ insertMany insertMany_insertEntityMany insertKeyrepsert repsertManyreplacedeleteupdate updateGet insertEntity insertRecordgetBy getByValue checkUniquecheckUniqueUpdateabledeleteBy insertUniqueupsertupsertByputManyinsertByinsertUniqueEntity replaceUnique onlyUnique selectFirstcountexistsselectKeysList updateWhere deleteWheredeleteWhereCountupdateWhereCountparseMigrationparseMigration'printMigration showMigration getMigration runMigrationrunMigrationQuietrunMigrationSilentrunMigrationUnsaferunMigrationUnsafeQuiet getFieldName getTableNamerawExecuteCounttransactionSavetransactionSaveWithIsolationtransactionUndotransactionUndoWithIsolation unsafeLiftSql fromAcquire SqlQueryT SqlQueryEnv backendPoolretryIf retryLimitTransactionErrorRetryLimitExceededSqlTransactionrerunnableLift mkSqlQueryEnv runSqlQueryTrunSqlQueryTWith$fMonadSqlQuerySqlTransaction$fMonadIOSqlTransaction$fExceptionTransactionError$fMonadUnliftIOSqlQueryT$fMonadSqlQuerySqlQueryT$fFunctorSqlQueryT$fApplicativeSqlQueryT$fMonadSqlQueryT$fMonadIOSqlQueryT$fMonadTransSqlQueryT$fMonadResourceSqlQueryT$fMonadRerunnableIOSqlQueryT$fShowTransactionError$fEqTransactionError$fFunctorSqlTransaction$fApplicativeSqlTransaction$fMonadSqlTransaction!$fMonadRerunnableIOSqlTransaction MockQuery MockSqlQueryTrunMockSqlQueryT withRecord mockQuerymockSelectSourcemockSelectKeysmockWithRawQuery mockRawQuery mockRawSql$fMonadSqlQueryMockSqlQueryT$fFunctorMockSqlQueryT$fApplicativeMockSqlQueryT$fMonadMockSqlQueryT$fMonadIOMockSqlQueryT$fMonadResourceMockSqlQueryT*persistent-2.13.1.1-Fthf8ZUv5cE9XzBm5AUxHa$Database.Persist.Class.PersistEntity PersistEntity#Database.Persist.Class.PersistStore$Database.Persist.Class.PersistUnique#Database.Persist.Class.PersistQuery(Database.Persist.Sql.Orphan.PersistQueryDatabase.Persist.Sql.Migration(Database.Persist.Sql.Orphan.PersistStoreDatabase.Persist.Sql.RawDatabase.Persist.SqlDatabase.Persist.Sql.Types SqlPersistT$Database.Persist.SqlBackend.Internal SqlBackendtransformers-0.5.6.2Control.Monad.Trans.Class MonadTransbase GHC.MaybeJustversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName