Hello Alex, GNU Guile 1.9 now uses your implementation of ‘match’ as a nice replacement for Wright’s implementation, so thank you! I stumbled upon this incompatibility: Wright’s ‘match’ supports ‘..1’, ‘..2’, etc., which mean “1 or more”, “2 or more”, etc., and the associated variable (when there’s one) is bound to the list that matches: (match '(a 1 2) (('a x ..1) x)) => (1 2) AFAICS these patterns aren’t implemented in your ‘match’. Do you have plans to implement them? Thanks! Ludo’.