On Tue, Nov 14, 2023 at 2:27 AM João Távora wrote: > > > The case in the CL world against generic functions' performance > is often not that the dispatch is slow, but that > That said, it still matters, of course. Here's your non-destructive seq-difference-3 but with many small lists: (setq cc (make-list 12 "blabla")) (setq list2 (make-list 12 "shooveedoowaa")) ;; (4.225398191 31 2.3103362619999928) (benchmark-run 1000000 (cl-set-difference cc list2 :test #'equal)) ;; (6.959332908 56 4.235225837999991) (benchmark-run 1000000 (seq-difference-3 cc list2)) And of course the destructive version still wins by 10x ;; (0.676608019 4 0.26997238299998116) (benchmark-run 1000000 (cl-nset-difference cc list2 :test #'equal)) João