Introducing 'pure' as a new storage class for denoting manifest constants and functions without sideeffects sounds very good to me. I'd be happy with that solution. Much better than abusing the poor enum keyword. It just wants to enumerate stuff, can't you see it? Let's not be that cruel :)