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