an example of a dsl with metaprogramming