Solutions to Lisp 99 problems with Haskell