compute-restarts uses the dynamic state of the program to compute
a list of the restarts which are currently active.
The resulting list is ordered so that the innermost
(more-recently established) restarts are nearer the head of the list.
When condition is non-nil, only those restarts
are considered that are either explicitly associated with that condition,
or not associated with any condition; that is, the excluded restarts
are those that are associated with a non-empty set of conditions of
which the given condition is not an element.
If condition is nil, all restarts are considered.
compute-restarts returns all
applicable restarts,
including anonymous ones, even if some of them have the same name as
others and would therefore not be found by find-restart
when given a symbol argument.
Implementations are permitted, but not required, to return distinct
lists from repeated calls to compute-restarts while in
the same dynamic environment.
The consequences are undefined if the list returned by
compute-restarts is every [should be ever] modified.