match-let works as advertised, but a named match-let gives errors
for example
(match-let (((a . b) '(1 . 2))) (list a b)) => (1 2)
but
(match-let loop (((a . b) '(1 . 2))) (list a b))
does not work, even though it's basically the above code but instead it's named

syntax according to the reference
match-let ((pattern expression) …) body
match-let variable ((pattern init) …) body

this is guile 2.2.4