Hi Martin Some time ago I saw somewhere that you removed the function elements:()->Generator(%) from LabelType. I understand that this function is quite questionable, so let me explain my (unfinished) thoughts.
Take Z==Integer and assume we have an (Aldor) species F with LabelType Z. Then think of the derivative F'. F' lives over Z'=Z \cup {*}. That would be the straightforward design. It simply leads to Zprime == Succ Z; where Succ is the domain constructor that adds a special element "@" to the underlying domain, for example Succ=Partial and @=failed. Now there are two problems. 1) How do you output "@" if you want to print "structures"? Let's say you choose to print it as "*". But to make things more complicated, assume Z==String. I don't know how to solve that problem consistently without introducing ugly labels. 2) What about F''? That lives then over Succ(Succ(Z)). Remember how you have implemented Partial... Each application of Succ basically wraps the original elements into a record. 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. Anyway, I just wanted to record my thoughts on the mailing list. It is certainly not the last word spoken. So if you have good suggestions, I am open to change what I have done so far. 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