I think I would write it as `i.dot(self).dot(j)` (or `dot(i, dot(self, j))` or `dot(i, self.dot(j))` or whatever), as I'm positive that is correct. Looking through the `Dyadic` code though, it is order dependent - `__rand__` and `__and__` operate differently.