//ww:run-exit 0 // #55 drain-SSoT leg: a same-slot subset ((bool|void) -> (i64|bool|void), // both 16B) call arg is classified WIDEN by push AND drain — the old // slot-size drain gates called it natural. The 0->1 tag remap through // the widen scratch is what this pins. package main; type narrow = (bool | void); type wide = (i64 | bool | void); fn take(w: wide) i32 = { if (w is bool) { return 7; }; return 1; }; export fn main() i32 = { let n: narrow = true; if (take(n) != 7) { return 1; }; return 0; };