The `StepThrough`

category provides a function `init()`

which yields an initial element of the domain and a function `nextItem(n)`

which produces the element after `n`

, or `"failed"`

if there is no such element.

This sounds quite like an implementation of countable sets. But unfortunately, it isn't. The documentation says, that it is not required that all elements of the domain are eventually produced.

This given, *any* domain could belong to `STEP`

. Inspecting the domains in Axiom we find however, that (nearly) exactly those domains that contain a countable number of elements have `STEP`

, while, for example `EXPR`

and `Float`

don't.

I would argue that this should be changed and I will provide an implementation shortly. There is little danger of breaking anything, since `STEP`

is only used at two different places, namely in `GENPGCD`

and in `PFBRU`

.

Martin