rudimentary haskell interpreter, please don't break