r until it
equals <code>limit</code>.</p>

<p><strong>Returns:</strong>
  - If <code>n &gt; 0</code>, the result of applying <code>successor</code> to <code>self</code> <code>n</code> times
    but not past <code>limit</code>.
  - If <code>n &lt; 0</code>, the result of applying <code>predecessor</code> to <code>self</code> <code>-n</code> times
    but not past <code>limit</code>.
  - Otherwise, <code>self</code>.</p>

<p><strong>Requires:</strong> <code>n &gt;= 0</code> if only conforming to <code>Forward