-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Low level bindings for foreign libraries
following community driven guidelines
--
-- This package aims at beeing a wide collection of low-level bindings
-- covering as much as possible of the functionality of good quality
-- libraries, following a common set of community driven guidelines. (The
-- current set of guidelines is shown at Bindings module
-- documentation.) It has been created as an attempt to relieve the
-- common situation where developers of high-level modules can't waste
-- effort with all details of low-level work, and for those writing
-- compreensive and reliable low-level bindings little time is left to
-- get the best of Haskell. Developers with good understanding of their
-- favorite foreign language libraries and Haskell FFI can benefict from
-- contributing to this package by sharing guidelines, tests and code
-- facilities, and help each other in issues of reliability and
-- portability; and developers of higher-level modules can put their
-- efforts where they are needed, with a reliable set of low-level code
-- at hand.
@package bindings
@version 0.0.1
module Bindings.Utilities
newtype (Storable a) => GlobalVar a
GlobalVar :: (Ptr a) -> GlobalVar a
class Callback f
makeCallback :: (Callback f) => f -> IO (FunPtr f)
freeCallback :: (Callback f) => FunPtr f -> IO ()
withCallback :: (Callback f) => f -> (FunPtr f -> IO a) -> IO a
type CallbackMaker a = a -> IO (FunPtr a)
type CB0001 a = Ptr a -> CInt -> Ptr CString -> Ptr CString -> IO CInt
mkCB0001 :: CallbackMaker (CB0001 a)
type CB0002 = Ptr () -> Ptr () -> IO CInt
mkCB0002 :: CallbackMaker CB0002
type CB0003 a = Ptr a -> CInt -> IO CInt
mkCB0003 :: CallbackMaker (CB0003 a)
type CB0004 a b = Ptr a -> Ptr b -> CInt -> CString -> IO ()
mkCB0004 :: CallbackMaker (CB0004 a b)
type CB0005 a = Ptr a -> IO CInt
mkCB0005 :: CallbackMaker (CB0005 a)
type CB0006 a = Ptr a -> CInt -> CString -> CInt -> CString -> IO CInt
mkCB0006 :: CallbackMaker (CB0006 a)
type CB0007 a b = Ptr a -> CInt -> Ptr (Ptr b) -> IO ()
mkCB0007 :: CallbackMaker (CB0007 a b)
type CB0008 a = Ptr a -> IO ()
mkCB0008 :: CallbackMaker (CB0008 a)
type CB0009 a = Ptr a -> CInt -> CString -> CString -> CString -> CString -> IO CInt
mkCB0009 :: CallbackMaker (CB0009 a)
type CB000A a = Ptr a -> CInt -> CString -> CString -> Int64 -> IO ()
mkCB000A :: CallbackMaker (CB000A a)
type CB000B = CInt -> IO ()
mkCB000B :: CallbackMaker CB000B
type CB000C = IO ()
mkCB000C :: CallbackMaker CB000C
instance Callback CB000C
instance Callback CB000B
instance Callback (CB000A a)
instance Callback (CB0009 a)
instance Callback (CB0008 a)
instance Callback (CB0007 a b)
instance Callback (CB0006 a)
instance Callback (CB0005 a)
instance Callback (CB0004 a b)
instance Callback (CB0003 a)
instance Callback CB0002
instance Callback (CB0001 a)
module Bindings.StandardC
isalnum :: CInt -> IO CInt
isalpha :: CInt -> IO CInt
isblank :: CInt -> IO CInt
iscntrl :: CInt -> IO CInt
isdigit :: CInt -> IO CInt
isgraph :: CInt -> IO CInt
islower :: CInt -> IO CInt
isprint :: CInt -> IO CInt
ispunct :: CInt -> IO CInt
isspace :: CInt -> IO CInt
isupper :: CInt -> IO CInt
isxdigit :: CInt -> IO CInt
tolower :: CInt -> IO CInt
toupper :: CInt -> IO CInt
_CHAR_BIT :: CInt
_MB_LEN_MAX :: CInt
_LC_ALL :: CInt
_LC_COLLATE :: CInt
_LC_CTYPE :: CInt
_LC_MONETARY :: CInt
_LC_NUMERIC :: CInt
_LC_TIME :: CInt
setlocale :: CInt -> CString -> IO CString
acos :: CDouble -> IO CDouble
acosf :: CFloat -> IO CFloat
acosl :: CLDouble -> IO CLDouble
asin :: CDouble -> IO CDouble
asinf :: CFloat -> IO CFloat
asinl :: CLDouble -> IO CLDouble
atan :: CDouble -> IO CDouble
atanf :: CFloat -> IO CFloat
atanl :: CLDouble -> IO CLDouble
atan2 :: CDouble -> CDouble -> IO CDouble
atan2f :: CFloat -> CFloat -> IO CFloat
atan2l :: CLDouble -> CLDouble -> IO CLDouble
cos :: CDouble -> IO CDouble
cosf :: CFloat -> IO CFloat
cosl :: CLDouble -> IO CLDouble
sin :: CDouble -> IO CDouble
sinf :: CFloat -> IO CFloat
sinl :: CLDouble -> IO CLDouble
tan :: CDouble -> IO CDouble
tanf :: CFloat -> IO CFloat
tanl :: CLDouble -> IO CLDouble
acosh :: CDouble -> IO CDouble
acoshf :: CFloat -> IO CFloat
acoshl :: CLDouble -> IO CLDouble
asinh :: CDouble -> IO CDouble
asinhf :: CFloat -> IO CFloat
asinhl :: CLDouble -> IO CLDouble
atanh :: CDouble -> IO CDouble
atanhf :: CFloat -> IO CFloat
atanhl :: CLDouble -> IO CLDouble
cosh :: CDouble -> IO CDouble
coshf :: CFloat -> IO CFloat
coshl :: CLDouble -> IO CLDouble
sinh :: CDouble -> IO CDouble
sinhf :: CFloat -> IO CFloat
sinhl :: CLDouble -> IO CLDouble
tanh :: CDouble -> IO CDouble
tanhf :: CFloat -> IO CFloat
tanhl :: CLDouble -> IO CLDouble
exp :: CDouble -> IO CDouble
expf :: CFloat -> IO CFloat
expl :: CLDouble -> IO CLDouble
exp2 :: CDouble -> IO CDouble
exp2f :: CFloat -> IO CFloat
exp2l :: CLDouble -> IO CLDouble
expm1 :: CDouble -> IO CDouble
expm1f :: CFloat -> IO CFloat
expm1l :: CLDouble -> IO CLDouble
frexp :: CDouble -> Ptr CInt -> IO CDouble
frexpf :: CFloat -> Ptr CInt -> IO CFloat
frexpl :: CLDouble -> Ptr CInt -> IO CLDouble
ilogb :: CDouble -> IO CInt
ilogbf :: CFloat -> IO CFloat
ilogbl :: CLDouble -> IO CLDouble
ldexp :: CDouble -> CInt -> IO CDouble
ldexpf :: CFloat -> CInt -> IO CFloat
ldexpl :: CLDouble -> CInt -> IO CLDouble
log :: CDouble -> IO CDouble
logf :: CFloat -> IO CFloat
logl :: CLDouble -> IO CLDouble
log10 :: CDouble -> IO CDouble
log10f :: CFloat -> IO CFloat
log10l :: CLDouble -> IO CLDouble
log1p :: CDouble -> IO CDouble
log1pf :: CFloat -> IO CFloat
log1pl :: CLDouble -> IO CLDouble
log2 :: CDouble -> IO CDouble
log2f :: CFloat -> IO CFloat
log2l :: CLDouble -> IO CLDouble
logb :: CDouble -> IO CDouble
logbf :: CFloat -> IO CFloat
logbl :: CLDouble -> IO CLDouble
modf :: CDouble -> Ptr CDouble -> IO CDouble
modff :: CFloat -> Ptr CFloat -> IO CFloat
modfl :: CLDouble -> Ptr CLDouble -> IO CLDouble
scalbn :: CDouble -> CInt -> IO CDouble
scalbnf :: CFloat -> CInt -> IO CFloat
scalbnl :: CLDouble -> CInt -> IO CLDouble
scalbln :: CDouble -> CLong -> IO CDouble
scalblnf :: CFloat -> CLong -> IO CFloat
scalblnl :: CLDouble -> CLong -> IO CLDouble
cbrt :: CDouble -> IO CDouble
cbrtf :: CFloat -> IO CFloat
cbrtl :: CLDouble -> IO CLDouble
fabs :: CDouble -> IO CDouble
fabsf :: CFloat -> IO CFloat
fabsl :: CLDouble -> IO CLDouble
hypot :: CDouble -> CDouble -> IO CDouble
hypotf :: CFloat -> CFloat -> IO CFloat
hypotl :: CLDouble -> CLDouble -> IO CLDouble
pow :: CDouble -> CDouble -> IO CDouble
powf :: CFloat -> CFloat -> IO CFloat
powl :: CLDouble -> CLDouble -> IO CLDouble
sqrt :: CDouble -> IO CDouble
sqrtf :: CFloat -> IO CFloat
sqrtl :: CLDouble -> IO CLDouble
erf :: CDouble -> IO CDouble
erff :: CFloat -> IO CFloat
erfl :: CLDouble -> IO CLDouble
erfc :: CDouble -> IO CDouble
erfcf :: CFloat -> IO CFloat
erfcl :: CLDouble -> IO CLDouble
lgamma :: CDouble -> IO CDouble
lgammaf :: CFloat -> IO CFloat
lgammal :: CLDouble -> IO CLDouble
tgamma :: CDouble -> IO CDouble
tgammaf :: CFloat -> IO CFloat
tgammal :: CLDouble -> IO CLDouble
ceil :: CDouble -> IO CDouble
ceilf :: CFloat -> IO CFloat
ceill :: CLDouble -> IO CLDouble
floor :: CDouble -> IO CDouble
floorf :: CFloat -> IO CFloat
floorl :: CLDouble -> IO CLDouble
nearbyint :: CDouble -> IO CDouble
nearbyintf :: CFloat -> IO CFloat
nearbyintl :: CLDouble -> IO CLDouble
rint :: CDouble -> IO CDouble
rintf :: CFloat -> IO CFloat
rintl :: CLDouble -> IO CLDouble
lrint :: CDouble -> IO CLong
lrintf :: CFloat -> IO CLong
lrintl :: CLDouble -> IO CLong
llrint :: CDouble -> IO CLLong
llrintf :: CFloat -> IO CLLong
llrintl :: CLDouble -> IO CLLong
round :: CDouble -> IO CDouble
roundf :: CFloat -> IO CFloat
roundl :: CLDouble -> IO CLDouble
lround :: CDouble -> IO CLong
lroundf :: CFloat -> IO CLong
lroundl :: CLDouble -> IO CLDouble
llround :: CDouble -> IO CLLong
llroundf :: CFloat -> IO CLLong
llroundl :: CLDouble -> IO CLLong
trunc :: CDouble -> IO CDouble
truncf :: CFloat -> IO CFloat
truncl :: CLDouble -> IO CLDouble
fmod :: CDouble -> CDouble -> IO CDouble
fmodf :: CFloat -> CFloat -> IO CFloat
fmodl :: CLDouble -> CLDouble -> IO CLDouble
remainder :: CDouble -> CDouble -> IO CDouble
remainderf :: CFloat -> CFloat -> IO CFloat
remainderl :: CLDouble -> CLDouble -> IO CLDouble
remquo :: CDouble -> CDouble -> Ptr CInt -> IO CDouble
remquof :: CFloat -> CFloat -> Ptr CInt -> IO CFloat
remquol :: CLDouble -> CLDouble -> Ptr CInt -> IO CLDouble
nan :: CString -> IO CDouble
nanf :: CString -> IO CFloat
nanl :: CString -> IO CLDouble
nextafter :: CDouble -> CDouble -> IO CDouble
nextafterf :: CFloat -> CFloat -> IO CFloat
nextafterl :: CLDouble -> CLDouble -> IO CLDouble
nexttoward :: CDouble -> CLDouble -> IO CDouble
nexttowardf :: CFloat -> CLDouble -> IO CFloat
nexttowardl :: CLDouble -> CLDouble -> IO CLDouble
fdim :: CDouble -> CDouble -> IO CDouble
fdimf :: CFloat -> CFloat -> IO CFloat
fdiml :: CLDouble -> CLDouble -> IO CLDouble
fmax :: CDouble -> CDouble -> IO CDouble
fmaxf :: CFloat -> CFloat -> IO CFloat
fmaxl :: CLDouble -> CLDouble -> IO CLDouble
fmin :: CDouble -> CDouble -> IO CDouble
fminf :: CFloat -> CFloat -> IO CFloat
fminl :: CLDouble -> CLDouble -> IO CLDouble
fma :: CDouble -> CDouble -> CDouble -> IO CDouble
fmaf :: CFloat -> CFloat -> CFloat -> IO CFloat
fmal :: CLDouble -> CLDouble -> CLDouble -> IO CLDouble
_SIG_DFL :: Ptr _SignalCallback
_SIG_ERR :: Ptr _SignalCallback
_SIG_IGN :: Ptr _SignalCallback
_SIGABRT :: CInt
_SIGFPE :: CInt
_SIGILL :: CInt
_SIGINT :: CInt
_SIGSEGV :: CInt
_SIGTERM :: CInt
signal :: CInt -> Ptr CB000B -> IO ()
raise :: CInt -> IO CInt
type CInt8 = Int8
type CInt16 = Int16
type CInt32 = Int32
type CInt64 = Int64
type CUInt8 = Word8
type CUInt16 = Word16
type CUInt32 = Word32
type CUInt64 = Word64
_IOFBF :: CInt
_IOLBF :: CInt
_IONBF :: CInt
_BUFSIZ :: CInt
_EOF :: CInt
_FOPEN_MAX :: CInt
_FILENAME_MAX :: CInt
_L_tmpnam :: CInt
_SEEK_CUR :: CInt
_SEEK_END :: CInt
_SEEK_SET :: CInt
_TMP_MAX :: CInt
stderr :: Ptr CFile
stdin :: Ptr CFile
stdout :: Ptr CFile
remove :: CString -> IO CInt
rename :: CString -> CString -> IO CInt
tmpfile :: IO (Ptr CFile)
fclose :: Ptr CFile -> IO CInt
fflush :: Ptr CFile -> IO CInt
fopen :: CString -> CString -> IO (Ptr CFile)
freopen :: CString -> CString -> Ptr CFile -> IO (Ptr CFile)
setbuf :: Ptr CFile -> CString -> IO ()
setvbuf :: Ptr CFile -> CString -> CInt -> CSize -> IO CInt
fgetc :: Ptr CFile -> IO CInt
fgets :: CString -> CInt -> Ptr CFile -> IO CString
fputc :: CInt -> Ptr CFile -> IO CInt
fputs :: CString -> Ptr CFile -> IO CInt
getc :: Ptr CFile -> IO CInt
getchar :: IO CInt
putchar :: CInt -> IO CInt
puts :: CString -> IO CInt
ungetc :: CInt -> Ptr CFile -> IO CInt
fread :: Ptr () -> CSize -> CSize -> Ptr CFile -> IO CSize
fwrite :: Ptr () -> CSize -> CSize -> Ptr CFile -> IO CSize
fgetpos :: Ptr CFile -> Ptr CFpos -> IO CInt
fseek :: Ptr CFile -> CLong -> CInt -> IO CInt
fsetpos :: Ptr CFile -> Ptr CFpos -> IO CInt
ftell :: Ptr CFile -> IO CLong
rewind :: Ptr CFile -> IO ()
clearerr :: Ptr CFile -> IO ()
feof :: Ptr CFile -> IO CInt
ferror :: Ptr CFile -> IO CInt
perror :: CString -> IO ()
_EXIT_FAILURE :: CInt
_EXIT_SUCCESS :: CInt
_RAND_MAX :: CInt
_MB_CUR_MAX :: IO CSize
atof :: CString -> IO CDouble
atoi :: CString -> IO CInt
atol :: CString -> IO CLong
atoll :: CString -> IO CLLong
strtod :: CString -> Ptr CString -> IO CDouble
strtof :: CString -> Ptr CString -> IO CFloat
strtold :: CString -> Ptr CString -> IO CLDouble
strtol :: CString -> Ptr CString -> CInt -> IO CLong
strtoll :: CString -> Ptr CString -> CInt -> IO CLLong
strtoul :: CString -> Ptr CString -> CInt -> IO CULong
strtoull :: CString -> Ptr CString -> CInt -> IO CULLong
rand :: IO CInt
srand :: CUInt -> IO ()
calloc :: CSize -> CSize -> Ptr ()
free :: Ptr () -> IO ()
malloc :: CSize -> IO (Ptr ())
realloc :: Ptr () -> CSize -> IO (Ptr ())
abort :: IO ()
atexit :: FunPtr CB000C -> IO CInt
exit :: CInt -> IO ()
_Exit :: CInt -> IO ()
getenv :: CString -> IO CString
system :: CString -> IO CInt
bsearch :: Ptr () -> Ptr () -> CSize -> CSize -> FunPtr CB0002 -> IO (Ptr ())
qsort :: Ptr () -> CSize -> CSize -> FunPtr CB0002 -> IO ()
abs :: CInt -> IO CInt
labs :: CLong -> IO CLong
llabs :: CLLong -> IO CLLong
mblen :: CString -> CSize -> IO CInt
mbtowc :: CWString -> CString -> CSize -> IO CInt
wctomb :: CString -> CWchar -> IO CInt
mbstowcs :: CWString -> CString -> CSize -> IO CSize
wcstombs :: CString -> CWString -> CSize -> IO CSize
memcpy :: Ptr () -> Ptr () -> CSize -> IO (Ptr ())
memmove :: Ptr () -> Ptr () -> CSize -> IO (Ptr ())
strcpy :: CString -> CString -> IO CString
strncpy :: CString -> CString -> CSize -> IO CString
strcat :: CString -> CString -> IO CString
strncat :: CString -> CString -> CSize -> IO CString
memcmp :: Ptr () -> Ptr () -> CSize -> IO CInt
strcmp :: CString -> CString -> IO CInt
strcoll :: CString -> CString -> IO CInt
strncmp :: CString -> CString -> CSize -> IO CInt
strxfrm :: CString -> CString -> CSize -> IO CSize
memchr :: Ptr () -> CInt -> CSize -> IO (Ptr ())
strchr :: CString -> CInt -> IO CString
strcspn :: CString -> CString -> IO CSize
strpbrk :: CString -> CString -> IO CString
strrchr :: CString -> CInt -> IO CString
strspn :: CString -> CString -> IO CSize
strstr :: CString -> CString -> IO CString
strtok :: CString -> CString -> IO CString
memset :: Ptr () -> CInt -> CSize -> IO (Ptr ())
strerror :: CInt -> IO CString
strlen :: CString -> IO CSize
_CLOCKS_PER_SEC :: CClock
clock :: IO CClock
difftime :: CTime -> CTime -> IO CDouble
time :: Ptr CTime -> IO CTime
ctime :: Ptr CTime -> IO CString
fgetws :: CWString -> CInt -> Ptr CFile -> IO CWString
fputws :: CWString -> Ptr CFile -> IO CInt
fwide :: Ptr CFile -> CInt -> IO CInt
wcstod :: CWString -> Ptr CString -> IO CDouble
wcstof :: CWString -> Ptr CString -> IO CFloat
wcstold :: CWString -> Ptr CString -> IO CLDouble
wcstol :: CWString -> Ptr CWString -> CInt -> IO CLong
wcstoll :: CWString -> Ptr CWString -> CInt -> IO CLLong
wcstoul :: CWString -> Ptr CWString -> CInt -> IO CULong
wcstoull :: CWString -> Ptr CWString -> CInt -> IO CULLong
wcscpy :: CWString -> CWString -> IO CWString
wcsncpy :: CWString -> CWString -> CSize -> IO CWString
wmemcpy :: CWString -> CWString -> CSize -> IO CWString
wmemmove :: CWString -> CWString -> CSize -> IO CWString
wcscat :: CWString -> CWString -> IO CWString
wcsncat :: CWString -> CWString -> CSize -> IO CWString
wcscmp :: CWString -> CWString -> IO CInt
wcscoll :: CWString -> CWString -> IO CInt
wcsncmp :: CWString -> CWString -> CSize -> IO CInt
wcsxfrm :: CWString -> CWString -> CSize -> IO CSize
wmemcmp :: CWString -> CWString -> CSize -> IO CInt
wcschr :: CWString -> CWchar -> IO CWchar
wcscspn :: CWString -> CWString -> IO CSize
wcspbrk :: CWString -> CWString -> IO CWString
wcsrchr :: CWString -> CWchar -> IO CWString
wcsspn :: CWString -> CWString -> IO CSize
wcsstr :: CWString -> CWString -> IO CWString
wcstok :: CWString -> CWString -> CWString -> IO CWString
wmemchr :: CWString -> CWchar -> CSize -> IO CWString
wcslen :: CWString -> IO CSize
wmemset :: CWString -> CWchar -> CSize -> IO CWString
-- | Sqlite is a database API with direct file access, instead of network
-- access. You can find information and documentation about it at:
--
-- www.sqlite.org
--
-- Translation notes:
--
--
-- - Although the general rule is to type preprocessor constant
-- definitions as CInt, _STATIC and _TRANSIENT have been typed as
-- pointers to Foreign.ForeignPtr.FinalizerPtr () to be
-- consistent with their use.
-- - These compile time macros have been defined:
-- SQLITE_ENABLE_FTS3, SQLITE_ENABLE_FTS3_PARENTHESIS,
-- SQLITE_ENABLE_LOCKING_STYLE,
-- SQLITE_ENABLE_MEMORY_MANAGEMENT,
-- SQLITE_ENABLE_MEMSYS5 and SQLITE_ENABLE_RTREE.
--
module Bindings.Sqlite3
data Sqlite3
Sqlite3 :: Sqlite3
data Blob
Blob :: Blob
data Context
Context :: Context
data File
File :: File
data IoMethods
IoMethods :: IoMethods
data Mutex
Mutex :: Mutex
data Stmt
Stmt :: Stmt
data Value
Value :: Value
data Vfs
Vfs :: Vfs
temp_directory :: GlobalVar CString
_ERROR :: CInt
_INTERNAL :: CInt
_PERM :: CInt
_ABORT :: CInt
_BUSY :: CInt
_LOCKED :: CInt
_NOMEM :: CInt
_READONLY :: CInt
_INTERRUPT :: CInt
_IOERR :: CInt
_CORRUPT :: CInt
_NOTFOUND :: CInt
_FULL :: CInt
_CANTOPEN :: CInt
_PROTOCOL :: CInt
_EMPTY :: CInt
_SCHEMA :: CInt
_TOOBIG :: CInt
_CONSTRAINT :: CInt
_MISMATCH :: CInt
_MISUSE :: CInt
_NOLFS :: CInt
_AUTH :: CInt
_FORMAT :: CInt
_RANGE :: CInt
_NOTADB :: CInt
_ROW :: CInt
_DONE :: CInt
_OK :: CInt
_ACCESS_READWRITE :: CInt
_ACCESS_READ :: CInt
_ACCESS_EXISTS :: CInt
_CREATE_TABLE :: CInt
_CREATE_TEMP_INDEX :: CInt
_CREATE_TEMP_TABLE :: CInt
_CREATE_TEMP_TRIGGER :: CInt
_CREATE_TEMP_VIEW :: CInt
_CREATE_TRIGGER :: CInt
_CREATE_VIEW :: CInt
_DELETE :: CInt
_DROP_INDEX :: CInt
_DROP_TABLE :: CInt
_DROP_TEMP_INDEX :: CInt
_DROP_TEMP_TABLE :: CInt
_DROP_TEMP_TRIGGER :: CInt
_DROP_TEMP_VIEW :: CInt
_DROP_TRIGGER :: CInt
_DROP_VIEW :: CInt
_INSERT :: CInt
_PRAGMA :: CInt
_READ :: CInt
_SELECT :: CInt
_TRANSACTION :: CInt
_UPDATE :: CInt
_ATTACH :: CInt
_DETACH :: CInt
_ALTERTABLE :: CInt
_REINDEX :: CInt
_ANALYZE :: CInt
_CREATE_VTABLE :: CInt
_DROP_VTABLE :: CInt
_FUNCTION :: CInt
_CREATE_INDEX :: CInt
_UTF16LE :: CInt
_UTF16BE :: CInt
_UTF16 :: CInt
_ANY :: CInt
_UTF16_ALIGNED :: CInt
_UTF8 :: CInt
_FLOAT :: CInt
_TEXT :: CInt
_BLOB :: CInt
_NULL :: CInt
_INTEGER :: CInt
_IGNORE :: CInt
_DENY :: CInt
_GET_LOCKPROXYFILE :: CInt
_SET_LOCKPROXYFILE :: CInt
_LAST_ERRNO :: CInt
_FCNTL_LOCKSTATE :: CInt
_IOCAP_ATOMIC512 :: CInt
_IOCAP_ATOMIC1K :: CInt
_IOCAP_ATOMIC2K :: CInt
_IOCAP_ATOMIC4K :: CInt
_IOCAP_ATOMIC8K :: CInt
_IOCAP_ATOMIC16K :: CInt
_IOCAP_ATOMIC32K :: CInt
_IOCAP_ATOMIC64K :: CInt
_IOCAP_SAFE_APPEND :: CInt
_IOCAP_SEQUENTIAL :: CInt
_IOCAP_ATOMIC :: CInt
_IOERR_SHORT_READ :: CInt
_IOERR_WRITE :: CInt
_IOERR_FSYNC :: CInt
_IOERR_DIR_FSYNC :: CInt
_IOERR_TRUNCATE :: CInt
_IOERR_FSTAT :: CInt
_IOERR_UNLOCK :: CInt
_IOERR_RDLOCK :: CInt
_IOERR_DELETE :: CInt
_IOERR_BLOCKED :: CInt
_IOERR_NOMEM :: CInt
_IOERR_ACCESS :: CInt
_IOERR_CHECKRESERVEDLOCK :: CInt
_IOERR_LOCK :: CInt
_IOERR_CLOSE :: CInt
_IOERR_DIR_CLOSE :: CInt
_IOERR_READ :: CInt
_LIMIT_SQL_LENGTH :: CInt
_LIMIT_COLUMN :: CInt
_LIMIT_EXPR_DEPTH :: CInt
_LIMIT_COMPOUND_SELECT :: CInt
_LIMIT_VDBE_OP :: CInt
_LIMIT_FUNCTION_ARG :: CInt
_LIMIT_ATTACHED :: CInt
_LIMIT_LIKE_PATTERN_LENGTH :: CInt
_LIMIT_VARIABLE_NUMBER :: CInt
_LIMIT_LENGTH :: CInt
_LOCK_SHARED :: CInt
_LOCK_RESERVED :: CInt
_LOCK_PENDING :: CInt
_LOCK_EXCLUSIVE :: CInt
_LOCK_NONE :: CInt
_MUTEX_RECURSIVE :: CInt
_MUTEX_STATIC_MASTER :: CInt
_MUTEX_STATIC_MEM :: CInt
_MUTEX_STATIC_MEM2 :: CInt
_MUTEX_STATIC_PRNG :: CInt
_MUTEX_STATIC_LRU :: CInt
_MUTEX_STATIC_LRU2 :: CInt
_MUTEX_FAST :: CInt
_OPEN_READWRITE :: CInt
_OPEN_CREATE :: CInt
_OPEN_DELETEONCLOSE :: CInt
_OPEN_EXCLUSIVE :: CInt
_OPEN_MAIN_DB :: CInt
_OPEN_TEMP_DB :: CInt
_OPEN_TRANSIENT_DB :: CInt
_OPEN_MAIN_JOURNAL :: CInt
_OPEN_TEMP_JOURNAL :: CInt
_OPEN_SUBJOURNAL :: CInt
_OPEN_MASTER_JOURNAL :: CInt
_OPEN_NOMUTEX :: CInt
_OPEN_FULLMUTEX :: CInt
_OPEN_READONLY :: CInt
_TRANSIENT :: FinalizerPtr ()
_STATIC :: FinalizerPtr ()
_SYNC_FULL :: CInt
_SYNC_DATAONLY :: CInt
_SYNC_NORMAL :: CInt
version :: CString
_VERSION :: CString
_VERSION_NUMBER :: CInt
aggregate_context :: Ptr Context -> CInt -> IO (Ptr a)
auto_extension :: Ptr a -> IO CInt
bind_blob :: Ptr Stmt -> CInt -> Ptr a -> CInt -> FinalizerPtr a -> IO CInt
bind_double :: Ptr Stmt -> CInt -> CDouble -> IO CInt
bind_int :: Ptr Stmt -> CInt -> CInt -> IO CInt
bind_int64 :: Ptr Stmt -> CInt -> CInt64 -> IO CInt
bind_null :: Ptr Stmt -> CInt -> IO CInt
bind_parameter_count :: Ptr Stmt -> IO CInt
bind_parameter_index :: Ptr Stmt -> CString -> IO CInt
bind_parameter_name :: Ptr Stmt -> CInt -> IO CString
bind_text :: Ptr Stmt -> CInt -> CString -> CInt -> FinalizerPtr CString -> IO CInt
bind_text16 :: Ptr Stmt -> CInt -> CString -> CInt -> FinalizerPtr CString -> IO CInt
bind_value :: Ptr Stmt -> CInt -> Ptr Value -> IO CInt
bind_zeroblob :: Ptr Stmt -> CInt -> CInt -> IO CInt
blob_bytes :: Ptr Blob -> IO CInt
blob_close :: Ptr Blob -> IO CInt
blob_open :: Ptr Sqlite3 -> CString -> CString -> CString -> CInt64 -> CInt -> Ptr (Ptr Blob) -> IO CInt
blob_read :: Ptr Blob -> Ptr a -> CInt -> CInt -> IO CInt
blob_write :: Ptr Blob -> Ptr a -> CInt -> CInt -> IO CInt
busy_handler :: Ptr Sqlite3 -> FunPtr (CB0003 a) -> Ptr a -> IO CInt
busy_timeout :: Ptr Sqlite3 -> CInt -> IO CInt
changes :: Ptr Sqlite3 -> IO CInt
clear_bindings :: Ptr Stmt -> IO CInt
close :: Ptr Sqlite3 -> IO CInt
collation_needed :: Ptr Sqlite3 -> Ptr a -> FunPtr (CB0004 a Sqlite3) -> IO CInt
collation_needed16 :: Ptr Sqlite3 -> Ptr a -> FunPtr (CB0004 a Sqlite3) -> IO CInt
column_blob :: Ptr Stmt -> CInt -> IO (Ptr a)
column_bytes :: Ptr Stmt -> CInt -> IO CInt
column_bytes16 :: Ptr Stmt -> CInt -> IO CInt
column_count :: Ptr Stmt -> IO CInt
column_decltype :: Ptr Stmt -> CInt -> IO CString
column_decltype16 :: Ptr Stmt -> CInt -> IO CString
column_double :: Ptr Stmt -> CInt -> IO Double
column_int :: Ptr Stmt -> CInt -> IO CInt
column_int64 :: Ptr Stmt -> CInt -> IO CInt64
column_name :: Ptr Stmt -> CInt -> IO CString
column_name16 :: Ptr Stmt -> CInt -> IO CString
column_text :: Ptr Stmt -> CInt -> IO CString
column_text16 :: Ptr Stmt -> CInt -> IO CString
column_type :: Ptr Stmt -> CInt -> IO CInt
column_value :: Ptr Stmt -> CInt -> IO (Ptr Value)
commit_hook :: Ptr Stmt -> FunPtr (CB0005 a) -> Ptr a -> IO (Ptr b)
complete :: CString -> IO CInt
complete16 :: CString -> IO CInt
context_db_handle :: Ptr Context -> IO (Ptr Sqlite3)
create_collation :: Ptr Sqlite3 -> CString -> CInt -> Ptr a -> FunPtr (CB0006 a) -> IO CInt
create_collation16 :: Ptr Sqlite3 -> CString -> CInt -> Ptr a -> FunPtr (CB0006 a) -> IO CInt
create_collation_v2 :: Ptr Sqlite3 -> CString -> CInt -> Ptr a -> FunPtr (CB0006 a) -> FinalizerPtr a -> IO CInt
create_function :: Ptr Sqlite3 -> CString -> CInt -> CInt -> Ptr a -> FunPtr (CB0007 Context Value) -> FunPtr (CB0007 Context Value) -> FunPtr (CB0008 Context) -> IO CInt
createFunction16 :: Ptr Sqlite3 -> CString -> CInt -> CInt -> Ptr a -> FunPtr (CB0007 Context Value) -> FunPtr (CB0007 Context Value) -> FunPtr (CB0008 Context) -> IO CInt
data_count :: Ptr Stmt -> IO CInt
db_handle :: Ptr Stmt -> IO (Ptr Sqlite3)
db_mutex :: Ptr Sqlite3 -> IO (Ptr Mutex)
enable_load_extension :: Ptr Sqlite3 -> CInt -> IO CInt
enable_shared_cache :: CInt -> IO CInt
errcode :: Ptr Sqlite3 -> IO CInt
errmsg :: Ptr Sqlite3 -> IO CString
errmsg16 :: Ptr Sqlite3 -> IO CString
exec :: Ptr Sqlite3 -> CString -> FunPtr (CB0001 a) -> Ptr a -> Ptr CString -> IO CInt
extended_result_codes :: Ptr Sqlite3 -> CInt -> IO CInt
file_control :: Ptr Sqlite3 -> CString -> CInt -> Ptr a -> IO CInt
finalize :: Ptr Stmt -> IO CInt
free :: Ptr a -> IO ()
free_table :: Ptr CString -> IO ()
get_autocommit :: Ptr Sqlite3 -> IO CInt
get_aux_data :: Ptr Sqlite3 -> CInt -> IO (Ptr a)
get_table :: Ptr Sqlite3 -> CString -> Ptr (Ptr CString) -> Ptr CInt -> Ptr CInt -> Ptr CString
interrupt :: Ptr Sqlite3 -> IO ()
last_insert_rowid :: Ptr Sqlite3 -> IO CInt64
libversion :: IO CString
libversion_number :: IO CInt
limit :: Ptr Sqlite3 -> CInt -> CInt -> IO CInt
load_extension :: Ptr Sqlite3 -> CString -> CString -> Ptr CString -> IO CInt
malloc :: CInt -> IO (Ptr a)
memory_highwater :: CInt -> IO CInt64
memory_used :: IO CInt64
mutex_alloc :: CInt -> IO (Ptr Mutex)
mutex_enter :: Ptr Mutex -> IO ()
mutex_free :: Ptr Mutex -> IO ()
mutex_leave :: Ptr Mutex -> IO ()
mutex_try :: Ptr Mutex -> IO CInt
next_stmt :: Ptr Sqlite3 -> Ptr Stmt -> IO (Ptr Stmt)
open :: CString -> Ptr (Ptr Sqlite3) -> IO CInt
open16 :: CString -> Ptr (Ptr Sqlite3) -> IO CInt
open_v2 :: CString -> Ptr (Ptr Sqlite3) -> CInt -> CString -> IO CInt
prepare :: Ptr Sqlite3 -> CString -> CInt -> Ptr (Ptr Stmt) -> Ptr CString -> IO CInt
prepare16 :: Ptr Sqlite3 -> CString -> CInt -> Ptr (Ptr Stmt) -> Ptr CString -> IO CInt
prepare16_v2 :: Ptr Sqlite3 -> CString -> CInt -> Ptr (Ptr Stmt) -> Ptr CString -> IO CInt
prepare_v2 :: Ptr Sqlite3 -> CString -> CInt -> Ptr (Ptr Stmt) -> Ptr CString -> IO CInt
progress_handler :: Ptr Sqlite3 -> CInt -> FunPtr (CB0005 a) -> Ptr a -> IO ()
randomness :: CInt -> Ptr a -> IO ()
realloc :: Ptr a -> CInt -> IO (Ptr a)
release_memory :: CInt -> IO CInt
reset :: Ptr Stmt -> IO CInt
reset_auto_extension :: IO ()
result_blob :: Ptr Context -> Ptr a -> CInt -> FinalizerPtr a -> IO ()
result_double :: Ptr Context -> CDouble -> IO ()
result_error :: Ptr Context -> CString -> IO ()
result_error16 :: Ptr Context -> CString -> IO ()
result_error_code :: Ptr Context -> CInt -> IO ()
result_error_nomem :: Ptr Context -> IO ()
result_error_toobig :: Ptr Context -> IO ()
result_int :: Ptr Context -> CInt -> IO ()
result_int64 :: Ptr Context -> CInt64 -> IO ()
result_null :: Ptr Context -> IO ()
result_text :: Ptr Context -> CString -> CInt -> FinalizerPtr CString -> IO ()
result_text16 :: Ptr Context -> CString -> CInt -> FinalizerPtr CString -> IO ()
result_text16be :: Ptr Context -> CString -> CInt -> FinalizerPtr CString -> IO ()
result_text16le :: Ptr Context -> CString -> CInt -> FinalizerPtr CString -> IO ()
result_value :: Ptr Context -> Ptr Value -> IO ()
result_zeroblob :: Ptr Context -> CInt -> IO ()
rollback_hook :: Ptr Sqlite3 -> FunPtr (CB0008 a) -> Ptr a -> IO (Ptr a)
set_authorizer :: Ptr Sqlite3 -> FunPtr (CB0009 a) -> Ptr a -> IO CInt
set_auxdata :: Ptr Context -> CInt -> Ptr a -> FinalizerPtr a -> IO ()
sleep :: CInt -> IO CInt
soft_heap_limit :: CInt -> IO ()
sql :: Ptr Stmt -> IO CString
step :: Ptr Stmt -> IO CInt
threadsafe :: IO CInt
total_changes :: Ptr Sqlite3 -> IO CInt
update_hook :: Ptr Sqlite3 -> FunPtr (CB000A a) -> Ptr a -> IO (Ptr a)
user_data :: Ptr Context -> IO (Ptr a)
value_blob :: Ptr Value -> IO (Ptr a)
value_bytes :: Ptr Value -> IO CInt
value_bytes16 :: Ptr Value -> IO CInt
value_double :: Ptr Value -> IO CDouble
value_int :: Ptr Value -> IO CInt
value_int64 :: Ptr Value -> IO CInt64
value_numeric_type :: Ptr Value -> IO CInt
value_text :: Ptr Value -> IO CString
value_text16 :: Ptr Value -> IO CString
value_text16be :: Ptr Value -> IO CString
value_text16le :: Ptr Value -> IO CString
value_type :: Ptr Value -> IO CInt
vfs_find :: CString -> IO (Ptr Vfs)
vfs_register :: Ptr Vfs -> CInt -> IO CInt
vfs_unregister :: Ptr Vfs -> IO CInt
-- | Modules under Bindings are supposed to be low level links to
-- non-Haskell packages, sharing a set of community driven guidelines on
-- procedures, goals and style. (Note that, until others get interested
-- in this work, "community" means just the author.) This is the current
-- set of guidelines:
--
--
-- - Code should be portable and easy to build.
-- - There should be a one-to-one relashionship between names in the
-- original library and its bindings. Also, the behavior of elements
-- should be what would be expected from the element of the original
-- library it represents.
-- - As a planed consequence of the former item, the reference
-- documentation for all modules should be the documentation available
-- for the original libraries. Documentation and comments to Haskell
-- binding code should be restricted to explain decisions that had to be
-- made to solve ambiguities or provide functionality that could not be
-- mapped to an exact Haskell equivalent.
-- - All foreign functions are declared safe. Also, they
-- should all result in a System.IO.IO, even when they are supposed to be
-- effect-free. This is both for consistency and security, since
-- otherwise it would be difficult to inspect all the code to check which
-- functions are actually guaranteed to be effect-free. Constant values,
-- however, may be represented by pure functions.
-- - Global variables whose values can be changed by a library user are
-- wrapped throw type Bindings.Utilities.GlobalVar. When their values
-- can't be changed by the user, but still they can change as the
-- execution goes, they are wrapped throw functions returning an
-- System.IO.IO. (This last case, of course, may need helper functions
-- written in the foreign language.)
-- - Names in Haskell should match the corresponding names in original
-- libraries, prefixed with '_' when starting with an uppercase
-- letter, or with first letter uppercased when naming types. Exception
-- is made to prefixes used to emulate namespaces. In this case, prefixes
-- are stripped, and they are expected to be replaced by qualified
-- imports, e.g., a function named somepkg_anyfun should be
-- named just anyfun and may be used as SomePkg.anyfun.
-- Also names for basic types, like fixed size integers or pointers,
-- should be consistent with style used in Foreign.C.Types.
-- - Module Bindings.Utilities has an enumeration of function
-- types (Bindings.Utilities.CB0001, Bindings.Utilities.CB0002 etc.)
-- which are supposed to be used (and incremented when necessary) to type
-- callback functions. Foreign functions parameters expecting callback
-- pointers should be typed as pointers to function types in that
-- enumeration; except when those callbacks are just data destructors,
-- when they should be typed as Foreign.ForeignPtr.FinalizerPtr.
-- - Users can suggest tests using Test.HUnit or
-- Test.QuickCheck using the bug tracking system. Test shown to be
-- valid will be included with a test program included in this
-- package.
--
--
-- The names for files and directories in the source pack follow the
-- usual convention of mapping module names to file names. A similar
-- convention is followed by C files that support those modules. There
-- are also a few special directories:
--
--
-- - packageCode This directory contains the source
-- code for the foreign libraries. Whe appropriate, steps necessary to
-- build a library will be listed in a file here.
-- - packageCode/include Support files needed by this
-- package to properly wrapp libraries (like C include files)
-- are placed here. They should be simplified as much as possible to
-- contain only the required information.
-- - traduttoreTraditore Here example code for wrapped
-- libraries can be found. However, only Haskell translations for code
-- already available for those libraries in "official" places (like the
-- homepage for the library, or inside its source code distribution) are
-- allowed. Best effort should be made to keep those translations
-- faithfull to the original code, so that readers could follow then side
-- by side.
--
module Bindings
data License
ApacheLicenseV2 :: License
BSD3 :: License
GPL :: License
GPLv3 :: License
LGPL :: License
LGPLv3 :: License
MIT :: License
MPL :: License
CDDL :: License
CPL :: License
EPL :: License
ArtisticLicenseV2 :: License
OSLv3 :: License
Zlib :: License
AfferoGNUv3 :: License
SimPLv2 :: License
Proprietary :: License
Private :: License
data Package
Sqlite3 :: Package
-- | Given the license you have choosen for your work, this function tells
-- you which libraries in this package you're allowed to use.
whatCanBeUsedWithThisLicense :: License -> [Package]
-- | When libraries require an initialization call to be made at startup,
-- the related functions are not wrapped. Instead, we use
-- initialize as a common initialization point for all libraries.
-- You can use initialize at the beginning of main and
-- shutdown at the end. Repeated calls to initialize cause
-- no harm.
initialize :: [Package] -> IO ()
bindings_init_sqlite3 :: IO CInt
bindings_shutdown :: IO ()
instance Eq Package
instance Show Package