uint :: #type u64; sint :: #type s64; rune :: #type u32; rawptr :: #type *void; Default_Align :: #run 2 * align_of(rawptr); align_of :: ($T: Type) -> uint #expand { return #run -> uint { info := type_info(struct{ p: u8; t: T; }); return info.members[1].offset_in_bytes.(uint); }; } bitcast :: ($T: Type, expr: Code) -> T #expand { value := expr; return (*value).(*T).*; }