While I was Learning Me A Haskell (For Great Good), I did this.