title: Why / how could NSUInteger be returning a NEGATIVE number?
body: <p>What is the point of having a seperate unsigned type, aka <code>NSUInteger</code> if there is <strong><em>no guarantee (nor even, it seems, a chance)</em></strong> that you can assume, bet your bottom dollar on, or <em>cry yourself to sleep for</em> - what the name implies - an <em>inherently nonnegative result</em>.</p>
  
  <pre><code>NSUInteger normal = 5;
  NSUInteger freaky = normal - 55;
  NSLog(@"%ld, %ld", normal, freaky);
  </code></pre>
  
  <p><kbd>NSLOG</kbd> <code>5, -50</code></p>
  
  <p>Sure, I can bend over backwards trying to get zero, <em>or some kind of normalized value…</em></p>
  
  <pre><code>NSUInteger nonNeg = (((normal - 55) &gt;= 0) ? (normal - 55) : 0);
  </code></pre>
  
  <p><kbd>PARRALELUNIVERSELOG</kbd> <code>5, -50</code></p>
  
  <p>But here the compiler complains.. rightfully so that <code>comparison of unsigned expression &gt;= 0 is always true</code> - and there it is, an answer I didn't want / expect.  Someone slap my face, get me a drink, an tell me what year it is.. or <em>better yet</em>… how to make it - you know - not <em>do that</em>.</p>