Am Mittwoch, 5. Oktober 2005 17:01 schrieb Simon Marlow: > On 05 October 2005 15:46, Ross Paterson wrote: > > On Wed, Oct 05, 2005 at 03:22:29PM +0100, Simon Marlow wrote: > >> Also, GHC's optimiser currently treats (_|_ :: IO a) and (do _|_; > >> return ()) as interchangeable, which is naughty, and people have > >> occasionally noticed, but the benefits can sometimes be huge. > > > > What's wrong with identifying them? You're not expecting the monad > > laws to hold, are you? > > No, of course I don't expect the monad laws to hold :)
It's terrible that the monad laws don't hold for the IO *monad*. I suppose, it all has to do with the type of seq being too general. In my opinion, this is a very serious problem since Haskell is a language which is expected to have a sound theoretical foundation. So I think that this problem should be addressed in the future under all circumstances. > [...] Best wishes, Wolfgang _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell