On Jan 9, 2008 5:42 PM, Henning Thielemann
<[EMAIL PROTECTED]> wrote:
> > I just want to point out that unsafePerformIO is at the core of the
> > (safe) bytestring library.  As SPJ et al pointed out, this is crucial
> > functionality, and is only unsafe if unsafely used.
>
> Indeed, there are hacks and they are some times necessary. The good thing
> about Haskell is, that hacks look like hacks.
>
> In Modula-3 modules using hacks must be explicitly marked as UNSAFE. See
>   http://www.cs.purdue.edu/homes/hosking/m3/reference/unsafe.html
>  Maybe this is also an option for Haskell?

I don't think this is a good idea.  It comes down to a question of
whether you think it should be allowed for Haskell code to be used to
write core Haskell libraries in a first-class manner.  Perhaps you
think libraries should always be in C in order to avoid the use of
unsafePerformIO, but I prefer to allow them to be written in Haskell.

But then, I don't see unsafePerformIO as inherently a hack.  It's the
only possible way that certain useful abstractions can be
impelemented--at least, that's understanding.  I'd be curious as to
how much of the Prelude would be marked unsafe if you had your wish...

David
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to