Daniel Murphy: >> assert(foo(x)); > > Having the compiler see inside function bodies is problematic. Why do you need that? You can tell that foo() is not strongly pure from its signature. That's enough. Bye, bearophile