
I've gone through and put in a best guess for the stability/portability status, so let me know if you think any are wrong (Hugs, NHC folks: remember that every module marked "portable" is expected to be available on all implementations - so if any of these are going to cause problems, let me know).
Ok, I've marked against your list anything that I think is problematic for nhc98, despite being designated portable. Regards, Malcolm ------------------ Control. Monad. Identity ( portable, experimental ) *** Re-exports Control.Monad.Fix, which *** is designated non-portable. ST. Lazy ( portable, provisional ) Strict ( portable, provisional ) *** Don't both variants of ST require runtime *** system support? If so, then not yet portable. Trans ( portable, experimental ) *** I can't imagine what the name means, but *** the code does look like pure Haskell'98. Monad ( portable, provisional ) Data. Array ( portable, provisional ) Bits ( portable, experimental ) *** Not portable. requires either RTS support *** or an FFI'd implementation in C I would think. Bool ( portable, experimental ) Char ( portable, provisional ) Complex ( portable, provisional ) Dynamic ( portable, experimental ) *** Doesn't contain a data decl for Dynamic, *** but otherwise looks ok. This doesn't require *** any RTS support does it? Either ( portable, experimental ) IORef ( portable, experimental ) Int ( portable, experimental ) Ix ( portable, provisional ) *** H'98 compliance: rangeSize should now be *** a class member. List ( portable, provisional ) Maybe ( portable, experimental ) PackedString ( portable, experimental ) *** nhc98 implements only the `classic' HBC *** interface. In particular, none of the *** ByteArray ops are portable. Ratio ( portable, provisional ) STRef ( portable, experimental ) *** As with the ST monad, I believe RTS support *** or an FFI'd implementation is required? Word ( portable, experimental ) Database. Debug. Trace ( portable, provisional ) FileFormat. Foreign. *** I haven't looked at the Foreign stuff in *** detail for quite a while, so apart from *** some RTS implementation in nhc98, I'm *** assuming everything else is straightforward. GHC. Hugs. NHC. *** I'd prefer Nhc or Nhc98. All caps is horrible. Network. Prelude ( portable, provisional ) System. *** The sample implementations of many of these *** System libraries are not very portable, but *** the interfaces are probably ok. CPUTime ( portable, provisional ) Cmd ( portable, provisional ) Environment ( portable, provisional ) Exit ( portable, provisional ) IO. Directory ( portable, provisional ) *** Incorrect interface: Permissions should not *** be abstract. Unsafe ( portable, provisional ) IO ( portable, provisional ) Info ( portable, provisional ) *** A great idea. Status should be experimental. Locale ( portable, provisional ) Random ( portable, provisional ) Time ( portable, provisional ) Text. Read ( portable, provisional ) Show. Functions ( portable, provisional ) Show ( portable, provisional ) ------------------