úÎ(#Q       Safe-Inferred !"#$%&'()*!&'()* !"#$%&'()*None Instantiate this typeclass on 'Handler b YourAppState' so this snaplet L can find the connection source. If you need to have multiple instances of 1 the sqlite snaplet in your application, then don't provide this instance , and leverage the default instance by using " with dbLens" in front of calls % to snaplet-sqlite-simple functions. ?The state for the sqlite-simple snaplet. To use it in your app 0 include this in your application state and use  to initialize it. 0Function for retrieving the database connection +EConvenience function allowing easy collection of config file errors. Initialize the snaplet DConvenience function for executing a function that needs a database  connection. Multi-threading considerations%: The database connection is mutexed E such that only a single thread can read or write at any given time. = This means we lose database access parallelism. Please see   8https://github.com/nurpax/snaplet-sqlite-simple/issues/5 for more  information. See ,  See also ! for notes on concurrent access. See -  See also ! for notes on concurrent access.  See also ! for notes on concurrent access.  See also ! for notes on concurrent access. .FA convenience instance to make it easier to use functions written for ' this snaplet in non-snaplet contexts. /DA convenience instance to make it easier to use this snaplet in the  Initializer monad like this: % d <- nestSnaplet "db" db sqliteInit > count <- liftIO $ runReaderT (execute "INSERT ..." params) d 0Default instance +./0 %   +./0None1KDatatype containing the names of the columns for the authentication table. 8Initializer for the sqlite backend to the auth snaplet. 2!Create the user table if it doesn' t exist. 3$Default authentication table layout 4List of deconstructors so it')s easier to extract column names from an  1. -156789:;<=>?@ABCDEFGHIJKLLens to the session snaplet The sqlite snaplet MNOPQR2STU34VWXYZ[\156789:;<=>?@ABCDEFGHIJKLMNOPQR2STU34VWXYZ[\]        !"#$%&'()*+,-./0123#$456789:7;<=>?@ABCDEFGHIJKLMNNOPQRSTUVWXYZ[\]^_`asnaplet-sqlite-simple-0.4.0Snap.Snaplet.SqliteSimple'Snap.Snaplet.Auth.Backends.SqliteSimplePaths_snaplet_sqlite_simplesqlite-simple-0.3.0.0Database.SQLite.Simple fmtParamsfmtQuery fmtMessage FormatErrorDatabase.SQLite.Simple.ToRowtoRowToRowDatabase.SQLite.Simple.FromRowfieldfromRowFromRow Database.SQLite.Simple.FromField errMessageerrHaskellType errSQLType ResultErrorDatabase.SQLite.Simple.TypesQueryfromOnlyOnly:.Database.SQLite.Simple.Internal Connection HasSqlitegetSqliteStateSqlite sqliteConn sqliteInit withSqlitequeryquery_executeexecute_initSqliteAuthcatchIOversionbindirlibdirdatadir libexecdir getBinDir getLibDir getDataDir getLibexecDirgetDataFileNamelogErr$fHasSqliteReaderT$fHasSqliteReaderT0$fHasSqliteHandler AuthTablecreateTableIfMissing defAuthTablecolDeftblNamecolIdcolLogincolEmail colPasswordcolActivatedAtcolSuspendedAtcolRememberToken colLoginCountcolFailedLoginCountcolLockedOutUntilcolCurrentLoginAtcolLastLoginAtcolCurrentLoginIpcolLastLoginIp colCreatedAt colUpdatedAt colResetTokencolResetRequestedAtSqliteAuthManagerpamTable pamConnPool tableExistscreateInitialSchema versionTable schemaVersionsetSchemaVersion upgradeSchemabuildUid querySingle authExecutecolNames saveQuery$fIAuthBackendSqliteAuthManager$fToFieldPassword$fFromRowAuthUser$fFromFieldPassword$fFromFieldUserId