I'm attempting to give the RFC41 fixed point types a spin and I'm trying to create a struct that wraps two fixed point numbers to create a complex number, is there a better way of implementing `__mul__` on a struct view than this: ```python class CFixLayout(data.StructLayout): def __init__(self, shape): super().__init__({ "real": shape, "imag": shape, }) def __call__(self, value): return CFixView(self, value) class CFixView(data.View): def __mul__(self, other): r, i = self.real * other.real - self.imag * other.imag, self.imag * other.real + self.real * other.imag width = r.f_width + r.i_width + (1 if r.signed else 0) return CFixView(CFixLayout(r.shape()), (r.as_value() | (i.as_value() << (width)))[:2*width]) ```