-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | Haskell binding of Tokyo Cabinet
--   
--   Bindings to Tokyo Cabinet library. Tokyo Cabinet is a modern
--   implementation of DBM. For more about Tokyo Cabinet, see
--   http://tokyocabinet.sourceforge.net/index.html. This package
--   provides `tokyocabinet.idl compliant' naive interfaces. See,
--   http://tokyocabinet.sourceforge.net/tokyocabinet.idl.
@package tokyocabinet-haskell
@version 0.0.5

module Database.TokyoCabinet.List.C
data List a
List :: !(ForeignPtr LIST) -> List a
unTCList :: List a -> !(ForeignPtr LIST)
data LIST
c_tclistnew :: IO (Ptr LIST)
c_tclistnew2 :: CInt -> IO (Ptr LIST)
c_tclistdup :: Ptr LIST -> IO (Ptr LIST)
c_tclistdel :: Ptr LIST -> IO ()
tclistFinalizer :: FunPtr (Ptr LIST -> IO ())
c_tclistnum :: Ptr LIST -> IO CInt
c_tclistval :: Ptr LIST -> CInt -> Ptr CInt -> IO (Ptr Word8)
c_tclistval2 :: Ptr LIST -> CInt -> IO CString
c_tclistpush :: Ptr LIST -> Ptr Word8 -> CInt -> IO ()
c_tclistpush2 :: Ptr LIST -> CString -> IO ()
c_tclistpop :: Ptr LIST -> Ptr CInt -> IO (Ptr Word8)
c_tclistpop2 :: Ptr LIST -> IO CString
c_tclistunshift :: Ptr LIST -> Ptr Word8 -> CInt -> IO ()
c_tclistunshift2 :: Ptr LIST -> Ptr Word8 -> IO ()
c_tclistshift :: Ptr LIST -> Ptr CInt -> IO (Ptr Word8)
c_tclistshift2 :: Ptr LIST -> IO CString
c_tclistinsert :: Ptr LIST -> CInt -> Ptr Word8 -> CInt -> IO ()
c_tclistinsert2 :: Ptr LIST -> CInt -> Ptr Word8 -> IO ()
c_tclistremove :: Ptr LIST -> CInt -> Ptr CInt -> IO (Ptr Word8)
c_tclistremove2 :: Ptr LIST -> CInt -> IO CString
c_tclistover :: Ptr LIST -> CInt -> Ptr Word8 -> CInt -> IO ()
c_tclistover2 :: Ptr LIST -> CInt -> CString -> IO ()
c_tclistsort :: Ptr LIST -> IO ()
c_tclistlsearch :: Ptr LIST -> Ptr Word8 -> CInt -> IO CInt
c_tclistbsearch :: Ptr LIST -> Ptr Word8 -> CInt -> IO CInt
c_tclistclear :: Ptr LIST -> IO ()
c_tclistdump :: Ptr LIST -> Ptr CInt -> IO (Ptr Word8)
c_tclistload :: Ptr Word8 -> CInt -> IO (Ptr LIST)

module Database.TokyoCabinet.ADB.C
data ADB'
c_tcadbnew :: IO (Ptr ADB')
c_tcadbdel :: Ptr ADB' -> IO ()
tcadbFinalizer :: FunPtr (Ptr ADB' -> IO ())
c_tcadbopen :: Ptr ADB' -> CString -> IO Bool
c_tcadbclose :: Ptr ADB' -> IO Bool
c_tcadbput :: Ptr ADB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tcadbput2 :: Ptr ADB' -> CString -> CString -> IO Bool
c_tcadbputkeep :: Ptr ADB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tcadbputkeep2 :: Ptr ADB' -> CString -> CString -> IO Bool
c_tcadbputcat :: Ptr ADB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tcadbputcat2 :: Ptr ADB' -> CString -> CString -> IO Bool
c_tcadbout :: Ptr ADB' -> Ptr Word8 -> CInt -> IO Bool
c_tcadbout2 :: Ptr ADB' -> CString -> IO Bool
c_tcadbget :: Ptr ADB' -> Ptr Word8 -> CInt -> Ptr CInt -> IO (Ptr Word8)
c_tcadbget2 :: Ptr ADB' -> CString -> IO CString
c_tcadbvsiz :: Ptr ADB' -> Ptr Word8 -> CInt -> IO CInt
c_tcadbvsiz2 :: Ptr ADB' -> CString -> IO CInt
c_tcadbiterinit :: Ptr ADB' -> IO Bool
c_tcadbiternext :: Ptr ADB' -> Ptr CInt -> IO (Ptr Word8)
c_tcadbiternext2 :: Ptr ADB' -> IO CString
c_tcadbfwmkeys :: Ptr ADB' -> Ptr Word8 -> CInt -> CInt -> IO (Ptr LIST)
c_tcadbfwmkeys2 :: Ptr ADB' -> CString -> CInt -> IO (Ptr LIST)
c_tcadbaddint :: Ptr ADB' -> Ptr Word8 -> CInt -> CInt -> IO CInt
c_tcadbadddouble :: Ptr ADB' -> Ptr Word8 -> CInt -> CDouble -> IO CDouble
c_tcadbsync :: Ptr ADB' -> IO Bool
c_tcadboptimize :: Ptr ADB' -> CString -> IO Bool
c_tcadbvanish :: Ptr ADB' -> IO Bool
c_tcadbcopy :: Ptr ADB' -> CString -> IO Bool
c_tcadbtranbegin :: Ptr ADB' -> IO Bool
c_tcadbtrancommit :: Ptr ADB' -> IO Bool
c_tcadbtranabort :: Ptr ADB' -> IO Bool
c_tcadbpath :: Ptr ADB' -> IO CString
c_tcadbrnum :: Ptr ADB' -> IO Word64
c_tcadbsize :: Ptr ADB' -> IO Word64
c_tcadbmisc :: Ptr ADB' -> CString -> Ptr LIST -> IO (Ptr LIST)

module Database.TokyoCabinet.BDB.C
data BDB
BDB :: !(ForeignPtr BDB') -> BDB
unTCBDB :: BDB -> !(ForeignPtr BDB')
data OpenMode
OREADER :: OpenMode
OWRITER :: OpenMode
OCREAT :: OpenMode
OTRUNC :: OpenMode
ONOLCK :: OpenMode
OLCKNB :: OpenMode
OTSYNC :: OpenMode
openModeToCInt :: OpenMode -> CInt
combineOpenMode :: [OpenMode] -> CInt
data TuningOption
TLARGE :: TuningOption
TDEFLATE :: TuningOption
TBZIP :: TuningOption
TTCBS :: TuningOption
TEXCODEC :: TuningOption
tuningOptionToWord8 :: TuningOption -> Word8
combineTuningOption :: [TuningOption] -> Word8
type TCCMP' = Ptr CChar -> CInt -> Ptr CChar -> CInt -> Ptr Word8 -> IO CInt
data BDB'
c_tcbdbnew :: IO (Ptr BDB')
c_tcbdbdel :: Ptr BDB' -> IO ()
tcbdbFinalizer :: FunPtr (Ptr BDB' -> IO ())
c_tcbdbecode :: Ptr BDB' -> IO CInt
c_tcbdbsetmutex :: Ptr BDB' -> IO Bool
c_tcbdbsetcmpfunc :: Ptr BDB' -> FunPtr TCCMP' -> IO Bool
c_tcbdbtune :: Ptr BDB' -> Int32 -> Int32 -> Int64 -> Int8 -> Int8 -> Word8 -> IO Bool
c_tcbdbsetcache :: Ptr BDB' -> Int32 -> Int32 -> IO Bool
c_tcbdbsetxmsiz :: Ptr BDB' -> Int64 -> IO Bool
c_tcbdbopen :: Ptr BDB' -> CString -> CInt -> IO Bool
c_tcbdbclose :: Ptr BDB' -> IO Bool
c_tcbdbput :: Ptr BDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tcbdbput2 :: Ptr BDB' -> CString -> CString -> IO Bool
c_tcbdbputkeep :: Ptr BDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tcbdbputkeep2 :: Ptr BDB' -> CString -> CString -> IO Bool
c_tcbdbputcat :: Ptr BDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tcbdbputcat2 :: Ptr BDB' -> CString -> CString -> IO Bool
c_tcbdbputdup :: Ptr BDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tcbdbputdup2 :: Ptr BDB' -> CString -> CString -> IO Bool
c_tcbdbputdup3 :: Ptr BDB' -> Ptr Word8 -> CInt -> Ptr LIST -> IO Bool
c_tcbdbout :: Ptr BDB' -> Ptr Word8 -> CInt -> IO Bool
c_tcbdbout2 :: Ptr BDB' -> CString -> IO Bool
c_tcbdbout3 :: Ptr BDB' -> Ptr Word8 -> CInt -> IO Bool
c_tcbdbget :: Ptr BDB' -> Ptr Word8 -> CInt -> Ptr CInt -> IO (Ptr Word8)
c_tcbdbget2 :: Ptr BDB' -> CString -> IO CString
c_tcbdbget3 :: Ptr BDB' -> Ptr Word8 -> CInt -> Ptr CInt -> IO (Ptr Word8)
c_tcbdbget4 :: Ptr BDB' -> Ptr Word8 -> CInt -> IO (Ptr LIST)
c_tcbdbvnum :: Ptr BDB' -> Ptr Word8 -> CInt -> IO CInt
c_tcbdbvnum2 :: Ptr BDB' -> CString -> IO CInt
c_tcbdbvsiz :: Ptr BDB' -> Ptr Word8 -> CInt -> IO CInt
c_tcbdbvsiz2 :: Ptr BDB' -> CString -> IO CInt
c_tcbdbrange :: Ptr BDB' -> Ptr Word8 -> CInt -> Bool -> Ptr Word8 -> CInt -> Bool -> CInt -> IO (Ptr LIST)
c_tcbdbrange2 :: Ptr BDB' -> CString -> Bool -> CString -> Bool -> CInt -> IO (Ptr LIST)
c_tcbdbfwmkeys :: Ptr BDB' -> Ptr Word8 -> CInt -> CInt -> IO (Ptr LIST)
c_tcbdbfwmkeys2 :: Ptr BDB' -> CString -> CInt -> IO (Ptr LIST)
c_tcbdbaddint :: Ptr BDB' -> Ptr Word8 -> CInt -> CInt -> IO CInt
c_tcbdbadddouble :: Ptr BDB' -> Ptr Word8 -> CInt -> CDouble -> IO CDouble
c_tcbdbsync :: Ptr BDB' -> IO Bool
c_tcbdboptimize :: Ptr BDB' -> Int32 -> Int32 -> Int64 -> Int8 -> Int8 -> Word8 -> IO Bool
c_tcbdbvanish :: Ptr BDB' -> IO Bool
c_tcbdbcopy :: Ptr BDB' -> CString -> IO Bool
c_tcbdbtranbegin :: Ptr BDB' -> IO Bool
c_tcbdbtrancommit :: Ptr BDB' -> IO Bool
c_tcbdbtranabort :: Ptr BDB' -> IO Bool
c_tcbdbpath :: Ptr BDB' -> IO CString
c_tcbdbrnum :: Ptr BDB' -> IO Word64
c_tcbdbfsiz :: Ptr BDB' -> IO Word64
c_tccmplexical :: FunPtr TCCMP'
c_tccmpdecimal :: FunPtr TCCMP'
c_tccmpint32 :: FunPtr TCCMP'
c_tccmpint64 :: FunPtr TCCMP'
mkCMP :: TCCMP' -> IO (FunPtr TCCMP')
instance Eq OpenMode
instance Ord OpenMode
instance Show OpenMode
instance Eq TuningOption
instance Ord TuningOption
instance Show TuningOption

module Database.TokyoCabinet.BDB.Cursor.C
data CursorPutMode
CPCURRENT :: CursorPutMode
CPBEFORE :: CursorPutMode
CPAFTER :: CursorPutMode
cpToCInt :: CursorPutMode -> CInt
data CUR
c_tcbdbcurnew :: Ptr BDB' -> IO (Ptr CUR)
c_tcbdbcurdel :: Ptr CUR -> IO ()
tcbdbcurFinalizer :: FunPtr (Ptr CUR -> IO ())
c_tcbdbcurfirst :: Ptr CUR -> IO Bool
c_tcbdbcurlast :: Ptr CUR -> IO Bool
c_tcbdbcurjump :: Ptr CUR -> Ptr Word8 -> CInt -> IO Bool
c_tcbdbcurjump2 :: Ptr CUR -> CString -> IO Bool
c_tcbdbcurprev :: Ptr CUR -> IO Bool
c_tcbdbcurnext :: Ptr CUR -> IO Bool
c_tcbdbcurput :: Ptr CUR -> Ptr Word8 -> CInt -> CInt -> IO Bool
c_tcbdbcurput2 :: Ptr CUR -> CString -> CInt -> IO Bool
c_tcbdbcurout :: Ptr CUR -> IO Bool
c_tcbdbcurkey :: Ptr CUR -> Ptr CInt -> IO (Ptr Word8)
c_tcbdbcurkey2 :: Ptr CUR -> IO CString
c_tcbdbcurkey3 :: Ptr CUR -> Ptr CInt -> IO (Ptr Word8)
c_tcbdbcurval :: Ptr CUR -> Ptr CInt -> IO (Ptr Word8)
c_tcbdbcurval2 :: Ptr CUR -> IO CString
c_tcbdbcurval3 :: Ptr CUR -> Ptr CInt -> IO (Ptr Word8)
instance Eq CursorPutMode
instance Ord CursorPutMode
instance Show CursorPutMode

module Database.TokyoCabinet.FDB.C
data OpenMode
OREADER :: OpenMode
OWRITER :: OpenMode
OCREAT :: OpenMode
OTRUNC :: OpenMode
ONOLCK :: OpenMode
OLCKNB :: OpenMode
openModeToCInt :: OpenMode -> CInt
combineOpenMode :: [OpenMode] -> CInt
data ID
IDMIN :: ID
IDPREV :: ID
IDMAX :: ID
IDNEXT :: ID
ID :: Int64 -> ID
unID :: ID -> Int64
data FDB'
c_tcfdberrmsg :: CInt -> CString
c_tcfdbnew :: IO (Ptr FDB')
c_tcfdbdel :: Ptr FDB' -> IO ()
tcfdbFinalizer :: FunPtr (Ptr FDB' -> IO ())
c_tcfdbecode :: Ptr FDB' -> IO CInt
c_tcfdbsetmutex :: Ptr FDB' -> IO Bool
c_tcfdbtune :: Ptr FDB' -> Int32 -> Int64 -> IO Bool
c_tcfdbopen :: Ptr FDB' -> CString -> CInt -> IO Bool
c_tcfdbclose :: Ptr FDB' -> IO Bool
c_tcfdbput :: Ptr FDB' -> Int64 -> Ptr Word8 -> CInt -> IO Bool
c_tcfdbput2 :: Ptr FDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tcfdbput3 :: Ptr FDB' -> CString -> CString -> IO Bool
c_tcfdbputkeep :: Ptr FDB' -> Int64 -> Ptr Word8 -> CInt -> IO Bool
c_tcfdbputkeep2 :: Ptr FDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tcfdbputkeep3 :: Ptr FDB' -> CString -> CString -> IO Bool
c_tcfdbputcat :: Ptr FDB' -> Int64 -> Ptr Word8 -> CInt -> IO Bool
c_tcfdbputcat2 :: Ptr FDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tcfdbputcat3 :: Ptr FDB' -> CString -> CString -> IO Bool
c_tcfdbout :: Ptr FDB' -> Int64 -> IO Bool
c_tcfdbout2 :: Ptr FDB' -> Ptr Word8 -> CInt -> IO Bool
c_tcfdbout3 :: Ptr FDB' -> CString -> IO Bool
c_tcfdbget :: Ptr FDB' -> Int64 -> Ptr CInt -> IO (Ptr Word8)
c_tcfdbget2 :: Ptr FDB' -> Ptr Word8 -> CInt -> Ptr CInt -> IO (Ptr Word8)
c_tcfdbget3 :: Ptr FDB' -> CString -> IO CString
c_tcfdbget4 :: Ptr FDB' -> Int64 -> Ptr Word8 -> CInt -> IO CInt
c_tcfdbvsiz :: Ptr FDB' -> Int64 -> IO CInt
c_tcfdbvsiz2 :: Ptr FDB' -> Ptr Word8 -> CInt -> IO CInt
c_tcfdbvsiz3 :: Ptr FDB' -> CString -> IO CInt
c_tcfdbiterinit :: Ptr FDB' -> IO Bool
c_tcfdbiternext :: Ptr FDB' -> IO Int64
c_tcfdbiternext2 :: Ptr FDB' -> Ptr CInt -> IO (Ptr Word8)
c_tcfdbiternext3 :: Ptr FDB' -> IO CString
c_tcfdbrange :: Ptr FDB' -> Int64 -> Int64 -> CInt -> Ptr CInt -> IO (Ptr Int64)
c_tcfdbrange2 :: Ptr FDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> CInt -> IO (Ptr LIST)
c_tcfdbrange3 :: Ptr FDB' -> CString -> CString -> CInt -> IO (Ptr LIST)
c_tcfdbrange4 :: Ptr FDB' -> Ptr Word8 -> CInt -> CInt -> IO (Ptr LIST)
c_tcfdbrange5 :: Ptr FDB' -> Ptr Word8 -> CInt -> IO (Ptr LIST)
c_tcfdbaddint :: Ptr FDB' -> Int64 -> CInt -> IO CInt
c_tcfdbadddouble :: Ptr FDB' -> Int64 -> CDouble -> IO CDouble
c_tcfdbsync :: Ptr FDB' -> IO Bool
c_tcfdboptimize :: Ptr FDB' -> Int32 -> Int64 -> IO Bool
c_tcfdbvanish :: Ptr FDB' -> IO Bool
c_tcfdbcopy :: Ptr FDB' -> CString -> IO Bool
c_tcfdbpath :: Ptr FDB' -> IO CString
c_tcfdbrnum :: Ptr FDB' -> IO Word64
c_tcfdbfsiz :: Ptr FDB' -> IO Word64
instance Eq OpenMode
instance Ord OpenMode
instance Show OpenMode
instance Eq ID
instance Ord ID
instance Show ID

module Database.TokyoCabinet.Map.C
data Map k v
Map :: !(ForeignPtr MAP) -> Map k v
unMap :: Map k v -> !(ForeignPtr MAP)
data MAP
c_tcmapnew :: IO (Ptr MAP)
c_tcmapnew2 :: Word32 -> IO (Ptr MAP)
c_tcmapdup :: Ptr MAP -> IO (Ptr MAP)
c_tcmapdel :: Ptr MAP -> IO ()
tcmapFinalizer :: FunPtr (Ptr MAP -> IO ())
c_tcmapput :: Ptr MAP -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO ()
c_tcmapput2 :: Ptr MAP -> CString -> CString -> IO ()
c_tcmapputkeep :: Ptr MAP -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tcmapputkeep2 :: Ptr MAP -> CString -> CString -> IO Bool
c_tcmapputcat :: Ptr MAP -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO ()
c_tcmapputcat2 :: Ptr MAP -> CString -> CString -> IO ()
c_tcmapout :: Ptr MAP -> Ptr Word8 -> CInt -> IO Bool
c_tcmapout2 :: Ptr MAP -> CString -> IO Bool
c_tcmapget :: Ptr MAP -> Ptr Word8 -> CInt -> Ptr CInt -> IO (Ptr Word8)
c_tcmapget2 :: Ptr MAP -> CString -> IO CString
c_tcmapmove :: Ptr MAP -> Ptr Word8 -> CInt -> Bool -> IO Bool
c_tcmapmove2 :: Ptr MAP -> CString -> Bool -> IO Bool
c_tcmapiterinit :: Ptr MAP -> IO ()
c_tcmapiternext :: Ptr MAP -> Ptr CInt -> IO (Ptr Word8)
c_tcmapiternext2 :: Ptr MAP -> IO CString
c_tcmaprnum :: Ptr MAP -> IO Word64
c_tcmapmsiz :: Ptr MAP -> IO Word64
c_tcmapkeys :: Ptr MAP -> IO (Ptr LIST)
c_tcmapvals :: Ptr MAP -> IO (Ptr LIST)
c_tcmapaddint :: Ptr MAP -> Ptr Word8 -> CInt -> CInt -> IO CInt
c_tcmapadddouble :: Ptr MAP -> Ptr Word8 -> CInt -> CDouble -> IO CDouble
c_tcmapclear :: Ptr MAP -> IO ()
c_tcmapcutfront :: Ptr MAP -> CInt -> IO ()
c_tcmapdump :: Ptr MAP -> Ptr CInt -> IO (Ptr Word8)
c_tcmapload :: Ptr Word8 -> CInt -> IO (Ptr MAP)

module Database.TokyoCabinet.TDB.C

-- | Represents open mode
data OpenMode

-- | read only mode
OREADER :: OpenMode

-- | write mode
OWRITER :: OpenMode

-- | if this value is included in open mode list, `open function' creates a
--   new database if not exist.
OCREAT :: OpenMode

-- | creates a new database regardless if one exists
OTRUNC :: OpenMode

-- | open the database file without file locking
ONOLCK :: OpenMode

-- | open the database file with locking performed without blocking.
OLCKNB :: OpenMode

-- | every transaction synchronizes updated contents with the device
OTSYNC :: OpenMode
data TuningOption
TLARGE :: TuningOption
TDEFLATE :: TuningOption
TBZIP :: TuningOption
TTCBS :: TuningOption
TEXCODEC :: TuningOption

-- | Represents the index type
data IndexType

-- | for lexical string
ITLEXICAL :: IndexType

-- | for decimal string
ITDECIMAL :: IndexType

-- | the index is optimized
ITOPT :: IndexType

-- | the index is removed
ITVOID :: IndexType

-- | if the index exists, setindex function merely returns failure
ITKEEP :: IndexType -> IndexType
openModeToCInt :: OpenMode -> CInt
tuningOptionToWord8 :: TuningOption -> Word8
indexTypeToCInt :: IndexType -> CInt
combineOpenMode :: [OpenMode] -> CInt
combineTuningOption :: [TuningOption] -> Word8
data TDB
TDB :: !(ForeignPtr TDB') -> TDB
unTCTDB :: TDB -> !(ForeignPtr TDB')
data TDB'
c_tctdbnew :: IO (Ptr TDB')
c_tctdbdel :: Ptr TDB' -> IO ()
tctdbFinalizer :: FunPtr (Ptr TDB' -> IO ())
c_tctdbecode :: Ptr TDB' -> IO CInt
c_tctdbsetmutex :: Ptr TDB' -> IO Bool
c_tctdbtune :: Ptr TDB' -> Int64 -> Int8 -> Int8 -> Word8 -> IO Bool
c_tctdbsetcache :: Ptr TDB' -> Int32 -> Int32 -> Int32 -> IO Bool
c_tctdbsetxmsiz :: Ptr TDB' -> Int64 -> IO Bool
c_tctdbopen :: Ptr TDB' -> CString -> CInt -> IO Bool
c_tctdbclose :: Ptr TDB' -> IO Bool
c_tctdbput :: Ptr TDB' -> Ptr Word8 -> CInt -> Ptr MAP -> IO Bool
c_tctdbput2 :: Ptr TDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tctdbput3 :: Ptr TDB' -> CString -> CString -> IO Bool
c_tctdbputkeep :: Ptr TDB' -> Ptr Word8 -> CInt -> Ptr MAP -> IO Bool
c_tctdbputkeep2 :: Ptr TDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tctdbputkeep3 :: Ptr TDB' -> CString -> CString -> IO Bool
c_tctdbputcat :: Ptr TDB' -> Ptr Word8 -> CInt -> Ptr MAP -> IO Bool
c_tctdbputcat2 :: Ptr TDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tctdbputcat3 :: Ptr TDB' -> CString -> CString -> IO Bool
c_tctdbout :: Ptr TDB' -> Ptr Word8 -> CInt -> IO Bool
c_tctdbout2 :: Ptr TDB' -> CString -> IO Bool
c_tctdbget :: Ptr TDB' -> Ptr Word8 -> CInt -> IO (Ptr MAP)
c_tctdbget2 :: Ptr TDB' -> Ptr Word8 -> CInt -> Ptr CInt -> IO (Ptr Word8)
c_tctdbget3 :: Ptr TDB' -> CString -> IO CString
c_tctdbvsiz :: Ptr TDB' -> Ptr Word8 -> CInt -> IO CInt
c_tctdbvsiz2 :: Ptr TDB' -> CString -> IO CInt
c_tctdbiterinit :: Ptr TDB' -> IO Bool
c_tctdbiternext :: Ptr TDB' -> Ptr CInt -> IO (Ptr Word8)
c_tctdbiternext2 :: Ptr TDB' -> IO CString
c_tctdbfwmkeys :: Ptr TDB' -> Ptr Word8 -> CInt -> CInt -> IO (Ptr LIST)
c_tctdbfwmkeys2 :: Ptr TDB' -> CString -> CInt -> IO (Ptr LIST)
c_tctdbaddint :: Ptr TDB' -> Ptr Word8 -> CInt -> CInt -> IO CInt
c_tctdbadddouble :: Ptr TDB' -> Ptr Word8 -> CInt -> CDouble -> IO CDouble
c_tctdbsync :: Ptr TDB' -> IO Bool
c_tctdboptimize :: Ptr TDB' -> Int64 -> Int8 -> Int8 -> Word8 -> IO Bool
c_tctdbvanish :: Ptr TDB' -> IO Bool
c_tctdbcopy :: Ptr TDB' -> CString -> IO Bool
c_tctdbtranbegin :: Ptr TDB' -> IO Bool
c_tctdbtrancommit :: Ptr TDB' -> IO Bool
c_tctdbtranabort :: Ptr TDB' -> IO Bool
c_tctdbpath :: Ptr TDB' -> IO CString
c_tctdbrnum :: Ptr TDB' -> IO Word64
c_tctdbfsiz :: Ptr TDB' -> IO Word64
c_tctdbsetindex :: Ptr TDB' -> CString -> CInt -> IO Bool
c_tctdbgenuid :: Ptr TDB' -> IO Int64
instance Eq OpenMode
instance Ord OpenMode
instance Show OpenMode
instance Eq TuningOption
instance Ord TuningOption
instance Show TuningOption
instance Eq IndexType
instance Ord IndexType
instance Show IndexType

module Database.TokyoCabinet.TDB.Query.C
data Condition
QCSTREQ :: Condition
QCSTRINC :: Condition
QCSTRBW :: Condition
QCSTREW :: Condition
QCSTRAND :: Condition
QCSTROR :: Condition
QCSTROREQ :: Condition
QCSTRRX :: Condition
QCNUMEQ :: Condition
QCNUMGT :: Condition
QCNUMGE :: Condition
QCNUMLT :: Condition
QCNUMLE :: Condition
QCNUMBT :: Condition
QCNUMOREQ :: Condition
QCNEGATE :: Condition -> Condition
QCNOIDX :: Condition -> Condition
data OrderType
QOSTRASC :: OrderType
QOSTRDESC :: OrderType
QONUMASC :: OrderType
QONUMDESC :: OrderType
data PostTreatment m k v
QPPUT :: (m k v) -> PostTreatment m k v
QPOUT :: PostTreatment m k v
QPNOP :: PostTreatment m k v
QPSTOP :: PostTreatment m k v
condToCInt :: Condition -> CInt
orderToCInt :: OrderType -> CInt
ptToCInt :: PostTreatment m k v -> CInt
data TDBQRY
TDBQRY :: !(ForeignPtr QRY) -> TDB -> TDBQRY
unTDBQRY :: TDBQRY -> !(ForeignPtr QRY)
unTDBOBJ :: TDBQRY -> TDB
data QRY
c_tctdbqrynew :: Ptr TDB' -> IO (Ptr QRY)
c_tctdbqrydel :: Ptr QRY -> IO ()
tctdbqryFinalizer :: FunPtr (Ptr QRY -> IO ())
c_tctdbqryaddcond :: Ptr QRY -> CString -> CInt -> CString -> IO ()
c_tctdbqrysetorder :: Ptr QRY -> CString -> CInt -> IO ()
c_tctdbqrysetlimit :: Ptr QRY -> CInt -> CInt -> IO ()
c_tctdbqrysearch :: Ptr QRY -> IO (Ptr LIST)
c_tctdbqrysearchout :: Ptr QRY -> IO Bool
c_tctdbqryhint :: Ptr QRY -> IO CString
type TDBQRYPROC' = Ptr Word8 -> CInt -> Ptr MAP -> Ptr Word8 -> IO CInt
c_tctdbqryproc :: Ptr QRY -> FunPtr TDBQRYPROC' -> Ptr Word8 -> IO Bool
mkProc :: TDBQRYPROC' -> IO (FunPtr TDBQRYPROC')
instance Eq Condition
instance Ord Condition
instance Show Condition
instance Eq OrderType
instance Ord OrderType
instance Show OrderType
instance Eq (m k v) => Eq (PostTreatment m k v)
instance Ord (m k v) => Ord (PostTreatment m k v)
instance Show (m k v) => Show (PostTreatment m k v)

module Database.TokyoCabinet.HDB.C
data OpenMode
OREADER :: OpenMode
OWRITER :: OpenMode
OCREAT :: OpenMode
OTRUNC :: OpenMode
ONOLCK :: OpenMode
OLCKNB :: OpenMode
OTSYNC :: OpenMode
openModeToCInt :: OpenMode -> CInt
combineOpenMode :: [OpenMode] -> CInt
data TuningOption
TLARGE :: TuningOption
TDEFLATE :: TuningOption
TBZIP :: TuningOption
TTCBS :: TuningOption
TEXCODEC :: TuningOption
tuningOptionToWord8 :: TuningOption -> Word8
combineTuningOption :: [TuningOption] -> Word8
data HDB'
tchdbFinalizer :: FunPtr (Ptr HDB' -> IO ())
c_tchdbnew :: IO (Ptr HDB')
c_tchdbdel :: Ptr HDB' -> IO ()
c_tchdbecode :: Ptr HDB' -> IO CInt
c_tchdbtune :: Ptr HDB' -> Int64 -> Int8 -> Int8 -> Word8 -> IO Bool
c_tchdbsetcache :: Ptr HDB' -> Int32 -> IO Bool
c_tchdbsetxmsiz :: Ptr HDB' -> Int64 -> IO Bool
c_tchdbopen :: Ptr HDB' -> CString -> CInt -> IO Bool
c_tchdbclose :: Ptr HDB' -> IO Bool
c_tchdbput :: Ptr HDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tchdbput2 :: Ptr HDB' -> CString -> CString -> IO Bool
c_tchdbputkeep :: Ptr HDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tchdbputkeep2 :: Ptr HDB' -> CString -> CString -> IO Bool
c_tchdbputcat :: Ptr HDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tchdbputcat2 :: Ptr HDB' -> CString -> CString -> IO Bool
c_tchdbputasync :: Ptr HDB' -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool
c_tchdbout :: Ptr HDB' -> Ptr Word8 -> CInt -> IO Bool
c_tchdbout2 :: Ptr HDB' -> CString -> IO Bool
c_tchdbget :: Ptr HDB' -> Ptr Word8 -> CInt -> Ptr CInt -> IO (Ptr Word8)
c_tchdbget2 :: Ptr HDB' -> CString -> IO CString
c_tchdbvsiz :: Ptr HDB' -> Ptr Word8 -> CInt -> IO CInt
c_tchdbiterinit :: Ptr HDB' -> IO Bool
c_tchdbiternext :: Ptr HDB' -> Ptr CInt -> IO (Ptr Word8)
c_tchdbiternext2 :: Ptr HDB' -> IO CString
c_tchdbfwmkeys :: Ptr HDB' -> Ptr Word8 -> CInt -> CInt -> IO (Ptr LIST)
c_tchdbaddint :: Ptr HDB' -> Ptr Word8 -> CInt -> CInt -> IO CInt
c_tchdbadddouble :: Ptr HDB' -> Ptr Word8 -> CInt -> CDouble -> IO CDouble
c_tchdbsync :: Ptr HDB' -> IO Bool
c_tchdboptimize :: Ptr HDB' -> Int64 -> Int8 -> Int8 -> Word8 -> IO Bool
c_tchdbvanish :: Ptr HDB' -> IO Bool
c_tchdbcopy :: Ptr HDB' -> CString -> IO Bool
c_tchdbtranbegin :: Ptr HDB' -> IO Bool
c_tchdbtrancommit :: Ptr HDB' -> IO Bool
c_tchdbtranabort :: Ptr HDB' -> IO Bool
c_tchdbpath :: Ptr HDB' -> IO CString
c_tchdbrnum :: Ptr HDB' -> IO Word64
c_tchdbfsiz :: Ptr HDB' -> IO Word64
instance Eq OpenMode
instance Ord OpenMode
instance Show OpenMode
instance Eq TuningOption
instance Ord TuningOption
instance Show TuningOption

module Database.TokyoCabinet.Error

-- | Represents error
data ECODE

-- | success
ESUCCESS :: ECODE

-- | threading error
ETHREAD :: ECODE

-- | invalid operation
EINVALID :: ECODE

-- | file not found
ENOFILE :: ECODE

-- | no permission
ENOPERM :: ECODE

-- | invalid meta data
EMETA :: ECODE

-- | invalid record header
ERHEAD :: ECODE

-- | open error
EOPEN :: ECODE

-- | close error
ECLOSE :: ECODE

-- | trunc error
ETRUNC :: ECODE

-- | sync error
ESYNC :: ECODE

-- | stat error
ESTAT :: ECODE

-- | seek error
ESEEK :: ECODE

-- | read error
EREAD :: ECODE

-- | write error
EWRITE :: ECODE

-- | mmap error
EMMAP :: ECODE

-- | lock error
ELOCK :: ECODE

-- | unlink error
EUNLINK :: ECODE

-- | rename error
ERENAME :: ECODE

-- | mkdir error
EMKDIR :: ECODE

-- | rmdir error
ERMDIR :: ECODE

-- | existing record
EKEEP :: ECODE

-- | no record found
ENOREC :: ECODE

-- | miscellaneous error
EMISC :: ECODE

-- | Convert error code to message string.
errmsg :: ECODE -> String
cintToError :: CInt -> ECODE
errorToCInt :: ECODE -> CInt
cINT_MIN :: CInt
instance Eq ECODE
instance Ord ECODE
instance Show ECODE

module Database.TokyoCabinet.FDB.Key
class Key a
toID :: Key a => a -> ID
fromID :: Key a => ID -> a
data ID
IDMIN :: ID
IDPREV :: ID
IDMAX :: ID
IDNEXT :: ID
ID :: Int64 -> ID
instance Key String
instance Key ID
instance Key Word64
instance Key Word32
instance Key Word16
instance Key Word8
instance Key Int64
instance Key Int32
instance Key Int16
instance Key Int8
instance Key Int

module Database.TokyoCabinet.Storable
type PtrLen = (Ptr Word8, CInt)
liftPL :: (a -> (CStringLen -> IO b) -> IO b) -> a -> (PtrLen -> IO b) -> IO b
class (Show a, Read a) => Storable a where toInt64 = read . show toInt64L = read . concatMap show fromString = read fromStringL = (: []) . fromString withPtrLenL = undefined peekPtrLenL = undefined
withPtrLen :: Storable a => a -> (PtrLen -> IO b) -> IO b
withPtrLenL :: Storable a => [a] -> (PtrLen -> IO b) -> IO b
peekPtrLenL :: Storable a => PtrLen -> a -> IO [a]
peekPtrLen :: Storable a => PtrLen -> IO a
toInt64 :: Storable a => a -> Int64
toInt64L :: Storable a => [a] -> Int64
fromString :: Storable a => String -> a
fromStringL :: Storable a => String -> [a]
withPtrLenForFStorable :: Storable a => a -> (PtrLen -> IO b) -> IO b
peekPtrLenForFStorable :: Storable a => PtrLen -> IO a
withPtrLenLForFStorable :: Storable a => [a] -> (PtrLen -> IO b) -> IO b
peekPtrLenLForFStorable :: Storable a => PtrLen -> a -> IO [a]
instance (Storable a, Storable a) => Storable [a]
instance Storable Word64
instance Storable Word32
instance Storable Word16
instance Storable Word8
instance Storable Int64
instance Storable Int32
instance Storable Int16
instance Storable Int8
instance Storable Float
instance Storable CFloat
instance Storable Double
instance Storable CDouble
instance Storable Int
instance Storable CInt
instance Storable Char
instance Storable ByteString
instance Storable ByteString

module Database.TokyoCabinet.Sequence
class Sequence a
withList :: (Sequence a, Storable s) => a s -> (Ptr LIST -> IO b) -> IO b
peekList' :: (Sequence a, Storable s) => Ptr LIST -> IO (a s)
empty :: (Sequence a, Storable s) => IO (a s)
smap :: (Sequence a, Storable s1, Storable s2) => (s1 -> s2) -> a s1 -> IO (a s2)
instance Sequence []
instance Sequence List

module Database.TokyoCabinet.BDB.Cursor
data CursorPutMode
CPCURRENT :: CursorPutMode
CPBEFORE :: CursorPutMode
CPAFTER :: CursorPutMode
new :: BDB -> IO BDBCUR
delete :: BDBCUR -> IO ()
first :: BDBCUR -> IO Bool
last :: BDBCUR -> IO Bool
jump :: Storable k => BDBCUR -> k -> IO Bool
prev :: BDBCUR -> IO Bool
next :: BDBCUR -> IO Bool
put :: Storable v => BDBCUR -> v -> CursorPutMode -> IO Bool
out :: BDBCUR -> IO Bool
key :: Storable k => BDBCUR -> IO (Maybe k)
val :: Storable v => BDBCUR -> IO (Maybe v)
data BDBCUR

-- | Interface to Fixed-length DBM. See also,
--   http://tokyocabinet.sourceforge.net/spex-en.html#tcfdbapi for
--   details
module Database.TokyoCabinet.FDB
data FDB

-- | Represents error
data ECODE

-- | success
ESUCCESS :: ECODE

-- | threading error
ETHREAD :: ECODE

-- | invalid operation
EINVALID :: ECODE

-- | file not found
ENOFILE :: ECODE

-- | no permission
ENOPERM :: ECODE

-- | invalid meta data
EMETA :: ECODE

-- | invalid record header
ERHEAD :: ECODE

-- | open error
EOPEN :: ECODE

-- | close error
ECLOSE :: ECODE

-- | trunc error
ETRUNC :: ECODE

-- | sync error
ESYNC :: ECODE

-- | stat error
ESTAT :: ECODE

-- | seek error
ESEEK :: ECODE

-- | read error
EREAD :: ECODE

-- | write error
EWRITE :: ECODE

-- | mmap error
EMMAP :: ECODE

-- | lock error
ELOCK :: ECODE

-- | unlink error
EUNLINK :: ECODE

-- | rename error
ERENAME :: ECODE

-- | mkdir error
EMKDIR :: ECODE

-- | rmdir error
ERMDIR :: ECODE

-- | existing record
EKEEP :: ECODE

-- | no record found
ENOREC :: ECODE

-- | miscellaneous error
EMISC :: ECODE
data OpenMode
OREADER :: OpenMode
OWRITER :: OpenMode
OCREAT :: OpenMode
OTRUNC :: OpenMode
ONOLCK :: OpenMode
OLCKNB :: OpenMode
data ID
IDMIN :: ID
IDPREV :: ID
IDMAX :: ID
IDNEXT :: ID
ID :: Int64 -> ID

-- | Create a Fixed-length database object.
new :: IO FDB

-- | Free FDB resource forcibly. FDB is kept by ForeignPtr, so Haskell
--   runtime GC cleans up memory for almost situation. Most always, you
--   don't need to call this. After call this, you must not touch FDB
--   object. Its behavior is undefined.
delete :: FDB -> IO ()

-- | Return the last happened error code.
ecode :: FDB -> IO ECODE

-- | Convert error code to message string.
errmsg :: ECODE -> String

-- | Set the tuning parameters.
tune :: FDB -> Int32 -> Int64 -> IO Bool

-- | Open FDB database file.
open :: FDB -> String -> [OpenMode] -> IO Bool

-- | Close the database file.
close :: FDB -> IO Bool

-- | Stora a record (key-value pair) on FDB. Key type must be instance of
--   Key class. Value type must be instance of Storable.
put :: (Key k, Storable v) => FDB -> k -> v -> IO Bool

-- | Store a new record. If a record with the same key exists in the
--   database, this function has no effect.
putkeep :: (Key k, Storable v) => FDB -> k -> v -> IO Bool

-- | Concatenate a value at the end of the existing record.
putcat :: (Key k, Storable v) => FDB -> k -> v -> IO Bool

-- | Delete a record.
out :: Key k => FDB -> k -> IO Bool

-- | Return the value of record.
get :: (Key k, Storable v) => FDB -> k -> IO (Maybe v)

-- | Return the byte size of value in a record.
vsiz :: Key k => FDB -> k -> IO (Maybe Int)

-- | Initialize the iterator of a FDB object.
iterinit :: FDB -> IO Bool

-- | Return the next key of the iterator of a FDB object.
iternext :: Key k => FDB -> IO (Maybe k)

-- | Return list of keys in the specified range.
range :: (Key k1, Key k2) => FDB -> k1 -> k1 -> Int -> IO [k2]

-- | Return list of forward matched keys.
fwmkeys :: (Storable k1, Storable k2, Sequence q) => FDB -> k1 -> Int -> IO (q k2)

-- | Increment the corresponding value. (The value specified by a key is
--   treated as integer.)
addint :: Key k => FDB -> k -> Int -> IO (Maybe Int)

-- | Increment the corresponding value. (The value specified by a key is
--   treated as double.)
adddouble :: Key k => FDB -> k -> Double -> IO (Maybe Double)

-- | Synchronize updated contents of a database object with the file and
--   the device.
sync :: FDB -> IO Bool

-- | Optimize the file of a Hash database object.
optimize :: FDB -> Int32 -> Int64 -> IO Bool

-- | Delete all records.
vanish :: FDB -> IO Bool

-- | Copy the database file.
copy :: FDB -> String -> IO Bool

-- | Return the file path of currentry opened database.
path :: FDB -> IO (Maybe String)

-- | Return the number of records in the database.
rnum :: FDB -> IO Word64

-- | Return the size of the database file.
fsiz :: FDB -> IO Word64

-- | Interface to Hash based DBM. See also,
--   http://tokyocabinet.sourceforge.net/spex-en.html#tchdbapi for
--   details
module Database.TokyoCabinet.HDB
data HDB

-- | Represents error
data ECODE

-- | success
ESUCCESS :: ECODE

-- | threading error
ETHREAD :: ECODE

-- | invalid operation
EINVALID :: ECODE

-- | file not found
ENOFILE :: ECODE

-- | no permission
ENOPERM :: ECODE

-- | invalid meta data
EMETA :: ECODE

-- | invalid record header
ERHEAD :: ECODE

-- | open error
EOPEN :: ECODE

-- | close error
ECLOSE :: ECODE

-- | trunc error
ETRUNC :: ECODE

-- | sync error
ESYNC :: ECODE

-- | stat error
ESTAT :: ECODE

-- | seek error
ESEEK :: ECODE

-- | read error
EREAD :: ECODE

-- | write error
EWRITE :: ECODE

-- | mmap error
EMMAP :: ECODE

-- | lock error
ELOCK :: ECODE

-- | unlink error
EUNLINK :: ECODE

-- | rename error
ERENAME :: ECODE

-- | mkdir error
EMKDIR :: ECODE

-- | rmdir error
ERMDIR :: ECODE

-- | existing record
EKEEP :: ECODE

-- | no record found
ENOREC :: ECODE

-- | miscellaneous error
EMISC :: ECODE
data OpenMode
OREADER :: OpenMode
OWRITER :: OpenMode
OCREAT :: OpenMode
OTRUNC :: OpenMode
ONOLCK :: OpenMode
OLCKNB :: OpenMode
OTSYNC :: OpenMode
data TuningOption
TLARGE :: TuningOption
TDEFLATE :: TuningOption
TBZIP :: TuningOption
TTCBS :: TuningOption
TEXCODEC :: TuningOption

-- | Create a Hash database object.
new :: IO HDB

-- | Free HDB resource forcibly. HDB is kept by ForeignPtr, so Haskell
--   runtime GC cleans up memory for almost situation. Most always, you
--   don't need to call this. After call this, you must not touch HDB
--   object. Its behavior is undefined.
delete :: HDB -> IO ()

-- | Return the last happened error code.
ecode :: HDB -> IO ECODE

-- | Convert error code to message string.
errmsg :: ECODE -> String

-- | Set the tuning parameters.
tune :: HDB -> Int64 -> Int8 -> Int8 -> [TuningOption] -> IO Bool

-- | Set the caching parameters.
setcache :: HDB -> Int32 -> IO Bool

-- | Set the size of extra mapped memory.
setxmsiz :: HDB -> Int64 -> IO Bool

-- | Open a database file.
open :: HDB -> String -> [OpenMode] -> IO Bool

-- | Close the database file.
close :: HDB -> IO Bool

-- | Stora a record (key-value pair) on HDB. Key and value type must be
--   instance of Storable class. Usually, we can use String,
--   ByteString for key, String, ByteString,
--   Int, Double for value.
put :: (Storable k, Storable v) => HDB -> k -> v -> IO Bool

-- | Store a new record. If a record with the same key exists in the
--   database, this function has no effect.
putkeep :: (Storable k, Storable v) => HDB -> k -> v -> IO Bool

-- | Concatenate a value at the end of the existing record.
putcat :: (Storable k, Storable v) => HDB -> k -> v -> IO Bool

-- | Store a record into a hash database object in asynchronous fashion.
putasync :: (Storable k, Storable v) => HDB -> k -> v -> IO Bool

-- | Delete a record.
out :: Storable k => HDB -> k -> IO Bool

-- | Return the value of record.
get :: (Storable k, Storable v) => HDB -> k -> IO (Maybe v)

-- | Return the byte size of value in a record.
vsiz :: Storable k => HDB -> k -> IO (Maybe Int)

-- | Initialize the iterator of a HDB object.
iterinit :: HDB -> IO Bool

-- | Return the next key of the iterator of a HDB object.
iternext :: Storable k => HDB -> IO (Maybe k)

-- | Return list of forward matched keys.
fwmkeys :: (Storable k1, Storable k2, Sequence q) => HDB -> k1 -> Int -> IO (q k2)

-- | Increment the corresponding value. (The value specified by a key is
--   treated as integer.)
addint :: Storable k => HDB -> k -> Int -> IO (Maybe Int)

-- | Increment the corresponding value. (The value specified by a key is
--   treated as double.)
adddouble :: Storable k => HDB -> k -> Double -> IO (Maybe Double)

-- | Synchronize updated contents of a database object with the file and
--   the device.
sync :: HDB -> IO Bool

-- | Optimize the file of a Hash database object.
optimize :: HDB -> Int64 -> Int8 -> Int8 -> [TuningOption] -> IO Bool

-- | Delete all records.
vanish :: HDB -> IO Bool

-- | Copy the database file.
copy :: HDB -> String -> IO Bool

-- | Begin the transaction.
tranbegin :: HDB -> IO Bool

-- | Commit the transaction.
trancommit :: HDB -> IO Bool

-- | Abort the transaction.
tranabort :: HDB -> IO Bool

-- | Return the file path of currentry opened database.
path :: HDB -> IO (Maybe String)

-- | Return the number of records in the database.
rnum :: HDB -> IO Word64

-- | Return the size of the database file.
fsiz :: HDB -> IO Word64

-- | Interface to B+ tree based DBM. See also,
--   http://tokyocabinet.sourceforge.net/spex-en.html#tcbdbapi for
--   details
module Database.TokyoCabinet.BDB
data BDB

-- | Represents error
data ECODE

-- | success
ESUCCESS :: ECODE

-- | threading error
ETHREAD :: ECODE

-- | invalid operation
EINVALID :: ECODE

-- | file not found
ENOFILE :: ECODE

-- | no permission
ENOPERM :: ECODE

-- | invalid meta data
EMETA :: ECODE

-- | invalid record header
ERHEAD :: ECODE

-- | open error
EOPEN :: ECODE

-- | close error
ECLOSE :: ECODE

-- | trunc error
ETRUNC :: ECODE

-- | sync error
ESYNC :: ECODE

-- | stat error
ESTAT :: ECODE

-- | seek error
ESEEK :: ECODE

-- | read error
EREAD :: ECODE

-- | write error
EWRITE :: ECODE

-- | mmap error
EMMAP :: ECODE

-- | lock error
ELOCK :: ECODE

-- | unlink error
EUNLINK :: ECODE

-- | rename error
ERENAME :: ECODE

-- | mkdir error
EMKDIR :: ECODE

-- | rmdir error
ERMDIR :: ECODE

-- | existing record
EKEEP :: ECODE

-- | no record found
ENOREC :: ECODE

-- | miscellaneous error
EMISC :: ECODE
data OpenMode
OREADER :: OpenMode
OWRITER :: OpenMode
OCREAT :: OpenMode
OTRUNC :: OpenMode
ONOLCK :: OpenMode
OLCKNB :: OpenMode
OTSYNC :: OpenMode
data TuningOption
TLARGE :: TuningOption
TDEFLATE :: TuningOption
TBZIP :: TuningOption
TTCBS :: TuningOption
TEXCODEC :: TuningOption
data CMP
CMPLEXICAL :: CMP
CMPDECIMAL :: CMP
CMPINT32 :: CMP
CMPINT64 :: CMP
CMP :: (ByteString -> ByteString -> Ordering) -> CMP

-- | Create a B+ tree database object.
new :: IO BDB

-- | Free BDB resource forcibly. BDB is kept by ForeignPtr, so Haskell
--   runtime GC cleans up memory for almost situation. Most always, you
--   don't need to call this. After call this, you must not touch BDB
--   object. Its behavior is undefined.
delete :: BDB -> IO ()

-- | Return the last happened error code.
ecode :: BDB -> IO ECODE

-- | Convert error code to message string.
errmsg :: ECODE -> String

-- | Set the tuning parameters.
tune :: BDB -> Int32 -> Int32 -> Int64 -> Int8 -> Int8 -> [TuningOption] -> IO Bool

-- | Set the caching parameters.
setcache :: BDB -> Int32 -> Int32 -> IO Bool

-- | Set the size of extra mapped memory.
setxmsiz :: BDB -> Int64 -> IO Bool

-- | Set the custom comparison function of a B+ tree database object.
setcmpfunc :: BDB -> CMP -> IO Bool

-- | Open BDB database file.
open :: BDB -> String -> [OpenMode] -> IO Bool

-- | Close the database file.
close :: BDB -> IO Bool

-- | Stora a record (key-value pair) on BDB. Key and value type must be
--   instance of Storable class. Usually, we can use String,
--   ByteString for key, String, ByteString,
--   Int, Double for value.
put :: (Storable k, Storable v) => BDB -> k -> v -> IO Bool

-- | Store a new record. If a record with the same key exists in the
--   database, this function has no effect.
putkeep :: (Storable k, Storable v) => BDB -> k -> v -> IO Bool

-- | Concatenate a value at the end of the existing record.
putcat :: (Storable k, Storable v) => BDB -> k -> v -> IO Bool

-- | Store a record with allowing duplication of keys.
putdup :: (Storable k, Storable v) => BDB -> k -> v -> IO Bool

-- | Store records with allowing duplication of keys.
putlist :: (Storable k, Storable v, Sequence q) => BDB -> k -> q v -> IO Bool

-- | Delete a record. If the key of duplicated records is specified, the
--   first one is deleted.
out :: Storable k => BDB -> k -> IO Bool

-- | Delete records. If the key of duplicated records is specified, all of
--   them are deleted.
outlist :: Storable k => BDB -> k -> IO Bool

-- | Return the value of record. If the key of duplicated records is
--   specified, the first one is returned.
get :: (Storable k, Storable v) => BDB -> k -> IO (Maybe v)

-- | Retrieve records.
getlist :: (Storable k, Storable v, Sequence q) => BDB -> k -> IO (q v)

-- | Return the number of records corresponding to a key.
vnum :: Storable k => BDB -> k -> IO (Maybe Int)

-- | Return the size of the value of a record. If the key of duplicated
--   records is specified, the first one is selected.
vsiz :: Storable k => BDB -> k -> IO (Maybe Int)

-- | Return list of keys in the specified range.
range :: (Storable k, Sequence q) => BDB -> Maybe k -> Bool -> Maybe k -> Bool -> Int -> IO (q k)

-- | Return list of forward matched keys.
fwmkeys :: (Storable k1, Storable k2, Sequence q) => BDB -> k1 -> Int -> IO (q k2)

-- | Increment the corresponding value. (The value specified by a key is
--   treated as integer.)
addint :: Storable k => BDB -> k -> Int -> IO (Maybe Int)

-- | Increment the corresponding value. (The value specified by a key is
--   treated as double.)
adddouble :: Storable k => BDB -> k -> Double -> IO (Maybe Double)

-- | Synchronize updated contents of a database object with the file and
--   the device.
sync :: BDB -> IO Bool

-- | Optimize the file of a B+ tree database object.
optimize :: BDB -> Int32 -> Int32 -> Int64 -> Int8 -> Int8 -> [TuningOption] -> IO Bool

-- | Delete all records.
vanish :: BDB -> IO Bool

-- | Copy the database file.
copy :: BDB -> String -> IO Bool

-- | Begin the transaction.
tranbegin :: BDB -> IO Bool

-- | Commit the transaction.
trancommit :: BDB -> IO Bool

-- | Abort the transaction.
tranabort :: BDB -> IO Bool

-- | Return the file path of currentry opened database.
path :: BDB -> IO (Maybe String)

-- | Return the number of records in the database.
rnum :: BDB -> IO Word64

-- | Return the size of the database file.
fsiz :: BDB -> IO Word64

module Database.TokyoCabinet.List
new :: IO (List a)
new2 :: Int -> IO (List a)
copy :: List a -> IO (List a)
delete :: List a -> IO ()
len :: List a -> IO Int
get :: Storable a => List a -> Int -> IO (Maybe a)
push :: Storable a => List a -> a -> IO ()
pop :: Storable a => List a -> IO (Maybe a)
unshift :: Storable a => List a -> a -> IO ()
shift :: Storable a => List a -> IO (Maybe a)
insert :: Storable a => List a -> Int -> a -> IO ()
remove :: Storable a => List a -> Int -> IO (Maybe a)
over :: Storable a => List a -> Int -> a -> IO ()
sort :: List a -> IO ()
lsearch :: Storable a => List a -> a -> IO Int
bsearch :: Storable a => List a -> a -> IO Int
clear :: List a -> IO ()
dump :: List a -> IO ByteString
load :: ByteString -> IO (List a)
data List a

-- | Interface to TC's Abstract DataBase. See also,
--   http://tokyocabinet.sourceforge.net/spex-en.html#tcadbapi for
--   details
module Database.TokyoCabinet.ADB
data ADB

-- | Represents error
data ECODE

-- | success
ESUCCESS :: ECODE

-- | threading error
ETHREAD :: ECODE

-- | invalid operation
EINVALID :: ECODE

-- | file not found
ENOFILE :: ECODE

-- | no permission
ENOPERM :: ECODE

-- | invalid meta data
EMETA :: ECODE

-- | invalid record header
ERHEAD :: ECODE

-- | open error
EOPEN :: ECODE

-- | close error
ECLOSE :: ECODE

-- | trunc error
ETRUNC :: ECODE

-- | sync error
ESYNC :: ECODE

-- | stat error
ESTAT :: ECODE

-- | seek error
ESEEK :: ECODE

-- | read error
EREAD :: ECODE

-- | write error
EWRITE :: ECODE

-- | mmap error
EMMAP :: ECODE

-- | lock error
ELOCK :: ECODE

-- | unlink error
EUNLINK :: ECODE

-- | rename error
ERENAME :: ECODE

-- | mkdir error
EMKDIR :: ECODE

-- | rmdir error
ERMDIR :: ECODE

-- | existing record
EKEEP :: ECODE

-- | no record found
ENOREC :: ECODE

-- | miscellaneous error
EMISC :: ECODE

-- | Create a Abstract database object.
new :: IO ADB

-- | Free ADB resource forcibly. ADB is kept by ForeignPtr, so Haskell
--   runtime GC cleans up memory for almost situation. Most always, you
--   don't need to call this. After call this, you must not touch ADB
--   object. Its behavior is undefined.
delete :: ADB -> IO ()

-- | Open an abstract dataabse.
open :: ADB -> String -> IO Bool

-- | Close an abstract database object.
close :: ADB -> IO Bool

-- | Stora a record into an abstract database object.
put :: (Storable k, Storable v) => ADB -> k -> v -> IO Bool

-- | Store a new record into an abstract database object.
putkeep :: (Storable k, Storable v) => ADB -> k -> v -> IO Bool

-- | Concatenate a value at the end of the existing record in an abstract
--   database object.
putcat :: (Storable k, Storable v) => ADB -> k -> v -> IO Bool

-- | Remove a record of an abstract database object.
out :: Storable k => ADB -> k -> IO Bool

-- | Retrieve a record in an abstract database object.
get :: (Storable k, Storable v) => ADB -> k -> IO (Maybe v)

-- | Get the size of the value of a record in an abstract database object.
vsiz :: Storable k => ADB -> k -> IO (Maybe Int)

-- | Initialize the iterator of an abstract database object.
iterinit :: ADB -> IO Bool

-- | Get the next key of the iterator of an abstract database object.
iternext :: Storable k => ADB -> IO (Maybe k)

-- | Get forward matching keys in an abstract database object.
fwmkeys :: (Storable k1, Storable k2, Sequence q) => ADB -> k1 -> Int -> IO (q k2)

-- | Add an integer to a record in an abstract database object.
addint :: Storable k => ADB -> k -> Int -> IO (Maybe Int)

-- | Add a real number to a record in an abstract database object.
adddouble :: Storable k => ADB -> k -> Double -> IO (Maybe Double)

-- | Synchronize updated contents of an abstract database object with the
--   file and the device.
sync :: ADB -> IO Bool

-- | Optimize the storage of an abstract database object.
optimize :: ADB -> String -> IO Bool

-- | Remove all records of an abstract database object.
vanish :: ADB -> IO Bool

-- | Copy the database file of an abstract database object.
copy :: ADB -> String -> IO Bool

-- | Begin the transaction of an abstract database object.
tranbegin :: ADB -> IO Bool

-- | Commit the transaction of an abstract database object.
trancommit :: ADB -> IO Bool

-- | Abort the transaction of an abstract database object.
tranabort :: ADB -> IO Bool

-- | Get the file path of an abstract database object.
path :: ADB -> IO (Maybe String)

-- | Get the number of records of an abstract database object.
rnum :: ADB -> IO Word64

-- | Get the size of the database of an abstract database object.
size :: ADB -> IO Word64

-- | Call a versatile function for miscellaneous operations of an abstract
--   database object.
misc :: (Storable a, Storable b, Sequence q1, Sequence q2) => ADB -> String -> q1 a -> IO (q2 b)

module Database.TokyoCabinet.Map
new :: IO (Map k v)
new2 :: Word32 -> IO (Map k v)
dup :: Map k v -> IO (Map k v)
delete :: Map k v -> IO ()
put :: (Storable k, Storable v) => Map k v -> k -> v -> IO ()
putkeep :: (Storable k, Storable v) => Map k v -> k -> v -> IO Bool
putcat :: (Storable k, Storable v) => Map k v -> k -> v -> IO ()
out :: Storable k => Map k v -> k -> IO Bool
get :: (Storable k, Storable v) => Map k v -> k -> IO (Maybe v)
move :: Storable k => Map k v -> k -> Bool -> IO Bool
iterinit :: Map k v -> IO ()
iternext :: Storable k => Map k v -> IO (Maybe k)
rnum :: Map k v -> IO Word64
msiz :: Map k v -> IO Word64
keys :: Storable k => Map k v -> IO [k]
vals :: Storable v => Map k v -> IO [v]
addint :: Storable k => Map k v -> k -> Int -> IO (Maybe Int)
adddouble :: Storable k => Map k v -> k -> Double -> IO (Maybe Double)
clear :: Map k v -> IO ()
cutfront :: Map k v -> Int -> IO ()
dump :: Map k v -> IO ByteString
load :: ByteString -> IO (Map k v)
data Map k v

module Database.TokyoCabinet.Associative
class Associative a
withMap :: (Associative a, Storable k, Storable v) => a k v -> (Ptr MAP -> IO b) -> IO b
peekMap' :: (Associative a, Storable k, Storable v) => Ptr MAP -> IO (a k v)
newtype AssocList k v
AssocList :: [(k, v)] -> AssocList k v
unAssocList :: AssocList k v -> [(k, v)]
instance (Eq k, Eq v) => Eq (AssocList k v)
instance (Ord k, Ord v) => Ord (AssocList k v)
instance (Show k, Show v) => Show (AssocList k v)
instance Associative Map
instance Associative AssocList

-- | Interface to the table database. See also,
--   http://tokyocabinet.sourceforge.net/spex-en.html#tctdbapi for
--   details
module Database.TokyoCabinet.TDB
data TDB

-- | Represents error
data ECODE

-- | success
ESUCCESS :: ECODE

-- | threading error
ETHREAD :: ECODE

-- | invalid operation
EINVALID :: ECODE

-- | file not found
ENOFILE :: ECODE

-- | no permission
ENOPERM :: ECODE

-- | invalid meta data
EMETA :: ECODE

-- | invalid record header
ERHEAD :: ECODE

-- | open error
EOPEN :: ECODE

-- | close error
ECLOSE :: ECODE

-- | trunc error
ETRUNC :: ECODE

-- | sync error
ESYNC :: ECODE

-- | stat error
ESTAT :: ECODE

-- | seek error
ESEEK :: ECODE

-- | read error
EREAD :: ECODE

-- | write error
EWRITE :: ECODE

-- | mmap error
EMMAP :: ECODE

-- | lock error
ELOCK :: ECODE

-- | unlink error
EUNLINK :: ECODE

-- | rename error
ERENAME :: ECODE

-- | mkdir error
EMKDIR :: ECODE

-- | rmdir error
ERMDIR :: ECODE

-- | existing record
EKEEP :: ECODE

-- | no record found
ENOREC :: ECODE

-- | miscellaneous error
EMISC :: ECODE

-- | Represents open mode
data OpenMode

-- | read only mode
OREADER :: OpenMode

-- | write mode
OWRITER :: OpenMode

-- | if this value is included in open mode list, `open function' creates a
--   new database if not exist.
OCREAT :: OpenMode

-- | creates a new database regardless if one exists
OTRUNC :: OpenMode

-- | open the database file without file locking
ONOLCK :: OpenMode

-- | open the database file with locking performed without blocking.
OLCKNB :: OpenMode

-- | every transaction synchronizes updated contents with the device
OTSYNC :: OpenMode
data TuningOption
TLARGE :: TuningOption
TDEFLATE :: TuningOption
TBZIP :: TuningOption
TTCBS :: TuningOption
TEXCODEC :: TuningOption

-- | Represents the index type
data IndexType

-- | for lexical string
ITLEXICAL :: IndexType

-- | for decimal string
ITDECIMAL :: IndexType

-- | the index is optimized
ITOPT :: IndexType

-- | the index is removed
ITVOID :: IndexType

-- | if the index exists, setindex function merely returns failure
ITKEEP :: IndexType -> IndexType
newtype AssocList k v
AssocList :: [(k, v)] -> AssocList k v
unAssocList :: AssocList k v -> [(k, v)]

-- | Create the new table database object.
new :: IO TDB

-- | Free object resource forcibly.
delete :: TDB -> IO ()

-- | Get the last happened error code.
ecode :: TDB -> IO ECODE

-- | Convert error code to message string.
errmsg :: ECODE -> String

-- | Set the tuning parameters.
tune :: TDB -> Int64 -> Int8 -> Int8 -> [TuningOption] -> IO Bool

-- | Set the caching parameters of a table database object.
setcache :: TDB -> Int32 -> Int32 -> Int32 -> IO Bool

-- | Set the size of the extra mapped memory of a table database object.
setxmsiz :: TDB -> Int64 -> IO Bool

-- | Open the table database file
open :: TDB -> String -> [OpenMode] -> IO Bool

-- | Open the database file
close :: TDB -> IO Bool

-- | Store a record into a table database object.
put :: (Storable k, Storable v, Associative m) => TDB -> v -> m k v -> IO Bool

-- | Store a string record into a table database object with a zero
--   separated column string.
put' :: (Storable k, Storable v) => TDB -> k -> v -> IO Bool

-- | Store a new record into a table database object.
putkeep :: (Storable k, Storable v, Associative m) => TDB -> v -> m k v -> IO Bool

-- | Store a new string record into a table database object with a zero
--   separated column string.
putkeep' :: (Storable k, Storable v) => TDB -> k -> v -> IO Bool

-- | Concatenate columns of the existing record in a table database object.
putcat :: (Storable k, Storable v, Associative m) => TDB -> v -> m k v -> IO Bool

-- | Concatenate columns in a table database object with a zero separated
--   column string.
putcat' :: (Storable k, Storable v) => TDB -> k -> v -> IO Bool

-- | Remove a record of a table database object.
out :: Storable k => TDB -> k -> IO Bool

-- | Retrieve a record in a table database object.
get :: (Storable k, Storable v, Associative m) => TDB -> k -> IO (m k v)

-- | Retrieve a record in a table database object as a zero separated
--   column string.
get' :: (Storable k, Storable v) => TDB -> k -> IO (Maybe v)

-- | Get the size of the value of a record in a table database object.
vsiz :: Storable k => TDB -> k -> IO (Maybe Int)

-- | Initialize the iterator of a table database object.
iterinit :: TDB -> IO Bool

-- | Get the next primary key of the iterator of a table database object.
iternext :: Storable k => TDB -> IO (Maybe k)

-- | Get forward matching primary keys in a table database object.
fwmkeys :: (Storable k1, Storable k2, Sequence q) => TDB -> k1 -> Int -> IO (q k2)

-- | Add an integer to a column of a record in a table database object.
addint :: Storable k => TDB -> k -> Int -> IO (Maybe Int)

-- | Add a real number to a column of a record in a table database object.
adddouble :: Storable k => TDB -> k -> Double -> IO (Maybe Double)

-- | Synchronize updated contents of a table database object with the file
--   and the device.
sync :: TDB -> IO Bool

-- | Optimize the file of a table database object.
optimize :: TDB -> Int64 -> Int8 -> Int8 -> [TuningOption] -> IO Bool

-- | Remove all records of a table database object.
vanish :: TDB -> IO Bool

-- | Copy the database file of a table database object.
copy :: TDB -> String -> IO Bool

-- | Begin the transaction of a table database object.
tranbegin :: TDB -> IO Bool

-- | Commit the transaction of a table database object.
trancommit :: TDB -> IO Bool

-- | Abort the transaction of a table database object.
tranabort :: TDB -> IO Bool

-- | Get the file path of a table database object.
path :: TDB -> IO (Maybe String)

-- | Get the number of records of a table database object.
rnum :: TDB -> IO Word64

-- | Get the size of the database file of a table database object.
fsiz :: TDB -> IO Word64

-- | Set a column index to a table database object.
setindex :: TDB -> String -> IndexType -> IO Bool

-- | Generate a unique ID number of a table database object.
genuid :: TDB -> IO (Maybe Int64)

module Database.TokyoCabinet.TDB.Query
data Condition
QCSTREQ :: Condition
QCSTRINC :: Condition
QCSTRBW :: Condition
QCSTREW :: Condition
QCSTRAND :: Condition
QCSTROR :: Condition
QCSTROREQ :: Condition
QCSTRRX :: Condition
QCNUMEQ :: Condition
QCNUMGT :: Condition
QCNUMGE :: Condition
QCNUMLT :: Condition
QCNUMLE :: Condition
QCNUMBT :: Condition
QCNUMOREQ :: Condition
QCNEGATE :: Condition -> Condition
QCNOIDX :: Condition -> Condition
data OrderType
QOSTRASC :: OrderType
QOSTRDESC :: OrderType
QONUMASC :: OrderType
QONUMDESC :: OrderType
data PostTreatment m k v
QPPUT :: (m k v) -> PostTreatment m k v
QPOUT :: PostTreatment m k v
QPNOP :: PostTreatment m k v
QPSTOP :: PostTreatment m k v

-- | Create a query object.
new :: TDB -> IO TDBQRY

-- | Free object resource forcibly.
delete :: TDBQRY -> IO ()

-- | Add a narrowing condition to a query object.
addcond :: (Storable k, Storable v) => TDBQRY -> k -> Condition -> v -> IO ()

-- | Set the order of a query object.
setorder :: Storable k => TDBQRY -> k -> OrderType -> IO ()

-- | Set the limit number of records of the result of a query object.
setlimit :: TDBQRY -> Int -> Int -> IO ()

-- | Execute the search of a query object. The return value is a list
--   object of the primary keys of the corresponding records.
search :: (Storable k, Sequence q) => TDBQRY -> IO (q k)

-- | Remove each record corresponding to a query object.
searchout :: TDBQRY -> IO Bool
hint :: TDBQRY -> IO String

-- | Process each record corresponding to a query object.
proc :: (Storable k, Storable v, Associative m) => TDBQRY -> (v -> m k v -> IO (PostTreatment m k v)) -> IO Bool

module Database.TokyoCabinet

-- | Tokyo Cabinet related computation. Wrap of IO.
data TCM a

-- | Unwrap TCM.
runTCM :: TCM a -> IO a

-- | Represent open mode for open function.
data OpenMode
OREADER :: OpenMode
OWRITER :: OpenMode
OCREAT :: OpenMode
OTRUNC :: OpenMode
ONOLCK :: OpenMode
OLCKNB :: OpenMode

-- | Type class that abstract Tokyo Cabinet database.
class TCDB a
new :: TCDB a => TCM a
delete :: TCDB a => a -> TCM ()
open :: TCDB a => a -> String -> [OpenMode] -> TCM Bool
close :: TCDB a => a -> TCM Bool
put :: (TCDB a, Storable k, Storable v) => a -> k -> v -> TCM Bool
putkeep :: (TCDB a, Storable k, Storable v) => a -> k -> v -> TCM Bool
putcat :: (TCDB a, Storable k, Storable v) => a -> k -> v -> TCM Bool
get :: (TCDB a, Storable k, Storable v) => a -> k -> TCM (Maybe v)
out :: (TCDB a, Storable k) => a -> k -> TCM Bool
vsiz :: (TCDB a, Storable k) => a -> k -> TCM (Maybe Int)
iterinit :: TCDB a => a -> TCM Bool
iternext :: (TCDB a, Storable v) => a -> TCM (Maybe v)
fwmkeys :: (TCDB a, Storable k, Storable v, Sequence q) => a -> k -> Int -> TCM (q v)
addint :: (TCDB a, Storable k) => a -> k -> Int -> TCM (Maybe Int)
adddouble :: (TCDB a, Storable k) => a -> k -> Double -> TCM (Maybe Double)
sync :: TCDB a => a -> TCM Bool
vanish :: TCDB a => a -> TCM Bool
copy :: TCDB a => a -> String -> TCM Bool
path :: TCDB a => a -> TCM (Maybe String)
rnum :: TCDB a => a -> TCM Word64
size :: TCDB a => a -> TCM Word64
ecode :: TCDB a => a -> TCM ECODE
defaultExtension :: TCDB a => a -> String
data HDB
data FDB
data TDB
data BDB

-- | Represents error
data ECODE

-- | success
ESUCCESS :: ECODE

-- | threading error
ETHREAD :: ECODE

-- | invalid operation
EINVALID :: ECODE

-- | file not found
ENOFILE :: ECODE

-- | no permission
ENOPERM :: ECODE

-- | invalid meta data
EMETA :: ECODE

-- | invalid record header
ERHEAD :: ECODE

-- | open error
EOPEN :: ECODE

-- | close error
ECLOSE :: ECODE

-- | trunc error
ETRUNC :: ECODE

-- | sync error
ESYNC :: ECODE

-- | stat error
ESTAT :: ECODE

-- | seek error
ESEEK :: ECODE

-- | read error
EREAD :: ECODE

-- | write error
EWRITE :: ECODE

-- | mmap error
EMMAP :: ECODE

-- | lock error
ELOCK :: ECODE

-- | unlink error
EUNLINK :: ECODE

-- | rename error
ERENAME :: ECODE

-- | mkdir error
EMKDIR :: ECODE

-- | rmdir error
ERMDIR :: ECODE

-- | existing record
EKEEP :: ECODE

-- | no record found
ENOREC :: ECODE

-- | miscellaneous error
EMISC :: ECODE

-- | Convert error code to message string.
errmsg :: ECODE -> String
instance Monad TCM
instance MonadIO TCM
instance Eq OpenMode
instance Ord OpenMode
instance Show OpenMode
instance TCDB TDB
instance TCDB FDB
instance TCDB BDB
instance TCDB BDB
instance TCDB HDB
