# Coercion not commutative

I implemented a new algebraic structure `A`

, derived from `CommutativeAlgebra`

(over the rationals `QQ`

) with element class `Aelement`

derived from `CommutativeAlgebraElement`

. The method `A._element_constructor_`

can, in particular, coerce an element from `QQ`

into an element `Aelement`

and this works fine if done explicitly. Also if I multiply an element from `A`

with an element from `QQ`

from the right-hand side everything works and the rational number is properly coerced to `A`

. However, if I multiply an element from `QQ`

with an element from `A`

I get an error and the coercion does not work:

```
sage: A(QQ(2)) # works
sage: C.has_coerce_map_from(QQ)
True
sage: A.an_element()*QQ(2) # works
sage: ZZ(2)*A.an_element() # works
sage: QQ(2)*A.an_element() # does not work
```

The last call yields the error:

```
~/sage-9.2/local/lib/python3.8/site-packages/sage/rings/rational.pyx in sage.rings.rational.Rational.__mul__ (build/cythonized/sage/rings/rational.c:20912)()
2399 return x
2400
-> 2401 return coercion_model.bin_op(left, right, operator.mul)
2402
2403 cpdef _mul_(self, right):
~/sage-9.2/local/lib/python3.8/site-packages/sage/structure/coerce.pyx in sage.structure.coerce.CoercionModel.bin_op (build/cythonized/sage/structure/coerce.c:11304)()
1246 # We should really include the underlying error.
1247 # This causes so much headache.
-> 1248 raise bin_op_exception(op, x, y)
1249
1250 cpdef canonical_coercion(self, x, y):
TypeError: unsupported operand parent(s) for *: 'Rational Field' and 'A'
```

Does someone know what the problem could be? If no one has an idea, I will try to provide a minimal example which exhibits the error. Thank you!

Could you please provide the whole code so that we can reproduce ?

I will try to provide a minimal example which shows the error tomorrow.