'C ,O      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN Safe-Inferred OPQRSTUVWXYPUVWXY OPQRSTUVWXYNone 2Instantiate this typeclass on 'Handler b YourAppState' so this snaplet L can find the connection source. If you need to have multiple instances of 3 the postgres 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-postgresql-simple functions. 4CThe state for the postgresql-simple snaplet. To use it in your app J include this in your application state and use pgsInit to initialize it. 6,Function for retrieving the connection pool Z*Produce a connection string from a config 7Initialize the snaplet [DConvenience function for executing a function that needs a database  connection. 8See \ 9See ] :See ^ _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 pgsInit > count <- liftIO $ runReaderT (execute "INSERT ..." params) d aDefault instance "23456bZ7[89:;<=>?@ABCDEFGHIJKLM_`aN  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMT45623789;<=>?@ABC:DEFGHIJKLM(-,/.+*)"! %$#  10'& 23456bZ7[89:;<=>?@ABCDEFGHIJKLM_`aNonecKDatatype containing the names of the columns for the authentication table. N:Initializer for the postgres backend to the auth snaplet. d!Create the user table if it doesn' t exist. e$Default authentication table layout fList of deconstructors so it')s easier to extract column names from an  c. )cghijklmnopqrstuvwxyz{|}~NLens to the session snaplet The postgres snaplet defNNcghijklmnopqrstuvwxyz{|}~Ndef        !! "#$#%#&#'#(#)#*#*#+#,#-./.01213141415151616171789::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`=>?abcdefgheijklmnopqrstuvwxyz{|}}~snaplet-postgresql-simple-0.4Snap.Snaplet.PostgresqlSimple+Snap.Snaplet.Auth.Backends.PostgresqlSimplePaths_snaplet_postgresql_simplepostgresql-simple-0.3.2.0Database.PostgreSQL.Simple fmtParamsfmtQuery fmtMessage FormatError"Database.PostgreSQL.Simple.FromRowfieldfromRow$Database.PostgreSQL.Simple.FromField errMessageerrHaskellType errSQLType ResultError&Database.PostgreSQL.Simple.TransactiondefaultReadWriteModedefaultIsolationLeveldefaultTransactionModeDefaultIsolationLevel ReadCommittedRepeatableRead SerializableIsolationLevelDefaultReadWriteMode ReadWriteReadOnly ReadWriteMode readWriteModeisolationLevelTransactionModeFromRow#Database.PostgreSQL.Simple.InternaldefaultConnectInfo sqlErrorHintsqlErrorDetail sqlErrorMsg sqlExecStatussqlStateSqlErrorqeQuery qeMessage QueryError Database.PostgreSQL.Simple.ToRowtoRowToRow Database.PostgreSQL.Simple.TypesQueryfromOnlyOnlyInBinary:. HasPostgresgetPostgresStatePostgrespgPoolpgsInitqueryquery_ returningfoldfoldWithOptionsfold_foldWithOptions_forEachforEach_executeexecute_ executeManybegin beginLevel beginModerollbackcommitwithTransactionwithTransactionLevelwithTransactionMode formatMany formatQueryinitPostgresAuthcatchIOversionbindirlibdirdatadir libexecdir getBinDir getLibDir getDataDir getLibexecDirgetDataFileNamegetConnectionStringwithPG$fHasPostgresReaderT$fHasPostgresReaderT0$fHasPostgresHandler++ AuthTablecreateTableIfMissing defAuthTablecolDeftblNamecolIdcolLogincolEmail colPasswordcolActivatedAtcolSuspendedAtcolRememberToken colLoginCountcolFailedLoginCountcolLockedOutUntilcolCurrentLoginAtcolLastLoginAtcolCurrentLoginIpcolLastLoginIp colCreatedAt colUpdatedAt colResetTokencolResetRequestedAt rolesTablePostgresAuthManagerpamTable pamConnPoolbuildUid querySingle authExecutefDesc saveQuery onFailure!$fIAuthBackendPostgresAuthManager$fToFieldPassword$fFromRowAuthUser$fFromFieldPassword$fFromFieldUserId