Hi Martin, > (By the way, are you absolutely sure that SetSpecies is necessary?)
Read the documentation. I have tried to explain why I had to introduce SetSpecies. But maybe it is not "absolut". In particular, SetSpecies came up when I thought more carefully how to implement Compose. But there are actually two issues. 1) SetSpecies L as an argument of a species F. For example, in Compose we have Rep == Record( tag: SetPartition L, left: F SetSpecies L, right: SetSpecies G L ); which is pretty near to the actual definition in BLL. 2) SetSpecies now appears in <<exports: CombinatorialSpecies>>= structures: SetSpecies L -> Generator %; @ The reason was that I want to be close to BLL. And there a species is a functor from the category of sets to the category of sets. If we keep structures: List L -> Generator %; then "structures" would have to check whether the input list is, in fact, a set. I wanted to avoid that checking and thus put the information into the type. BUT... I am not so convinced that this is the best possible design. I think already to change that signature back to List or to Array instead of SetSpecies, first I have to check the consequences. I would impose a different meaning than it was before. So, let me open a discussion on that idea. It is as follows. Let F be a species and U be a set and then F[U] is the set of structures. That is perfectly fine in mathematics, but there are some people who like to do ranking and unranking (and I don't even know whether it would be interesting to provide different generation orderings for one species). So in order to get some order on F[U], U has to be ordered. In that idea I would like to have structures: List L -> Generator % or structures: Array L -> Generator % with the meaning that structures([a,b,c]) is the "same" as structures([1,2,3]) but in each structure 1 is replaced by a, 2 by b, and 3 by c. With that in the documentation, it would mean that structures([a,a,a]) is perfectly defined. It gives as many structures as applied to [1,2,3]. And not the same as applied to [a]. It basically means, if f is a function from {1,2,...,n} to an arbitrary set s (where not necessarily #s=n) then structures(l) generates the elements f(F[{1,2,...,}]) in a predefined order. Here l is the list [f(1), f(2), ..., f(n)]. I hope, it is clear, that in f(F[{1,2,...,}]) f is actually applied to the elements of F[{1,2,...,}] in the sense of applying a bijection \sigma to a structure. Would someone like that more than what I have written near the introduction of SetSpecies in trunk? All the best Ralf ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Aldor-combinat-devel mailing list Aldor-combinat-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/aldor-combinat-devel