Haskell solutions to Project Euler problems