title: Why does "UInt64(1 << 63)" crash?
body: <pre><code>println(UInt8(1 &lt;&lt; 7)) // OK
  println(UInt16(1 &lt;&lt; 15)) // OK
  println(UInt32(1 &lt;&lt; 31)) // OK
  println(UInt64(1 &lt;&lt; 63)) // Crash
  </code></pre>
  
  <p>I would like to understand why this happens for UInt64 only. Thanks!</p>
  
  <p>Edit:
  To make matters more confusing, the following all work:</p>
  
  <pre><code>println(1 &lt;&lt; UInt8(7))
  println(1 &lt;&lt; UInt16(15))
  println(1 &lt;&lt; UInt32(31))
  println(1 &lt;&lt; UInt64(63))
  </code></pre>
  
  <p>My guess is that an intermediate result produced by computing 1 &lt;&lt; 63 is too large.</p>