//ww:run-exit 3 package main; type pair = struct { x: i64, y: i64, z: i64 }; type tag = ([]u8 | pair); type holder = struct { e: tag, mark: i32 }; fn main() i32 = { let raw: [8]u8; raw[0] = 1u8; raw[1] = 2u8; raw[2] = 3u8; let h: holder; h.mark = 99; h.e = (raw[0:3]: tag); match (h.e) { case let v: []u8 => { if (v.cap != 8) { return 20; }; return v.len: i32; }; case let p: pair => return -1; }; };