foo(Tensor x, (Tensor, Tensor) y) -> ((Tensor, Tensor))
foo(Tensor x, (Tensor, Tensor) y) -> ((Tensor, Tensor))
foo(str x, (Tensor, Tensor) y) -> ((str, str))
foo(int x, (Tensor, Tensor) y) -> ((int, int))
foo(bool x, (Tensor, Tensor) y) -> ((bool, bool))
foo(float[3] x, (Tensor, Tensor) y) -> ((float[], float[]))
foo(int[2] x, (Tensor, Tensor) y) -> ((int[], int[]))
foo(int[] x, (Tensor, Tensor) y) -> ((int[], int[]))
foo(int? x, (Tensor, Tensor) y) -> ((int?, int?))
