
As I am about to make a release of c2hs (and also Gtk+HS), I made another attempt at compiling the packages with the latest nhc98 (ie, 1.14), which unfortunately fails. The issues are the following: * nhc98 exports its FFI libraries from a module called `FFI', whereas all other systems (and the standard) use `Foreign' for the language-independent and `CForeign' for the C-dependent libraries. This should be pretty easy to fix. (If you insist on providing the `FFI' module, you could just re-export parts of `FFI' in `Foreign' and `CForeign'.) * The FFI includes a `Bits' modules that differs from nhc98's `Bit' module (different function names). Should also be easy to fix. * There seems to be a problem with re-exporting identifiers, which have been imported qualified. I vaguely remember that Malcolm once told me that nhc98 has a problem with that. I am currently working around this by excluding that module when compiling with nhc98 (as it is a library module that is not really needed for c2hs). * I get a set of strange error messages: ====== Errors after type inference/checking: No default for Parsers.Token at 282:3.(1378,[(173,1432)]) No default for Parsers.Token at 254:32.(1267,[(173,1433)]) No default for Parsers.Token at 223:1.(1061,[(173,1188)]) No default for Parsers.Token at 204:25.(1180,[(173,1187)]) All of the error positions are in the first equation of a functions that have `Token t' as the class context in their signature. The Token class is defined as class (Pos t, Show t, Eq t, Ord t) => Token t and I am not sure what these error messages are supposed to tell me. GHC doesn't have a problem with it and it is legal H98 as far as I can see. Strange is also that there are many functions that have the same class context about which nhc98 doesn't complain. Any ideas what this is about? Cheers, Manuel