### Constructor for InfiniteEnumeratedSet?

Imagine I want to rewrite from scratch the "Permutations()" and "Permutations(n)" (for n integer) enumeratedsets and the coercion of the latter into the former. How do I do this?

(This is not the first time I am asking for the constructor of a class. The last time I was looking for the constructor of a graded algebra, and the answer was in some example code. I can't believe there is no documentation for these things!)

*PS.* I am not really rewriting permutations; I just want to know the constructor so that I can create enumeratedsets similar to permutations (currently, ordered rooted forests a la Loic Foissy).

**EDIT:** Maybe I should be more concrete. Say I want to encode permutations as n-tuples of integers from {1,2,...,n} for which a certain function returns true. I know how to get the n-tuples of integers from {1,2,...,n}, but I don't even know how to "filter" out the ones for which my function returns false, let alone make them into an EnumeratedSet.

**EDIT #2:** Thanks to John Palmieri, this question is partially solved: I was able to code the CombinatorialClass of ordered rooted forests on n vertices: HTML file / SWS file. However, I still don't see how to get the CombinatorialClass (or EnumeratedSet or whatever; I don't understand the difference) of **all** ordered rooted forests, just as there is a class Permutation() of **all** permutations. This should be as easy as taking a disjoint union, but if I just take DisjointUnionEnumeratedSets(OForestsFamily), then the resulting enumerated set does not know how to test membership (unsurprisingly).