Furthermore, I think Walter's idea to use asserts as a source of
optimizer hints is a very powerful concept that may turn out to
be a
revolutionary feature in D. It could very well develop into the
answer
to my long search for a way of declaring identities in
user-defined
types that allow high-level optimizations by the optimizer, thus
allowing user-defined types to be on par with built-in types in
optimizability.
The answer to your search is "term rewriting macros (with
sideeffect and alias analysis)" as introduced by Nimrod. Watch my
talk. ;-)
'assume' is not nearly powerful enough for this and in no way
"revolutionary".