with(combstruct); #plane trees Tspec := {T = Prod(Z,Sequence(T))}; gfseries(Tspec, unlabelled, x); Order := 30; Tser := gfseries(Tspec, unlabelled, x)[T(x)]; coeff(Tser, x, 24); count([T, Tspec, unlabelled], size=24); #partitions Pspec := {P = Set(Sequence(Z,1 <= card))}; gfseries(Pspec, unlabelled, x); #words Bspec := {B = Sequence(Union(Z1, Z2)), Z1=Atom, Z2=Atom}; gfseries(Bspec, unlabelled, x); gfsolve(Bspec, unlabelled, x); #can it solve the others? gfsolve(Tspec, unlabelled, x); gfsolve(Pspec, unlabelled, x); #it can also generate all elements allstructs([T, Tspec, unlabelled], size=3); allstructs([T, Tspec, unlabelled], size=4); allstructs([B, Bspec, unlabelled], size=3); #or a random element draw([T, Tspec, unlabelled], size=4);