Hi all I am a long term Emacs user, and I still use bbdb-2.35[1] I also use one of the recent packages, ox-ods exporter https://github.com/kjambunathan/org-mode-ox-odt/blob/8242670d7192e8992ac43e3f1033f7bcce55366f/lisp/ox-ods.el#L1329 which uses `string>`. Due to clash between how stock `Emacs 28.1/29.2` defines `string>` and how `bbdb` "re-defines" `string>`, I was getting in to "weird" crash with with `ox-ods` and I hard time debugging it. I only wish if `Emacs` could somehow catch the "error", I could have saved myself some time (~ a week) 1. `emacs -Q` 2. Copy below snippet to `~/tmp/my-test.el`. Note that it "re-defines" `string>` as a macro ... --8<---------------cut here---------------start------------->8--- ;;; -*- mode: emacs-lisp; lexical-binding: t; -*- (require 'subr-x) (require 'pcase) (defvar my-test-fruits (list "apples" "oranges" )) ;; bbdb-2.35 contains the macro (defmacro string> (a b) (list 'not (list 'or (list 'string= a b) (list 'string< a b)))) ;; (defmacro string> (a b) ;; `(not (or (string= ,a ,b) ;; (string< ,a ,b)))) (defun my-test-3 () "Simplifed recipe without any file system APIs" (message "sorted result is: %S" (thread-last my-test-fruits (pcase--flip sort #'string>)))) (my-test-3) (provide 'my-test) --8<---------------cut here---------------end--------------->8--- 3. Byte-compile and load my-test.elc 4. `C-x b *scratch*` and copy the below snippet in there --8<---------------cut here---------------start------------->8--- (add-to-list 'load-path "~/tmp/") (require 'my-test) --8<---------------cut here---------------end--------------->8--- 5. M-x toggle-debug-on-error 6. (my-test-3) C-x C-e (eval-last-sexp) Results in --8<---------------cut here---------------start------------->8--- Debugger entered--Lisp error: (invalid-function (macro . #f(compiled-function (a b) #))) (macro . #f(compiled-function (a b) #))("oranges" "apples") sort(("apples" "oranges") string>) my-test-3() byte-code("\300 \210\301\302!\207" [my-test-3 provide my-test] 2) load("/home/oub/tmp/my-test.elc") byte-compile-and-load-file() funcall-interactively(byte-compile-and-load-file) call-interactively(byte-compile-and-load-file nil nil) command-execute(byte-compile-and-load-file) --8<---------------cut here---------------end--------------->8--- Regards Uwe Brauer -- I strongly condemn Hamas heinous despicable pogroms/atrocities on Israel I strongly condemn Putin's war of aggression against Ukraine. I support to deliver weapons to Ukraine's military. I support the EU and NATO membership of Ukraine.