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