Expressing Structural Properties as Language Constructs
Shriram Krishnamurthi, Yan-David Erlich, Matthias Felleisen
European Symposium on Programming, 1999