Provedores de tipo F # versus macros Lisp

Eu tenho lido sobre provedores do tipo F # 3.0 (por exemplo,Aqui) e parece que eles são baseados em um tipo de geração de código em tempo de compilação. A esse respeito, eu estava me perguntando como eles se comparam com as macros Lisp. Parece que os provedores do tipo F # 3.0 e as macros Lisp permitem que o código do usuário execute em tempo de compilação e introduza novos tipos disponíveis para o compilador. Alguém pode lançar alguma luz sobre o assunto e as nuances envolvidas?

questionAnswers(4)

yourAnswerToTheQuestion