2005-02-04: A short summary of the (experimental) ring stack feature:

Normally, the ring structure is given by the present setup.
Sometimes, we may want to work with several rings simultaneously. In
order to do this, the present ring characteristica may be saved on a
stack, or restored therefrom. (Or, should I call it a 'heap'? Anyhow,
a 'last in, first out' object.) It then may be restored at a later stage.

For the moment, the 'ring structure' is taken as meaning the
VARIABLESETUP part of the setup, together with the internal
representations of the 'interned' monomials.

For the moment, the following (user available) procedures exist:

 POPRING (void) ; genint
    If the ring stack is non-empty, then restore the ring setting
    from the topmost ring stack object; remove this; and return the
    former ring stack length. Else, do nothing, and return NIL.

 PUSHRING (void) ; int
    Add an item on top of the ring stack, corresponding to the
    present ring setting. Return the new ring stack length.

 RINGSTACKLENGTH () : int
    Return the length of the ring stack.

 SWITCHRING (void) ; boolean
    If the ring stack is empty, then do nothing, and return NIL.
    Else, replace the current ring setting with the one given
    by the topmost ring stack element, and vice versa, and return T.