This surprised me, I'm used to seeing `(a & b) == b`. Apparently ruby's `&` takes precedence over `==`, but in C it's reversed.