<p dir="auto">As far as I can tell, when <code class="notranslate">&amp;str</code> appears as the return type of a function, this silently implies <code class="notranslate">&amp;'static str</code>. I think this holds for all other types as well, not just <code class="notranslate">str</code>. I propose that we force people to be explicit here, since our general rule is that any borrowed pointer that is returned from a function must have an explicit lifetime.</p>
<p dir="auto">We currently have <code class="notranslate">Zero</code> and <code class="notranslate">One</code> traits that are meant to work with <code class="notranslate">Add</code> and <code class="notranslate">Mul</code> and support iterator operations like <code class="notranslate">sum</code>, as well as the current <code class="notranslate">step_by</code> API.</p>
<p dir="auto">It would be good to have a more comprehensive vision for this kind of trait before stabilization; an RFC would be ideal.</p>