# Parentmethods for subcategories obtained from Functorial Constructions

In a related question to

I have a category Cs which implements the axiom FinitelyGeneratedAsCs. I want to define parent methods for graded objects of Cs. Some of these apply for all objects, some only for the finitely generated ones. If I have a design sketched as


class Cs(Category_over_base_ring):

class Subcategorymethods:
def FinitelyGenerate(self):
return self._with_axiom("FinitelyGeneratedAsCs")

class ParentMethods:
def some_method_for_all_parents(self)

class FinitelyGeneratedAsCs(CategoryWithAxiom_over_base_ring):

sage: Cs(QQ).FinitelyGenerated().Graded()

If I however implement Graded as an axiom, say FakeGraded then I can set up parent methods as described above (just need to add a call to self._with_axiom('FakeGraded') in the appropriate place. I thought however that to have better integration with other parts of Sage I should implement Graded as the functorial construction in GradedModulesCategory but I'm hitting the above error.