Arithmetic DSL extended from Racket, HW5 of Programming Languages course from U. Washington