On Sun, 7 Sep 2008, Brandon S. Allbery KF8NH wrote:
plug-in that is reloaded in different forms again and again. And I see
module K which does something I want, so I use it. It so happens that K
uses M, which has a <-. If I knew that using K in my plug-in would cause a
memory leak, I would avoid doing so; but since the whole point of <- is to
avoid making the need for some state visible in the API.
False, as it's in ACIO and therefore advertises that it will "leak
memory" in the name of correct behavior.
I thought ACIO was a restriction on the thing on the right hand side of
the <-? How does the module itself advertise its use of this
(transitively) to users?
Since you consider memory leaks to be worse than correct behavior,
Not leaking memory is *part* of correct behaviour. If <- is to be created
at all, it should be created with restrictions that make it capable of
guaranteeing correct behaviour.
(But you might want to go look at that list of modules which do global
variable initialization and therefore aren't entirely trustworthy unless
something like ACIO exists.)
We should fix them (and their interface) so this doesn't happen, rather
than standardising something broken.
Ganesh
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe