Outrageous but meaningful coincidences: dependent type-safe syntax and evaluation
Tagless staged interpreters for typed languages