Adrian Hey wrote:

I'm not at all convinced, having not seen or groked either the "before" or
"after" code. Perhaps you could show how this would work with an even simpler
example, the one that I posted concerning the use of oneShot to create a
top level (I.E. exportable) userInit.

AFAICS the only alternative to..

userInit <- oneShot realInit

is to export realInit, have users create their own userInit, and then pass
that around as an argument to everything that might make use of userInit.


The way I would do it would be to have an init function that
initialises an abstract data structure. Because the results of
the init function are stateless and not in a global variable it
does not matter if the user calls it twice.

By not exporting the constructors for the data type from
your module the 'user' will not be able to get at the contents.

   Keean
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to