haskell doesnt work macros involve evaluation: running program at compile time requires running language inside compiler places burden inside of language implementation to make life tricky erlang vm has always supported continuously evaluating new code, unlike haskell, which has to have a very strange embedded interpreter to work properly! ghc templates might work better with better multi stage compilation?

macros in ruby are interesting: