Re: ACIO versus Execution Contexts

Adrian wrote (snipped):
But if top level MVars are all that's on offer I'd settle for that :-) I can still implement my "oneShot" examples just by passing the top level MVar as an argument to oneShot rather than having it create its own.
I am not sure which the oneShot examples are, but I suspect you can implement them just as well using the execution contexts I have proposed. If you want to be sure your data will not be clobbered by other modules, simply wrap the state in special type, and make sure no-one else has access to that type. This requires no change to the Glasgow Haskell language at all, only a new library module. I suppose it may happen that you are worried about someone using withEmptyDict to create an inner execution context where everything starts from scratch, because you want to interface with broken C libraries which are stateful. However since this is a problem caused by broken C libraries rather than anything in Haskell, surely it would be better to support this by providing a global dictionary to be used in such exceptional cases, while leaving execution contexts the preferred tool in the Haskell world.
participants (1)
-
George Russell