Global variables

John Meacham john at
Thu Feb 1 17:36:49 EST 2007

On Thu, Feb 01, 2007 at 04:51:39PM +0000, David House wrote:
> I think that's too safe-looking. Anything that translates to something
> involving unsafe* should be tagged with 'unsafe' somewhere as well.
> Also, as unsafe* is still compiler specific, I think a pragma is
> probably most appropriate:

then pretty much everything will have to be 'unsafe' :) look inside of
how the libraries are implemented and they all involve unsafe operations
at some point, 'unsafe' does not mean unsafe always, it means it is up
to the user to provide proofs of certain properties rather than the
compiler. when such a proof is provided and abstracted by an API, then
it is safe.

As to this particular extension, depending on the exact details it can
be safe or unsafe and make different demands on the implementation.
luckily, pretty much all of this was worked out in a discussion a while
ago, the trick was to create a new type 'ACIO' which contained only
'good' top level operations. There will be an 'unsafeIOToACIO' of
course, I mean, ACIO functions have to be implemented somehow. :)

John Meacham - ⑆⑆john⑈

More information about the Haskell-prime mailing list