Nicolas, I covet your thoughts on the following.
It seems mostly hopeless to implement tensor products for random modules since this involves infinitely many generators and infinitely many relations. Therefore I will limit this discussion to ModulesWithBasis(R) for R a commutative ring with 1. Right now the ring R is not in the category of ModulesWithBasis(R), so you can't tensor with it. Even though tensoring an R-module over R with R is isomorphic to doing nothing, it is desirable to be able to do this, for reasons given below. Therefore I propose that the category of ModulesWithBasis(R).TensorProducts() should supply a special object (the identity object in the category), implemented by a CombinatorialFreeModule over R with a single basis element. I suppose for AlgebrasWithBasis(R).TensorProducts() the same object would also know that it is an AlgebraWithBasis. This would allow (together with my tensor-of-maps construction) for the natural and easy construction of somewhat complicated morphisms. For example, lots of the maps occurring in Hopf algebra theory require the presence of R as an object with which to tensor. Moreover, if certain structure maps (say for Hopf algebras) were required to be module morphisms rather than trickly little functions, then it would be possible (in fact really easy) to do things like automatically provide Hopf structure on a tensor product, easily cobble together TestSuites to check commutativity of complicated diagrams involving tensoring, etc. Well, maybe that requirement is too stringent; as long as one can make an actual morphism out of the little function. --Mark -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-combinat-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-combinat-devel. For more options, visit https://groups.google.com/groups/opt_out.