Re-formatted using Sublime Text and stylish-haskell.