AST and DSL abstraction is achievable, is 99% complete in dsl.py already, and straightforward to create for ast.py
see #6
assigned to @lkcl