A DSL for building and interpreting DSLs.