This seems like a problem only with some implementations there are
other implementations where all of these patterns work:
(match 1 (a a)) => 1
(match (list 3 4) ((a b) (+ a b)) => 7
(match (list 2 3) ((var var) (var b)) (+ var b))) => 5 ; does not work
on master branch
I tried replacing this line that was unchanged from the original:
> > (if (equal? v x) (sk ... (id ...)) fk)
to:
(if (equal? v (cdr (assq x ((id . id%) ...)))) (sk ... ((id . id%) ...)) fk)
but (match '(1 1) ((a a) a)) is still failing for all implementations
I have tested. Since I have this working for some patterns, tomorrow I
am going to go through and test all the patterns and try to fix them,
which I am assuming will be something like what I have already done,
at least in part.