Core libs summary

Malcolm Wallace Malcolm.Wallace@cs.york.ac.uk
Fri, 29 Jun 2001 17:03:16 +0100


> 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 )

------------------