//ww:run-exit 33 package main; type tu = (i64 | void); fn nest(p: *[]i64, q: *[]i64, t: tu) void = { append(*p, match (t) { case let x: i64 => { append(*q, 500); yield x; }; case void => { yield 0; }; }); }; export fn main() i32 = { let a: []i64 = []; let b: []i64 = []; let t: tu = 7; nest(&a, &b, t); if (len(a) != 1) { return 1; }; if (len(b) != 1) { return 2; }; if (a[0] != 7) { return 3; }; if (b[0] != 500) { return 4; }; return 33; };