
On Wed, Jul 01, 2009 at 09:05:06PM -0300, Maurício wrote:
Do you imagine an objection on creating a ticket asking for something like CComplex on Foreign.C.Types?
No, I would like it. Also add a 'CBool' that maps to the calling convention for _Bool while you are at it.
Here is a draft. Please comment:
Proposal: complement Foreign.C.Types
A few more types could be usefull in Foreign.C.Types. These are sugested to be included:
* CBool Related to 'bool' (or _Bool) from stdbool.h.
Good. It appears from the FFI spec that it is possible to define HsBool as '_Bool' and let 'Bool' translate to a 'bool' calling convention. However, it is not guarenteed so a CBool type that is guarenteed to map to _Bool is still good. It would be odd to define CBool as an intergral type though, perhaps we should specify it be defined as newtype CBool = CBool Bool so we can convert between haskell Bool and CBool easily. Though, for consistency with other C types, we may want to
* CComplexFloat, CComplexDouble Related to 'float complex' and 'double complex'.
We need a way to actually examine the values, since 'fromIntegral' won't work. I think the easiest way is to actually reuse Complex which is already in Haskell 98, defining Complex Foo where Foo is a FFI marshable type translates to the complex version of said type. so 'Complex CDouble' translates to the external C type of 'double complex'. We may also want to add 'long double' as a c marshable type too. John -- John Meacham - ⑆repetae.net⑆john⑈ - http://notanumber.net/