// expect: x: ends the branches of an if in different states fn take(.d p) { return p[0]; } fn main() { let x = new(1); if (x[0]) take(d*x); else u*x; return 0; }