--Copyright The Numerical Algorithms Group Limited 1994.

-- \xtc{
-- Macros can be parameterized and so can be used for many different
-- kinds of objects.
-- }{
macro ff(x) == x**2 + 1
-- }
-- \xtc{
-- Apply it to a number, a symbol, or an expression.
-- }{
ff z
-- }
-- \xtc{
-- Macros can also be nested, but you will get an error message if you
-- run out of space because of an infinite nesting loop.
-- }{
macro gg(x) == ff(2*x - 2/3)
-- }
-- \xtc{
-- This new macro is fine as it does not produce a loop.
-- }{
gg(1/w)
-- }
-- %
-- \xtc{
-- This however will loop since \spad{gg} is
-- defined in terms of \spad{ff}.
-- % risk not using a free g on next line
-- }{
macro ff(x) == gg(-x)
-- }
