base package (Was: GHC 7.8 release?)

Joachim Breitner mail at joachim-breitner.de
Fri Feb 15 23:00:44 CET 2013


Hi,


Am Freitag, den 15.02.2013, 14:50 +0000 schrieb Simon Marlow:
> 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:
> >
>
> 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.

Right, that is my aim, and I started with GHC.IO. But unfortunately, the
IO monad calls failIO, which is an IOError which has a field of type
ioe_handle :: Maybe Handle (and one of type CInt) which pulls in all the
rest there, and so far I did not have a good idea how to untangle that.

What would break if fail would not raise an IOError, but a separate
exception type, e.g. IOFailError? Probably too much, as users expect to
catch the exception raised by fail with an exception handler that
matches IOError.


Greetings,
Joachim


-- 
Joachim "nomeata" Breitner
Debian Developer
  nomeata at debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C
  JID: nomeata at joachim-breitner.de | http://people.debian.org/~nomeata

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20130215/4c8dc026/attachment.pgp>


More information about the Glasgow-haskell-users mailing list