Perhaps it is time to dispose of match-letrec as far as the SRFI is concerned. That doesn't mean it needs to be removed from implementations in all its buggy glory, but statistical investigation does show that new bugs are often found in the vicinity of other known bugs.
We can always add it back if someone comes up with a compelling use case.
A while back, I went searching for Guile code standards, and came across the Guix code standards that specify using match and records over cxr and lists. When I search
https://github.com/guix-mirror/guix I get:
- "ice-9 match" 474 results
- match-lambda 238 results
- match-let 3 results
- match-letrec 1 result
One of each of those results (except "ice-9 match") is the etc/indent-code.el file so there are no uses of match-letrec I can find. The same trend seems to hold with Guile in general, there are plenty of uses of match/match-lambda by other modules, but not any match-let / match-letrecs external to match or sxml-match defining them.
But I do worry that, considering the original rationale, which was to package a pattern-matcher already widely in use in SRFI form, we are moving toward having a pattern-matcher nowhere in use in SRFI form.