> Augment(L: LabelType): LabelType with { > star: %; > star?: % -> Boolean; > label: % -> L; > coerce: L -> %; > } == add { > Rep == Union(star: Boolean, label: L); import from Rep;
Would you mind to use Rep == Record(label: L); Then star?(x: %): Boolean == nil? rep x; star: % == nil$Rep; Unfortunately, I don't know yet how to let this work in Axiom. > If one *really* needs to distinguish the different transcendental elements, > one > could write them as *1, *2, etc. Ah, but then what about allowing Derivative(F) to have an (optional) additional element with is by default newLabel()$ExtraLabels and have the user provide the *1, *2, etc? > But then, we have the same problem in Plus: > > %83 >> b := structures(set > ["a"])$(Plus(SingletonSpecies,SingletonSpecies))(String) Yep. I'd call this a bug. Internally everything is correct, but the output is not isomorphic with the internal structure. :-( Have you any preference how we should handle that? What's MuPAD-Combinat doing in that case? >> Also that sounds a bit like introducing overhead. So I thought, it would be >> better if (at least some) label domains know how to generate new labels that >> have never been used before. That would for example allow Integer to be used >> as LabelType with the restriction that the user should never use negative >> integers as labels. > > I think the approach using transcendental elements is better - it seems closer > to the maths to me. As I said. I am open and somehow I always prefer a clean design. Mine is certainly not the best. Ralf ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Aldor-combinat-devel mailing list Aldor-combinat-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/aldor-combinat-devel