Hi,

I would like to make a formal request for inclusion of complex
numbers in Foreign.C.Types. Which steps should I follow?

Here is a start on what I would write in such request.

-----

Motivation:

 As complex is available in C, libraries can pass then by value
 in function calls, making it difficult to directly wrap such
 functions in Haskell. GNU GSL, for instance, even if actually
 using C < 99, does that with a struct type that is supposed to be
 binary equivalent to C99 double complex.


Syntax:

 My sugestion is to add these:

 CFComplex    --> for 'float complex'
 CDComplex    --> for 'double complex'
 CLDComplex   --> for 'long double complex'

 I believe this is better than trying to use a kind *->* type, as
 that would bring little help when actually wrapping C functions.
 Also, I think it's not important to have field names for real
 and imaginary, as long as we have an easy convertion for
 Data.Complex. Also, if we want to take imaginary and real parts
 in "pure C" Haskell code, we can use available C functions like
 cimag, creal, cimagf, crealf etc.

-----

Thanks for your attention,
Maurício

_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime

Reply via email to