In rustc, there are [some debug assertions that compare types](https://github.com/antoyo/rust/blob/6f44ac21f81c5dd6b96d997f8f3c6bc92a31e48e/compiler/rustc_codegen_ssa/src/mir/rvalue.rs#L976-L1009). To make them pass, we will need to at least do the following: * [ ] Always use unsigned integers (casting to signed only when necessary). * [ ] Always use void pointers (casting to typed pointers only when necessary).