A more a fitting comment might be that `FiniteExtension` is not a subclass of `Domain`. However, it should be possible to define a `FiniteField` class that would derive from `Domain` and `FiniteExtension`. It is also possible to define other wrapper subclasses of `Domain` for (some types of)  `FiniteExtension`. (Consider `PolynomialRing` vs. `PolyRing`.)