constructing languages and embedding them in lisp