because everyone needs to write themselves a lisp