Proposal: overhaul System.Process

John Meacham john at
Wed Jun 18 19:39:26 EDT 2008

On Wed, Jun 18, 2008 at 04:22:24PM -0700, Frederik Eaton wrote:
> In what way is 'createProcess' more low-level than the previous interfaces?
> In any case, it still makes sense to me to keep the previous interfaces
> around indefinitely - even if they have to be redefined in terms of
> 'createProcess'. But 'createProcess' seems quite a bit more high-level than
> the others. It seems to combine a lot of different POSIX functions like
> 'exec' and 'system' and 'pipe' which could all be exposed individually
> through a simpler API.

I think another issue here is where the OS abstraction happens. Opaquely
in libraries, or on top of OS primitives themselves in haskell.

Personally, I would like to see the OS abstraction happen in exposed
haskell libraries. as in, POSIX, Win32, SunOS, etc..  libraries in
haskell built on exposed haskell primitives, and things like
'createProcess' on top of them. Of course, the implementation of
createProcess will have to conform to whatever is available on the
current system (which is in not as simple as posix vs windows,
autoconf-esque feature checks will be needed) but I'd rather have that
done in haskell than C or opaquely in a library.

This is more an opinion on implementation than standardization. I think
it is fully fine to provide standard high level interfaces before the
low level ones get worked out, as long as the low level ones arn't
excluded in favor of just the high level interface.


John Meacham - ⑆⑆john⑈

More information about the Libraries mailing list