After little investigation it looks like most resonable
category could be Join(CommutativeRing, Algebra(R))
plus specific exports. Another possibility is
MonogenicAlgebra(R, Rep) with specific exports. The
first one requires removal of 3 operations, that is 'exquo',
'recip' and 'divide'. However those operations are exported
only because when R is a Field also MonogenicAlgebra(R, Rep)
claims to be a Field. And ModMonic is a field only if R is a
field and modulus polynomial is irreducible. ddfact.spad uses
ModMonic with polynomial which is _not_ irreducible,
so MonogenicAlgebra was too much.
When we declare type as Join(CommutativeRing, Algebra(R))
plus specific exports, and remove unimplemented 'An' from
specific exports there are only 3 undefined operations:
characteristic, index and lookup.
Both changes require little adjustment to 'ffdoms.spad'
and require R to be a CommutaiveRing.
--
Waldek Hebisch