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?)