Attribute Grammars Fly First-Class How to do Aspect Oriented Programming in Haskell - Viera, M.; Swierstra, S. D.; Swierstra, Wouter (SIGPLAN Notices (ACM Special Interest Group on Programming Languages), 2009)