Right now the return value is a raw `u64`, but we may want to change the representation over time (ala #10389). We should wrap the return value in a `struct TypeId { priv ... }` and define the `Eq` trait on this structure. Fairly easy bug, but requires probably adding a lang item and mucking around with some intrinsics, so not flagging as E-easy.