There is one last point we need to address in order to complete this
section. There might be times when you need to manipulate an explicit
group object, but the object itself can still be created in a
declarative (or mixed) way because you don’t need to keep references on
its items. For this, Clon
provides a macro called defgroup
.
Define a new group and return it. This macro behaves exactly like the
group
form in a call to defsynopsis
(see Groups). In
fact, an intermediate step in the expansion of the defsynopsis
macro is to transform group
forms into defgroup
macro
calls. As for defsynopsis
, defgroup
allows you to mix
declarative forms, constructor calls or any kind of Lisp code.