Some ideas: 1) Require that const/invariant types as the return type of a function use parentheses. 2) Place the "const/invariant" keyword between the type and the function name. Personally, I think #1 is the best solution since it will still allow for: invariant { int* foo(); void bar(); } That said, it's likely to catch newbies out. -- Daniel