> Where do the semantics of haskell say this? How does it interact with
> fixing bugs (which means changing mathematical and universal constant
> functions--since all functions are constants)?
What semantics of haskell?-) But if there was one, it might not talk
about separate compilation (it should, though), or packages. And if
you consider cross-package inlining, separate package updates, or
dynamic linking, etc, you might want to flag all variable constants as
{-# NOINLINE c #-}, and perhaps even switch of any CSE-style
optimizations. The usual bag of tricks for unsafePerformIO constants.
Claus