On Fri, May 23, 2003 at 07:33:05AM +1000, Manuel M T Chakravarty wrote:
Dear Haskell Folks,
Release Candidate 10 of the H98 FFI Addendum 1.0 is now available from
I have an ideological objection. I think that the inclusion of unsafePerformIO in an Addendum sends entirely the wrong signal. I know it's needed for marshalling for otherwise pure functions that pass their data through pointers. Very well, but the inclusion of unsafePerformIO allows many more uses. At a stroke it removes many of the trickiest design problems of Haskell, and we can't have that. I propose that the Addendum say that it permits unsafePerformIO for that purpose only, i.e. the IO calls it contains are restricted to foreign calls and functions from Storable and Marshal*, these may only access Ptr's inaccessable outside the unsafePerformIO, and no other visible side effects are permitted.