Strict arguments with foreign import

Andre Pang ozone at
Wed Mar 16 03:49:06 EST 2005

Hi all,

I'm just wondering -- for "primitive" C types (int, float, char, etc), 
why was the decision made in the FFI to have function declarations look 
like e.g.

  foreign import ccall "math.h sin" sin :: CDouble -> CDouble

rather than

  foreign import ccall "math.h sin" sin :: !CDouble -> !CDouble

I'm fairly sure any foreign imported functions must be strict in their 
arguments, and it would make things a bit clearer for Haskell 
programmer.  Am I missing something (non-)obvious in my reasoning?

% Andre Pang :  <>

More information about the FFI mailing list