Hi Simon, On Wed, May 28, 2014 at 03:36:09PM +0000, Simon King wrote: > Are you sure that this is a problem? In order to construct ZZ, we need > CommutativeAdditiveGroups()---which is already there. Now, someone does > Modules(ZZ)---and of course we can make it so that it returns > CommutativeAdditiveGroups(). > > In other words, the suggestion is that Modules(ZZ) returns > CommutativeAdditiveGroups(), not the other way around.
Hmm. Good point. Well, that's not enough: if we just do this, then you would not get in Modules(ZZ) all the code that is provided by the Modules category. But along this direction, and using #15801, we could think of: - Modules(ZZ) returns CommutativeAdditiveGroups() - CommutativeAdditiveGroups() inherits from Modules(Rings()) Still there is something smelly left: with this, we have Modules(QQ) inherit from Modules(ZZ)=CommutativeAdditiveGroups() which itself inherits from Modules(Rings()). So we have two categories on top of each other providing the same code, with one where implicitly we think base_ring=QQ and the other base_ring=ZZ. It might not be a problem, but this needs some exploring, testing, thinking out. I am not volunteering, but if someone is, great. Cheers, Nicolas -- Nicolas M. ThiƩry "Isil" <nthi...@users.sf.net> http://Nicolas.Thiery.name/ -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.