I&#39;m not sure about that. &quot;Initialize backward from x, count y&quot; is unambiguous as to how initialization starts and iterates (the first argument), and it is clear that `count` is an end condition dissociated from anything to do with how initialization starts and iterates.<br><br>By contrast, &quot;Initialize from x, backward from y&quot; associates the direction of movement with y instead of x. Thus, y becomes the start condition (the end condition being implicitly &quot;to zero&quot;), thus raising the question of what position x is in relative to the count y.<br><div class="gmail_quote"><div dir="ltr">On Tue, Jul 5, 2016 at 11:10 Andrew Trick &lt;<a href="mailto:atrick@apple.com">atrick@apple.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><blockquote type="cite"><div>On Jul 5, 2016, at 11:05 AM, Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>&gt; wrote:</div><br><div><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">I don&#39;t mind `initialize(from:forwardToCount:)`, but I do have trouble with Brent&#39;s suggestion of `initialize(from:backwardFromCount:)`. It adds ambiguity as to whether the pointer in the first argument points to the 0th element or the (count - 1)th element from which initializing is proceeding backward, a problem that does not exist with the currently proposed version `initializeBackward(from:count:)`. I don&#39;t find the symmetry wins compelling enough to overcome that additional ambiguity.</span></div></blockquote></div><br></div><div style="word-wrap:break-word"><div>That’s a good point, but I think both forms are equally ambiguous.</div><div><br></div><div>-Andy</div></div></blockquote></div>