Joe> I think my preferred way to do this would be just Joe> class MatrixBase: Joe> pass Joe> class Matrix(MatrixBase): Joe> def __mul__(self, other) [multimethod(MatrixBase, MatrixBase)]: Joe> ... Joe> return result Good point. Skip