some haskell solutions to 'some' problems ;)