Nicolas, I had to add a bunch of code in several places to deal properly with the JoinCategories that were autogenerated by ModulesWithBasis(field).TensorProducts() coming from the ModulesWithBasis(field) ---> VectorSpaces(field) dispatch, but then everything started working brilliantly!!!
I gave JoinCategory and VectorSpaces.TensorProducts() extra_super_categories so they work like ModulesWithBasis.TensorProducts() was supposed to (so that the tensor product categories are properly reminded that they are module/vector space categories) and was really careful whenever trying to take base_category of something like ModulesWithBasis(field).TensorProducts() (which is currently a JoinCategory and therefore has no base_category method). --Mark > My vote for tensor products is that > I really want any instance of ModulesWithBasis(R).TensorProducts() > to be an instance of ModulesWithBasis(R), to automatically have the > module methods to use, etc. > > There is something bothering me. > > Just now I had an annoying bug. > I made an instance of a subclass of CombinatorialFreeModule_Tensor > (which is a subclass of CombinatorialFreeModule) > which, despite being apparently properly __init__ed with > a tensor category, did not have the basis method of CFM. > Then I __init__ed with the tensor category joined with > the module category, and lo and behold, the basis method appeared. > > Why didn't usual lexical inheritance supply the basis method? > > --Mark > > > On Thu, Apr 03, 2014 at 09:59:39AM -0400, Mark Shimozono wrote: > > > Removing this made a difference. > > > I made a TensorUnit class that was of this type, > > > but not made by the usual tensor construction, > > > and it needed the above definition to know it had a basis. > > > > Oh, you are right, sorry! I misread the code. I though > > TensorProductsCategory was a subclass of > > RegressiveCovariantConstructionCategory. Hmm, back to the discussion > > about option (a) or (b). The same question arises for > > CartesianProducts; do we want it to be regressive, like is the case > > of Quotients and the like. It's not exactly the same use case. > > > > 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-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/d/optout. > > > > > > > > > > -- > 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/d/optout. > > -- 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/d/optout.