[Haskell-cafe] Re: [Haskell] Top Level <-

John Meacham john at repetae.net
Wed Aug 27 18:25:03 EDT 2008

On Wed, Aug 27, 2008 at 12:17:46PM -0500, Derek Elkins wrote:
> On Wed, 2008-08-27 at 02:35 -0700, John Meacham wrote:
> > However, note the weasel words. Those are in there on purpose, every
> > design calls for different solutions. To blanketly say certain
> > constructs are just wrong to the point of disallowing them in the
> > language, especially when they are common practice at the moment, just
> > doesn't seem right.
> How can a Haskell user say this?  And this is indeed exactly what
> capability languages do.  In fact, this is what almost every language
> does (for one thing in common practice or another.) 

But as a system designer I *need* things like peek/poke/ACIO etc. I am
the one implementing 'Random' or 'Data.Unique'. If I have to resort to C
code to do such things, that makes haskell unsuitable for a wide variety
of systems programming tasks (including implementing the haskell 98
libraries). I know it is certainly possible to do a lot of things in a
capability-based system. but you don't always want or have the ability
to use such a system.

I am not sure why it was thought netbsd didn't use global state. a
simple grep of the kernel headers for '^extern' turns up hundreds of
them. even pure capability based systems such as EROS need it for their
implementation. What such systems strive for is no or reduced state in
their interface. which is a very different thing and also something that
I strive for in haskell code. (and is fairly easy to achieve actually)


John Meacham - ⑆repetae.net⑆john⑈

More information about the Haskell-Cafe mailing list