úÎ(7#B       Safe-Inferred !"#$%&'()*+,!'()*+, !"#$%&'()*+,None234 ÿ Instantiate this typeclass on 'Handler b YourAppState' so this snaplet can find the connection source. If you need to have multiple instances of the sqlite snaplet in your application, then don't provide this instance and leverage the default instance by using " with dbLens8" in front of calls to snaplet-sqlite-simple functions.oThe state for the sqlite-simple snaplet. To use it in your app include this in your application state and use  to initialize it./Function for retrieving the database connection-DConvenience function allowing easy collection of config file errors.Initialize the snapletPConvenience function for executing a function that needs a database connection.Multi-threading considerations¨: The database connection is mutexed 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.0lA convenience instance to make it easier to use functions written for this snaplet in non-snaplet contexts.1aA 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) d2Default instance-012 %   -012None3M3JDatatype containing the names of the columns for the authentication table.7Initializer for the sqlite backend to the auth snaplet.4*Create the user table if it doesn't exist.5#Default authentication table layout6GList of deconstructors so it's easier to extract column names from an 3./3789:;<=>?@ABCDEFGHIJKLMNOPLens to the session snapletThe sqlite snapletQRSTUV4WXY56Z[\]^_`3789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV4WXY56Z[\]^_`a      !"#$%&'()*+,-./012345#$6789:;<9=>?@ABCDEFGHIJKLMNOPQRRSTUVWXYZ[\]^_`abcdesnaplet-sqlite-simple-0.4.8.3Snap.Snaplet.SqliteSimple'Snap.Snaplet.Auth.Backends.SqliteSimplePaths_snaplet_sqlite_simplesqlite-simple-0.4.8.0Database.SQLite.Simple fmtParamsfmtQuery fmtMessage FormatErrorDatabase.SQLite.Simple.FromRowfieldfromRowFromRowDatabase.SQLite.Simple.ToRowtoRowToRow Database.SQLite.Simple.FromField errMessageerrHaskellType errSQLType ResultErrorDatabase.SQLite.Simple.TypesQueryfromOnlyOnly:.Database.SQLite.Simple.Internal Connection HasSqlitegetSqliteStateSqlite sqliteConn sqliteInit withSqlitequeryquery_executeexecute_initSqliteAuthcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamelogErr$fHasSqliteReaderT$fHasSqliteReaderT0$fHasSqliteHandler AuthTablecreateTableIfMissing defAuthTablecolDeftblNamecolIdcolLogincolEmail colPasswordcolActivatedAtcolSuspendedAtcolRememberToken colLoginCountcolFailedLoginCountcolLockedOutUntilcolCurrentLoginAtcolLastLoginAtcolCurrentLoginIpcolLastLoginIp colCreatedAt colUpdatedAt colResetTokencolResetRequestedAtcolRolescolMetaSqliteAuthManagerpamTable pamConnPool tableExistscreateInitialSchema versionTable schemaVersionsetSchemaVersion upgradeSchemabuildUid querySingle authExecutecolNames saveQuery$fIAuthBackendSqliteAuthManager$fToFieldPassword$fFromRowAuthUser$fFromFieldPassword$fFromFieldUserId