Cabal file and some linting

Dunno if you want this, Jon. I ran the linter and added a cabal file. Check it out.