3Mutable List Functions

Use of mutable lists for modern Racket code is strongly
discouraged.
Instead, consider using lists.

For functions described in this section, contracts are not directly
enforced. In particular, when a mutable list
is expected, supplying any other kind of value (or mutating a value that
starts as a mutable list)
tends to produce an exception from mcar or mcdr.

The mappend! procedure appends the given
mutable lists by mutating
the tail of each to refer to the next, using set-mcdr!. Empty
lists are dropped; in particular, the result of calling
mappend! with one or more empty lists is the same as the
result of the call with the empty lists removed from the set of
arguments.