_AH      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None>?AKPD8The Database.SQLite3 and Database.SQLite3.Directa modules use higher-level representations of some types than those used in the FFI signatures (Database.SQLite3.Bindings/). This typeclass helps with the conversions. 'http://www.sqlite.org/c3ref/c_blob.html (http://www.sqlite.org/c3ref/c_abort.html @Index of an argument to a custom function. Indices start from 0. 3Number of arguments of a user defined SQL function.  )http://www.sqlite.org/c3ref/c_static.htmlPtr CDestructor = sqlite3_destructor_type"Number of columns in a result set.@Index of a column in a result set. Column indices start from 0.OIndex of a parameter in a parameterized query. Parameter indices start from 1.When a query is Zd, SQLite allocates an array indexed from 1 to the highest parameter index. For example: X>Right stmt <- prepare conn "SELECT ?1, ?5, ?3, ?" >bindParameterCount stmt ParamIndex 61This will allocate an array indexed from 1 to 6 (?{ takes the highest preceding index plus one). The array is initialized with null values. When you bind a parameter with 2, it assigns a new value to one of these indices.See  -http://www.sqlite.org/lang_expr.html#varparamS for the syntax of parameter placeholders, and how parameter indices are assigned. (https://www.sqlite.org/c3ref/backup.htmlCBackup = sqlite3_backup &https://www.sqlite.org/c3ref/blob.htmlCBlob =  sqlite3_blob (http://www.sqlite.org/c3ref/context.htmlCContext = sqlite3_context &http://www.sqlite.org/c3ref/value.htmlCValue =  sqlite3_value %http://www.sqlite.org/c3ref/stmt.html CStatement =  sqlite3_stmt (http://www.sqlite.org/c3ref/sqlite3.html CDatabase = sqlite3&Successful result'SQL error or missing database(Internal logic error in SQLite)Access permission denied*#Callback routine requested an abort+The database file is locked,!A table in the database is locked-A malloc() failed.$Attempt to write a readonly database/Operation terminated by sqlite3_interrupt()0$Some kind of disk I/O error occurred1$The database disk image is malformed2Unknown opcode in sqlite3_file_control()3)Insertion failed because database is full4 Unable to open the database file5Database lock protocol error6Database is empty7The database schema changed8!String or BLOB exceeds size limit9!Abort due to constraint violation:Data type mismatch;Library used incorrectly<&Uses OS features not supported on host=Authorization denied>Auxiliary database format error?*2nd parameter to sqlite3_bind out of range@'File opened that is not a database fileAsqlite3_step() has another row readyBsqlite3_step() has finished executingC6Tells SQLite3 to make its own private copy of the dataEDTells SQLite3 that the defined custom SQL function is deterministic.FNote that this is a partial function. If the error code is invalid, or perhaps introduced in a newer version of SQLite but this library has not been updated to support it, the result is undefined.To be clear, if F fails, it is undefined behavior#, not an exception you can handle.Therefore, do not use direct-sqlite with a different version of SQLite than the one bundled (currently, 3.7.13). If you do, ensure that F and H are still exhaustive.H+Note that this is a partial function. See F for more information.JBLimit min/max bounds to fit into SQLite's native parameter ranges.KEThis just shows the underlying integer, without the data constructor.LBLimit min/max bounds to fit into SQLite's native parameter ranges.METhis just shows the underlying integer, without the data constructor.NEThis just shows the underlying integer, without the data constructor.OEThis just shows the underlying integer, without the data constructor.QEThis just shows the underlying integer, without the data constructor.SEThis just shows the underlying integer, without the data constructor.J  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJFG%&'()*+,-./0123456789:;<=>?@ABHI !"#$  CD E    !"#$%&'()*+,-./0123456789:;<=>?@ABNone:& ,https://www.sqlite.org/c3ref/blob_write.html +https://www.sqlite.org/c3ref/blob_read.html ,https://www.sqlite.org/c3ref/blob_bytes.html -https://www.sqlite.org/c3ref/blob_reopen.html ,https://www.sqlite.org/c3ref/blob_close.html +https://www.sqlite.org/c3ref/blob_open.html *https://www.sqlite.org/c3ref/wal_hook.html 2http://sqlite.org/c3ref/enable_load_extension.html !http://sqlite.org/c3ref/free.html 1http://www.sqlite.org/c3ref/create_collation.html 2http://www.sqlite.org/c3ref/aggregate_context.html 2http://www.sqlite.org/c3ref/context_db_handle.html *http://www.sqlite.org/c3ref/user_data.html ,http://sqlite.org/c3ref/create_function.html .http://www.sqlite.org/c3ref/total_changes.html (http://www.sqlite.org/c3ref/changes.html 2http://www.sqlite.org/c3ref/last_insert_rowid.html ,http://www.sqlite.org/c3ref/column_name.html -http://www.sqlite.org/c3ref/column_count.html 5http://www.sqlite.org/c3ref/bind_parameter_index.html 4http://www.sqlite.org/c3ref/bind_parameter_name.html 5http://www.sqlite.org/c3ref/bind_parameter_count.htmlThis returns the index of the largest (rightmost) parameter, which is not necessarily the number of parameters. If numbered parameters like ?5* are used, there may be gaps in the list. $http://www.sqlite.org/c3ref/sql.html /http://www.sqlite.org/c3ref/clear_bindings.html?A look at the source reveals that this function always returns  SQLITE_OK. )http://www.sqlite.org/c3ref/finalize.htmlWarning: If the most recent = call failed, this will return the corresponding error code. &http://www.sqlite.org/c3ref/reset.htmlWarning: If the most recent = call failed, this will return the corresponding error code. %http://www.sqlite.org/c3ref/step.html *http://www.sqlite.org/c3ref/db_handle.html (http://www.sqlite.org/c3ref/prepare.html6If the query contains no SQL statements, this returns  SQLITE_OK and sets the   to null.DA couple important things to know about callbacks from Haskell code:5If the callback throws an exception, apparently, the  whole program is terminated.Remember to call A when you are done with the wrapper, to avoid leaking memory. 5https://www.sqlite.org/c3ref/enable_shared_cache.html /http://www.sqlite.org/c3ref/get_autocommit.html (http://www.sqlite.org/c3ref/profile.html *http://www.sqlite.org/c3ref/interrupt.html (http://www.sqlite.org/c3ref/errcode.html (http://www.sqlite.org/c3ref/errcode.html &http://www.sqlite.org/c3ref/close.html %http://www.sqlite.org/c3ref/open.htmlThis sets the 'Ptr CDatabase' even on failure. RUTF-8 rendering of the SQL statement text as the statement first begins executingNNumber of columns, which is the number of elements in the following arrays.*Array of column values, as returned by 3. Null values are represented as null pointers.Array of column names*If the callback returns non-zero, then  returns  SQLITE_ABORT (*).Destination database handleDestination database nameSource database handleSource database name Database name Table name Column name Row ROWIDFlags'OUT: Blob handle, will be NULL on errorName of the collation Text encoding User dataName of the functionNumber of arguments1Preferred text encoding (also used to pass flags) User dataWarning: If this pointer is NULL<, this will bind a null value, rather than an empty text.[Length, in bytes. If this is negative, the value is treated as a NUL-terminated string.$Index of the SQL parameter to be setValue to bind to the parameter.Warning: If this pointer is NULL<, this will bind a null value, rather than an empty blob.-Length, in bytes. This must not be negative.SQL statement, UTF-8 encodedMaximum length of the SQL statement, in bytes. If this is negative, then the SQL statement is treated as a NUL-terminated string..OUT: Statement handle. This must not be null.&OUT: Pointer to unused portion of zSqlSQL statement, UTF-8 encoded.Optional callback function called for each rowContext passed to the callbackOUT: Error message string.Optional callback function called for each rowContext passed to the callback;Returns context pointer from previously registered trace  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHISNone1V.&A handle for an online backup process.6The type of blob handles used for incremental blob I/O'The arguments of a custom SQL function.7The context in which a custom SQL function is executed.A 5 containing UTF8-encoded text with no NUL characters.(There are still more pages to be copied.#All pages were successfully copied.Like unsafeUseAsCStringLenF, but if the string is empty, never pass the callback a null pointer. %http://www.sqlite.org/c3ref/open.html &http://www.sqlite.org/c3ref/close.html *http://www.sqlite.org/c3ref/interrupt.html#Cause any pending operation on the  handle to stop at its earliest opportunity. This simply sets a flag and returns immediately. It does not wait for the pending operation to finish.You'll need to compile with  -threaded# for this to do any good. Without  -threaded), FFI calls block the whole RTS, meaning & would never run at the same time as . (http://www.sqlite.org/c3ref/errcode.html (http://www.sqlite.org/c3ref/errcode.htmlLike ., but invoke the callback for each result row.=If the callback throws an exception, it will be rethrown by . (http://www.sqlite.org/c3ref/profile.htmlNEnable/disable tracing of SQL execution. Tracing can be disabled by setting  as the logger callback.pWarning: If the logger callback throws an exception, your whole program will crash. Enable only for debugging! /http://www.sqlite.org/c3ref/get_autocommit.htmlReturn - if the connection is in autocommit mode, or  if a transaction started with BEGIN is still active.NBe warned that some errors roll back the transaction automatically, and that ROLLBACK7 will throw an error if no transaction is active. Use  to avoid such an error:  autocommit <-  conn  (not autocommit) $   conn "ROLLBACK"  5https://www.sqlite.org/c3ref/enable_shared_cache.html:Enable or disable shared cache for all future connections. (http://www.sqlite.org/c3ref/prepare.html7If the query contains no SQL statements, this returns  . *http://www.sqlite.org/c3ref/db_handle.html %http://www.sqlite.org/c3ref/step.html &http://www.sqlite.org/c3ref/reset.htmlWarning:If the most recent ; call failed, this will return the corresponding error.BThis does not reset the bindings on a prepared statement. Use  to do that. )http://www.sqlite.org/c3ref/finalize.htmlWarning: If the most recent 8 call failed, this will return the corresponding error. $http://www.sqlite.org/c3ref/sql.htmlEReturn a copy of the original SQL text used to compile the statement. /http://www.sqlite.org/c3ref/clear_bindings.html5Set all parameters in the prepared statement to null. 5http://www.sqlite.org/c3ref/bind_parameter_count.htmlThis returns the index of the largest (rightmost) parameter. Note that this is not necessarily the number of parameters. If numbered parameters like ?5) are used, there may be gaps in the list.See  for more information. 4http://www.sqlite.org/c3ref/bind_parameter_name.html 5http://www.sqlite.org/c3ref/bind_parameter_index.html -http://www.sqlite.org/c3ref/column_count.html  ,http://www.sqlite.org/c3ref/column_name.html 2http://www.sqlite.org/c3ref/last_insert_rowid.html (http://www.sqlite.org/c3ref/changes.htmlVReturn the number of rows that were changed, inserted, or deleted by the most recent INSERT, DELETE, or UPDATE statement. .http://www.sqlite.org/c3ref/total_changes.html1Return the total number of row changes caused by INSERT, DELETE, or UPDATE statements since the  was opened. ,http://sqlite.org/c3ref/create_function.htmlOCreate a custom SQL function or redefine the behavior of an existing function.Like . except that it creates an aggregate function.-Delete an SQL function (scalar or aggregate).' 3https://www.sqlite.org/c3ref/context_db_handle.html( 1http://www.sqlite.org/c3ref/create_collation.html)Delete a collation.* 6http://www.sqlite.org/c3ref/enable_load_extension.html$Enable or disable extension loading.+ +https://www.sqlite.org/c3ref/blob_open.html Open a blob for incremental I/O., ,https://www.sqlite.org/c3ref/blob_close.html- -https://www.sqlite.org/c3ref/blob_reopen.html. ,https://www.sqlite.org/c3ref/blob_bytes.html/ +https://www.sqlite.org/c3ref/blob_read.html1 ,https://www.sqlite.org/c3ref/blob_write.html8 fromString = Utf8 .  . sNumber of columns, which is the number of items in the following lists. This will be the same for every row.>List of column names. This will be the same for every row.&List of column values, as returned by .Name of the function.Number of arguments. < means that the function accepts any number of arguments.Is the function deterministic?Implementation of the function.Name of the function.Number of arguments.Initial aggregate state./Process one row and update the aggregate state.vCalled after all rows have been processed. Can be used to construct the returned value from the aggregate state.(Name of the collation.Comparison function.+0The symbolic name of the database (e.g. "main").The table name.The column name.The ROWID of the row.Open the blob for read-write./Number of bytes to read.Offset within the blob.1Offset within the blob.2Destination database handleDestination database nameSource database handleSource database name  !"#$%&'()*+,-./0123456789:;<=>?@AB      !"#$%&'()*+,-./0123456     * !"#$%&'()+,-./0123456 !"#$%&'()*+,-./0123456789:;<=>?@AB None1D:!K/Exception thrown when SQLite3 reports an error.Hdirect-sqlite may throw other types of exceptions if you misuse the API.MError code returned by API callNText describing the errorO3Indicates what action produced this error, e.g. exec "SELECT * FROM foo"Like  decodeUtf8;, but substitute a custom error message if decoding fails.V %http://www.sqlite.org/c3ref/open.htmlW &http://www.sqlite.org/c3ref/close.htmlXMake it possible to interrupt the given database operation with an asynchronous exception. This only works if the program is compiled with base >= 4.3 and  -threaded.OIt works by running the callback in a forked thread. If interrupted, it uses  to try to stop the operation.Y<Execute zero or more SQL statements delimited by semicolons.ZLike Y, but print result rows to  .gThis is mainly for convenience when experimenting in GHCi. The output format may change in the future.[Like Y., but invoke the callback for each result row.\ (http://www.sqlite.org/c3ref/prepare.htmlUnlike Y, \G only executes the first statement, and ignores subsequent statements.5If the query string contains no SQL statements, this s.] (http://www.sqlite.org/c3ref/prepare.htmlPIt can help to avoid redundant Utf8 to Text conversion if you already have Utf85If the query string contains no SQL statements, this s.^ %http://www.sqlite.org/c3ref/step.html_ &http://www.sqlite.org/c3ref/reset.htmlNote that in the C API,  sqlite3_reset+ returns an error code if the most recent  sqlite3_step@ indicated an error. We do not replicate that behavior here. _ never throws an exception.` )http://www.sqlite.org/c3ref/finalize.htmlLike _, ` never throws an exception.a 4http://www.sqlite.org/c3ref/bind_parameter_name.html#Return the N-th SQL parameter name.@Named parameters are returned as-is. E.g. ":v" is returned as  Just ":v"2. Unnamed parameters, however, are converted to Nothing.1Note that the parameter index starts at 1, not 0.b ,http://www.sqlite.org/c3ref/column_name.htmlRReturn the name of a result column. If the column index is out of range, return .j"If the index is not between 1 and  inclusive, this fails with ?\. Otherwise, it succeeds, even if the query skips this index by using numbered parameters.Example: $> stmt <- prepare conn "SELECT ?1, ?3, ?5" > bindSQLData stmt 1 (SQLInteger 1) > bindSQLData stmt 2 (SQLInteger 2) > bindSQLData stmt 6 (SQLInteger 6) *** Exception: SQLite3 returned ErrorRange while attempting to perform bind int64. > step stmt >> columns stmt [SQLInteger 1,SQLNull,SQLNull]kGConvenience function for binding values to all parameters. This will 0 if the list has the wrong number of parameters.lLConvenience function for binding named values to all parameters. This will O if the list has the wrong number of parameters or if an unknown name is used.Example: jstmt <- prepare conn "SELECT :foo + :bar" bindNamed stmt [(":foo", SQLInteger 1), (":bar", SQLInteger 2)] mThis will throw a T if the datum contains invalid UTF-8. If this behavior is undesirable, you can use  from Database.SQLite3.Direct', which does not perform conversion to .pThis avoids extra API calls using the list of column types. If passed types do not correspond to the actual types, the values will be converted according to the rules at  ,http://www.sqlite.org/c3ref/column_blob.htmlS. If the list contains more items that number of columns, the result is undefined.q ,http://sqlite.org/c3ref/create_function.htmlCreate a custom SQL function or redefine the behavior of an existing function. If the function is deterministic, i.e. if it always returns the same result given the same input, you can set the boolean flag to let sqlite" perform additional optimizations.rLike q. except that it creates an aggregate function.s-Delete an SQL function (scalar or aggregate).w 1http://www.sqlite.org/c3ref/create_collation.htmlxDelete a collation.y +https://www.sqlite.org/c3ref/blob_open.html Open a blob for incremental I/O.z ,https://www.sqlite.org/c3ref/blob_close.html{ -https://www.sqlite.org/c3ref/blob_reopen.html| +https://www.sqlite.org/c3ref/blob_read.html~ ,https://www.sqlite.org/c3ref/blob_write.htmlJsNumber of columns, which is the number of items in the following lists. This will be the same for every row.>List of column names. This will be the same for every row.&List of column values, as returned by m.qName of the function.Number of arguments. < means that the function accepts any number of arguments.Is the function deterministic?Implementation of the function.rName of the function.Number of arguments.Initial aggregate state./Process one row and update the aggregate state.vCalled after all rows have been processed. Can be used to construct the returned value from the aggregate state.wName of the collation.Comparison function.y0The symbolic name of the database (e.g. "main").The table name.The column name.The ROWID of the row.Open the blob for read-write.|Number of bytes to read.Offset within the blob.~Offset within the blob.Destination database handleDestination database nameSource database handleSource database name  !"#$%&'()*+,-./0123456789:;<=>?@AB !"$%&'.56JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~VWYZ[J\]^_`abjklfgeicdhnopmqrst u!"v$%&'wxXyz{.|}~56PQRSTUKLMNO !"#$%&'()*+,-./0123456789:;<=>?@AB KLMNOPQRSTU   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDDEFGHIJKLMN OPQ RS TUVW"#%&')*+,-.XYZ[\]^_]`abcde]fghijhik]lmnopnqrsst]funvwnxyz{|}~+direct-sqlite-2.3.22-6AshHd7poRr5WZ1CCrqwJ6Database.SQLite3.Bindings.TypesDatabase.SQLite3.BindingsDatabase.SQLite3.DirectDatabase.SQLite3prepare bindSQLData Control.Monadwhenexec System.IOstdoutFFITypetoFFIfromFFI CColumnTypeCError CArgCountArgIndexArgCount CDestructor CNumBytes CColumnCount CColumnIndex CParamIndex ColumnCount ColumnIndex ParamIndexCBackupCBlobCContextCValue CStatement CDatabase ColumnType IntegerColumn FloatColumn TextColumn BlobColumn NullColumnErrorErrorOK ErrorError ErrorInternalErrorPermission ErrorAbort ErrorBusy ErrorLocked ErrorNoMemory ErrorReadOnlyErrorInterruptErrorIO ErrorCorrupt ErrorNotFound ErrorFullErrorCan'tOpen ErrorProtocol ErrorEmpty ErrorSchema ErrorTooBigErrorConstraint ErrorMismatch ErrorMisuseErrorNoLargeFileSupportErrorAuthorization ErrorFormat ErrorRangeErrorNotADatabaseErrorRow ErrorDonec_SQLITE_TRANSIENT c_SQLITE_UTF8c_SQLITE_DETERMINISTIC decodeError encodeErrordecodeColumnTypeencodeColumnType$fBoundedParamIndex$fShowParamIndex$fBoundedColumnIndex$fShowColumnIndex$fShowCParamIndex$fShowCColumnIndex$fBoundedArgCount$fShowArgCount$fBoundedCArgCount$fShowCArgCount$fFFITypeArgCountCArgCount$fFFITypeColumnTypeCColumnType$fFFITypeErrorCError $fFFITypeColumnIndexCColumnIndex$fFFITypeParamIndexCParamIndex $fEqError $fShowError$fEqColumnType$fShowColumnType$fEqParamIndex$fOrdParamIndex$fEnumParamIndex$fNumParamIndex$fRealParamIndex$fIntegralParamIndex$fEqColumnIndex$fOrdColumnIndex$fEnumColumnIndex$fNumColumnIndex$fRealColumnIndex$fIntegralColumnIndex$fEqCParamIndex$fOrdCParamIndex$fEnumCParamIndex$fNumCParamIndex$fRealCParamIndex$fIntegralCParamIndex$fEqCColumnIndex$fOrdCColumnIndex$fEnumCColumnIndex$fNumCColumnIndex$fRealCColumnIndex$fIntegralCColumnIndex $fEqCNumBytes$fOrdCNumBytes$fShowCNumBytes$fEnumCNumBytes$fNumCNumBytes$fRealCNumBytes$fIntegralCNumBytes $fEqArgCount $fOrdArgCount$fEnumArgCount $fNumArgCount$fRealArgCount$fIntegralArgCount $fEqCArgCount$fOrdCArgCount$fEnumCArgCount$fNumCArgCount$fRealCArgCount$fIntegralCArgCount $fEqCError $fShowCError$fEqCColumnType$fShowCColumnTypeCWalHookCCompare CFuncDestroy CFuncFinalCFuncCTraceCallback CExecCallbackc_sqlite3_backup_pagecountc_sqlite3_backup_remainingc_sqlite3_backup_stepc_sqlite3_backup_finishc_sqlite3_backup_initc_sqlite3_blob_writec_sqlite3_blob_readc_sqlite3_blob_bytesc_sqlite3_blob_reopenc_sqlite3_blob_closec_sqlite3_blob_open mkCWalHookc_sqlite3_wal_hookc_sqlite3_enable_load_extensionc_sqlite3_free mkCComparec_sqlite3_create_collation_v2c_sqlite3_result_errorc_sqlite3_result_valuec_sqlite3_result_doublec_sqlite3_result_int64c_sqlite3_result_textc_sqlite3_result_zeroblobc_sqlite3_result_blobc_sqlite3_result_nullc_sqlite3_value_doublec_sqlite3_value_int64c_sqlite3_value_textc_sqlite3_value_blobc_sqlite3_value_bytesc_sqlite3_value_typec_sqlite3_aggregate_contextc_sqlite3_context_db_handlec_sqlite3_user_datamkCFuncDestroy mkCFuncFinalmkCFuncc_sqlite3_create_function_v2c_sqlite3_total_changesc_sqlite3_changesc_sqlite3_last_insert_rowidc_sqlite3_column_doublec_sqlite3_column_int64c_sqlite3_column_textc_sqlite3_column_blobc_sqlite3_column_bytesc_sqlite3_column_typec_sqlite3_bind_nullc_sqlite3_bind_int64c_sqlite3_bind_doublec_sqlite3_bind_textc_sqlite3_bind_zeroblobc_sqlite3_bind_blobc_sqlite3_column_namec_sqlite3_column_countc_sqlite3_bind_parameter_indexc_sqlite3_bind_parameter_namec_sqlite3_bind_parameter_count c_sqlite3_sqlc_sqlite3_clear_bindingsc_sqlite3_finalizec_sqlite3_resetc_sqlite3_stepc_sqlite3_db_handlec_sqlite3_prepare_v2mkCTraceCallbackmkCExecCallbackc_sqlite3_execc_sqlite3_enable_shared_cachec_sqlite3_get_autocommitc_sqlite3_tracec_sqlite3_interruptc_sqlite3_errmsgc_sqlite3_errcodec_sqlite3_closec_sqlite3_open ExecCallbackBackupBlobFuncArgs FuncContextUtf8BackupStepResultBackupOK BackupDone StepResultRowDone StatementDatabaseopenclose interrupterrcodeerrmsgexecWithCallbacksetTrace getAutoCommitsetSharedCacheEnabledgetStatementDatabasestepresetfinalize statementSql clearBindingsbindParameterCountbindParameterNamebindParameterIndex columnCount columnName bindInt64 bindDoublebindTextbindBlob bindZeroBlobbindNull columnType columnInt64 columnDouble columnText columnBloblastInsertRowIdchanges totalChangescreateFunctioncreateAggregatedeleteFunction funcArgCount funcArgType funcArgInt64 funcArgDouble funcArgText funcArgBlobfuncResultInt64funcResultDoublefuncResultTextfuncResultBlobfuncResultZeroBlobfuncResultNullgetFuncContextDatabasecreateCollationdeleteCollationsetLoadExtensionEnabledblobOpen blobClose blobReopen blobBytesblobRead blobReadBuf blobWrite backupInit backupFinish backupStepbackupRemainingbackupPagecount $fMonoidUtf8$fIsStringUtf8 $fShowUtf8 $fEqDatabase$fShowDatabase $fEqStatement$fShowStatement$fEqStepResult$fShowStepResult$fEqBackupStepResult$fShowBackupStepResult$fEqUtf8 $fOrdUtf8$fEqFuncContext$fShowFuncContext$fEqBlob $fShowBlob $fEqBackup $fShowBackupSQLErrorsqlErrorsqlErrorDetailssqlErrorContextSQLData SQLIntegerSQLFloatSQLTextSQLBlobSQLNull interruptibly execPrint prepareUtf8bindIntbind bindNamedcolumncolumns typedColumnsfuncResultSQLData$fExceptionSQLError$fShowSQLError $fEqSQLData $fShowSQLData $fEqSQLErrorbaseGHC.PtrPtr Foreign.PtrfreeHaskellFunPtrbytestring-0.10.8.2Data.ByteString.Internal ByteStringunsafeUseAsCStringLenNoNullGHC.BaseNothingghc-prim GHC.TypesTrueFalse Data.EitherRight#text-1.2.2.2-EakMpasry3jA6OIwSZhq9MData.Text.Encoding encodeUtf8 Data.Textpack CFuncPtrsfromUtf8failData.Text.Encoding.Error DecodeErrorData.Text.InternalText DetailSourceDetailDatabaseDetailStatement DetailMessage