fn test<x, y : usize>(a : i32[x, y]) -> i32[x, y] {
  return a;
}

fn main<x, y, z : usize>() -> i32[y, z] {
  let n : i32[y, z];
  return test::<y, z>(n);
}