fare-matcher is written by Fare Rideau. It extends CL with pattern matching much like ML or Erlang, but in a way well integrated with CL, and with the possibility of extending the core matcher with arbitrary primitives.
It also includes a matching-friendly implementation of quasiquote, which makes it possible to match source code in an easy way. To use it, you may need to
(eval-when (:compile-toplevel :load-toplevel :execute) (fare-quasiquote::enable-quasiquote)).
It depends on fare-utils.
There is a little documentation at fare-matcher-docs.
fare-matcher source code is at: https://gitlab.common-lisp.net/frideau/fare-matcher
- Thomas F. Burdick distributes this package under a modern BSD license: fare-relicensed. I (Fare Rideau) hope my disclaimer makes it unnecessary, now.
- Matthew Danish has some extensions and clean-ups, packaged with an ASDF system, here. It has since been merged with the upstream version (2005-01-31).
- Note that a different pattern matcher with a similar syntax is part of the bese tools as used in UCW.