behavior.el includes this:
;; List of enabled behaviors.
(defcustom enabled-behavior-list nil
"List of currently enabled behaviors.
Normally, don't set it directly; use `enable-behavior' or `disable-behavior'."
:set #'(lambda (sym val)
(set sym val)
(let* ((old-val enabled-behavior-list)
(disable-list (set-difference old-val val))
(enable-list (set-difference val old-val)))
(dolist (b disable-list)
(disable-behavior b t))
(dolist (b enable-list)
(enable-behavior b t))
(assert (equal enabled-behavior-list val)))))
:type '(repeat (symbol :tag "Behavior"))
At startup, custom-set-variables calls it with
(resize-minibuffer recent-files mwheel jka-compr func-menu filladapt efs)
as a parameter. The set method does its work, end ends up with
(efs filladapt func-menu jka-compr mwheel recent-files resize-minibuffer)
as a result. Hence, the assert fails.
So the problem is obvious (the list is commutative, equal isn't), but
I don't know how to fix it (short of dropping the assert entirely).
Do we have an equal-commutative or something?