title: How to add conformance to _Incrementable in NSDate
body: <p>I am trying to add conformance to <code>ForwardIndexType</code> in <code>NSDate</code>s so I can make a <code>Range&lt;NSDate&gt;</code>, in order to do it I must implement <code>public func successor() -&gt; Self</code> from <code>_Incrementable</code>.</p>
  
  <p>My implementation is really simple and aims to state the date that succeeds another one is the one exactly one second after it, that's not what is being asked here.</p>
  
  <pre><code>extension NSDate: ForwardIndexType {
      public func successor() -&gt; Self {
          return NSDate(timeInterval: 1, sinceDate: self) 
      }
  }
  </code></pre>
  
  <p>The error I'm getting is</p>
  
  <blockquote>
    <p>Cannot convert return expression of type '<code>NSDate</code>' to return type '<code>Self</code>'</p>
  </blockquote>
  
  <p>I've tried adding <code>as Self</code> or <code>as! Self</code> but the compiler does not allow me since converting from <code>NSDate</code> to <code>Self</code> always succeeds in that case. Replacing <code>Self</code> by <code>NSDate</code> also does not do the trick.</p>
  
  <p>How can I do it the right way?</p>