Improving the README file.
Adding some Haddock documentation.
Adding comments (a running narrative on choices made and gotchas encountered) at a line-by-line level in the code.
Minor changes prompted by adding more fine-grained documentation in the code.