I have come to the realisation that we are facing a trade-off: either we
allow users to override the colour palette of each theme OR we let the
themes byte compile properly. I am strongly in favour of the latter and
have thus rendered obsolete the relevant customisation option to
override the themes' colours.
Please note that this conclusion is predicated on the knowledge I have
accummulated thus far. I may be wrong and I do not purport to be an
expert. If someone can show me how to both byte compile the themes AND
offer a user-facing variable to override individual colours, then please
let me know---I am happy to follow your guidance.
Read the info node (evaluate the following):
(info "(elisp) Eval")
... to get the value of a variable, while ‘eval’ works,
‘symbol-value’ is preferable ...
Evaluate this:
(info "(elisp) Compiling Macros")
Byte-compiling a file also executes any ‘require’ calls at top-level
in the file, so you can ensure that necessary macro definitions are
available during compilation by requiring the files that define
them (*note Named Features::). To avoid loading the macro
definition files when someone _runs_ the compiled program, write
‘eval-when-compile’ around the ‘require’ calls (*note Eval During
Compile::).