1foo( self, Tensor x, (Tensor, Tensor) y) -> ((Tensor, Tensor)) 2foo( self, Tensor x, (Tensor, Tensor) y) -> ((Tensor, Tensor)) 3foo( self, str x, (Tensor, Tensor) y) -> ((str, str)) 4foo( self, int x, (Tensor, Tensor) y) -> ((int, int)) 5foo( self, bool x, (Tensor, Tensor) y) -> ((bool, bool)) 6foo( self, float[3] x, (Tensor, Tensor) y) -> ((float[], float[])) 7foo( self, int[2] x, (Tensor, Tensor) y) -> ((int[], int[])) 8foo( self, int[] x, (Tensor, Tensor) y) -> ((int[], int[])) 9foo( self, int? x, (Tensor, Tensor) y) -> ((int?, int?)) 10