title: What are Go's rules for comparing bytes with runes?
body: <p>I've discovered the following peculiarity:</p>
  
  <pre><code>b := "a"[0]
  r := 'a'
  fmt.Println(b == r) // Does not compile, cannot compare byte and rune
  fmt.Println("a"[0] == 'a') // Compiles and prints "true"
  </code></pre>
  
  <p>How does this work?</p>