Yeah, I also believed that, but then I'm confused: Don Stewart wrote: > That's a reasonable critique : its hard to enforce uniqueness, in the type system in Haskell, -- I'd be interesting to see approaches that avoid extending the compiler.
Neil Mitchell wrote: > No. The monad and the primitive operations ensure it is unique, the IO > monad is abstracted away properly, and it all works neatly so you > can't violate the uniqueness. So monads *do* enforce uniqueness... So what is the difference between Haskell's monad approach and Clean's uniqueness typing? I always thought these were just two different ways to tackle the same problem, and I had the feeling Haskell's approach was actually more general. Thanks, Peter > -----Original Message----- > From: Neil Mitchell [mailto:[EMAIL PROTECTED] > Sent: Wednesday, February 06, 2008 6:25 PM > To: Peter Verswyvelen > Cc: Don Stewart; Jeff φ; haskell-cafe@haskell.org > Subject: Re: [Haskell-cafe] Mutable arrays > > Hi > > > Isn't the compiler already "modified" in a way to deal with the > RealWorld > > type that is used in the IO monad? Surely the RealWorld is unique... > > No. The monad and the primitive operations ensure it is unique, the IO > monad is abstracted away properly, and it all works neatly so you > can't violate the uniqueness. However, the realWorld thing is not > actually unique, for example unsafeInterleaveIO and unsafePerformIO > violate this. > > Thanks > > Neil > > > > -- > No virus found in this incoming message. > Checked by AVG Free Edition. > Version: 7.5.516 / Virus Database: 269.19.20/1261 - Release Date: > 2/5/2008 8:57 PM _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe