base package (Was: GHC 7.8 release?)

Simon Marlow marlowsd at
Fri Feb 15 15:50:26 CET 2013

On 15/02/13 12:22, Joachim Breitner wrote:
> Hi,
> more progress: On top of base-pure, I created base-io involving GHC/IO
> and everything required to build it (which pulled in ST, some of Foreign
> and unfortunately some stuff related to Handles and Devices, because it
> is mentioned in IOException). This is the list of modules:
>          Foreign.C.Types,
>          Foreign.ForeignPtr,
>          Foreign.ForeignPtr.Imp,
>          Foreign.ForeignPtr.Safe,
>          Foreign.ForeignPtr.Unsafe,
>          Foreign.Ptr,
>          Foreign.Storable,
>          GHC.ForeignPtr,
>          GHC.IO.BufferedIO,
>          GHC.IO.Buffer,
>          GHC.IO.Device,
>          GHC.IO.Encoding.Types,
>          GHC.IO.Exception,
>          GHC.IO.Handle.Types,
>          GHC.IO,
>          GHC.IORef,
>          GHC.MVar,
>          GHC.Ptr,
>          GHC.Stable,
>          GHC.ST,
>          GHC.Storable,
>          GHC.STRef

You have a random collection of modules here :)

I think you want to have the IO *monad* (GHC.IO) live in a lower layer, 
separate from the IO *library* (GHC.IO.Device and so on).  Every Haskell 
implementation will need the IO monad, but they might want to replace 
the IO library with something else.

Things like GHC.IORef, GHC.MVar can all live in a low-down layer because 
they're just wrappers over the primops.


More information about the Glasgow-haskell-users mailing list