Scheme is close but quotation isn't thought about nearly enough. It is generally a CS problem as logic systems with quotation are very much an open problem. I think that types have gotten too much attention and quotation way too little.
Macros are basically a way to deal with the fact that neither lisp nor scheme have first class quotation which you can evaluate at leisure. I understand why they've done it for efficiency reason, but I think we should have at least one language that gets quotation right.
https://imps.mcmaster.ca/doc/qe-in-church.pdf
The above paper is the state of the art and the author there is pretty much the only person I know who has been working on the problem long term.
Basically reading all his publications will get you to open research problems of which there are many.