
Peter Verswyvelen writes about non-monadic IO, unique "external worlds":
But... isn't this what the Haskell compiler & runtime do internally when IO monads are executed? Passing the RealWorld "singleton" from "action" to "action"?
I never looked into any Haskell compiler. Chalmers, or York, don't remember, used continuations, this seems a bit different from the Clean approach, but I don't really know the gory details.
To me, no real difference exists between IO monads and Clean's uniques types; it's just a different approach to tackle the same problem.
Yes, *different approach*. So, there *are* differences. Compilers, anyway, are special applications. I wanted to see - responding to Brandon - a "normal" Haskell program, which does IO without monads, that't all. The problem is then when you hide something, you hide. It is possible to superpose a kind of monadic framework on unique worlds, files, etc. in Clean, but the reverse operation goes beyond my horizons. Some examples, anybody? Jerzy Karczmarczuk