Working through the book Language Implementation Patterns