Cabal package

**To do:**

 - [ ] Set up a Hackage account.
 - [ ] Upload to Hackage.
 - [x] Add more description and format it properly.