I think you can use Data.Word and Data.Int types for this, that is.
Data.Word.Word16 == uint16_t, Data.Word.Word32 == uint32_t, etc. Data.Int.Int16 = int16_t, Data.Int.Int32 = int32_t, etc. There are Foreign.Storable.Storable instances for those. -Ross On Feb 10, 2009, at 6:32 AM, Maurí cio wrote:
Hi, After reading an ISO draft for standard C, I found a few types that could be usefull when binding to libraries (these are from <stdint.h>): int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t, int64_t, uint64_t What about if they were included in the next version of GHC Foreign.C.Types module? For instance, as: CInt8, CUInt8, CInt16 etc. Some libraries (e.g. sqlite) define function parameters that are supposed to always have a given size (e.g., sqlite defines sqlite3_int64). In order to have a portable binding to those libraries, it would be nice to have types in Haskell that also offer that guarantee. There are also a few other nice types, although I'm not sure they belong to standard modules. If they did, however, they could make life easier for those people writing higher level Haskell modules after standard C functions: complex, float complex, double complex (from <complex.h>) are used in functions like ccos, csin, cexp, csqrt etc. struct lconv (from <locale.h>) struct tm (from <time.h>) From <wchar.h> and <wctype.h>: mbstate_t, wint_t, wctrans_t, wctype_t. Do you think I could open a ticket for GHC proposing that? Best, Maurício _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe