one questions is for generics, conditional compilation, and when templates are in the mix which can complicate things.
> The extra line result = 0 or similar in the beginning of a proc how about used(result); it's more generic and would work with any type, and doesn't change semantics
