public ImmutableMatrix Add(ImmutableMatrix other)
        {
            // for now, just assuming the matrices are the same size.

            int[,] resultData = new int[_data.GetLength(0), _data.GetLength(1)];

            for (int i = 0; i < _data.GetLength(0); i++)
            {
                for (int j = 0; j < _data.GetLength(1); j++)
                {
                    resultData[i, j] = _data[i, j] + other._data[i, j];
                }
            }

            return(new ImmutableMatrix(resultData));
        }
        void TestingImmutableMatrix()
        {
            ImmutableMatrix matrix = new ImmutableMatrix(new int[, ]
            {
                { 2, 3 },
                { 0, -1 }
            });
            ImmutableMatrix matrix2 = new ImmutableMatrix(new int[, ]
            {
                { 0, 1 },
                { 1, 0 }
            });

            ImmutableMatrix matrix3 = matrix.Add(matrix2);
            // | 2  4 |
            // | 1 -1 |
        }