Answers to 99 Haskell problems (http://www.haskell.org/haskellwiki/H-99:_Ninety-Nine_Haskell_Problems)