FFI 1.0 in GHC

Manuel M. T. Chakravarty chak at cse.unsw.edu.au
Mon Feb 4 05:19:00 EST 2002

I have just committed the changes necessary to make GHC
conform to the FFI Addendum 1.0 to the CVS repo.  The old
style of foreign declarations is still supported, but causes
deprecation warnings.

I had to change one thing in the FFI Report.  I renamed the
`IOErrorType' inspection functions from `MarshalError' to

  alreadyExistsErrorType :: IOErrorType 
  doesNotExistErrorType  :: IOErrorType 
  alreadyInUseErrorType  :: IOErrorType 
  fullErrorType		 :: IOErrorType 
  eofErrorType	         :: IOErrorType 
  illegalOperationType   :: IOErrorType 
  permissionErrorType    :: IOErrorType 
  userErrorType		 :: IOErrorType 

The old proposal of using `userError' for the last function
clashed with the function of the same name in the

I was wondering whether we should have functions
`isAlreadyExistsErrorType' etc, as otherwise, values of
`IOErrorType' need to be wrapped into an `IOError' before
they can be inspected with the standard routines from `IO'.
But this would just be a convenience, which I am not sure
whether it would really be needed much.  So, I haven't added
it.  Opinions?


More information about the FFI mailing list