(defmacro serapeum.exporting:defclass (name supers &body (slots . options))
...)
is equivalent to:
(defmacro serapeum.exporting:defclass (name supers &rest more-stuff)
(destructuring-bind (slots . options) more-stuff)
...))
which is equivalent to:
(defmacro serapeum.exporting:defclass (name supers &rest more-stuff)
(destructuring-bind (slots &rest options) more-stuff)
...))
They use &body
instead of &rest
as an indentation hint.
They use the dotted-list form to avoid having to do destructuring-bind
, and
also because it provides a nicer documentation experience when your editor shows
your the lambda list.