:preface is evaluated firstThe :preface section is evaluated before anything else, except
:disabled and :ensure. It can be used to establish
function and variable definitions that will:
:if
test.
Note that whatever is specified within :preface is evaluated
both at load time and at byte-compilation time, in order to ensure
that definitions are seen by both the Lisp evaluator and the
byte-compiler. Therefore, you should avoid having any side-effects in
your :preface forms, and restrict them to symbol declarations
and definitions.