'foo' is being used out of context (in both cases), all non-psyntax R6RS implementations agree on this, as well the expected behavior of non-R6RS (I asked on IRC, as I thought incorrectly that this was an implicit phasing issue).
> Huh? What do you mean incorrect error.
> (let ((lit 42)) (foo lit)) should *not* match the rule for foo
> since the two "lit"s are not free-identifier=?.
The incorrect error should be 'foo' being used out of context, not a match failure.
> Why not?
'foo' is being used out of context (in both cases), all non-psyntax R6RS implementations agree on this, as well the expected behavior of non-R6RS (I asked on IRC, as I thought incorrectly that this was an implicit phasing issue).
> Huh? What do you mean incorrect error.
> (let ((lit 42)) (foo lit)) should *not* match the rule for foo
> since the two "lit"s are not free-identifier=?.
The incorrect error should be 'foo' being used out of context, not a match failure.
Cheers
leppie