// TODO: y.1 shoudn't be part of the slice
  //   the issue is that when we do z = y, then the collected influence of y
  //   is broadcast into every conflicting place in z. So y.1 -> z -> z.0.
  //   we need something to "match up" influences so y.1 only flows to z.1

fn main() {
  let mut x = 1;
  let mut y = (0, 0);
  y.1 += 1;
  let z = y;
  x += z.0;
  `(x)`;
}