Should I always, when possible, prefer `immutable` over `const`? And does `immutable` increase the possibility of the compiler doing optimizations, such as common subexpression elimination? Or can the compiler infer `const` declarations to also be `immutable`?