1) Yes, the submission includes a README file with instructions on how to build and run the program, a small report documenting the architecture of the software and the code itself also contains Haddock comments for most of the top-level exported functions. The report doesn't contain much justification for the design choices. 2) Only an example of a correct BibTeX file is provided. By artificially introducing some errors in the provided file, we could notice that the parser does not give very explanatory error messages. For example, when the right-hand side of a field is removed, a runtime error resulting from non-exhaustive patterns occurs. 3) The submission has separate source and documentation directories, a good cabal project file and compiles with no warnings. === --| Documentation Although all forms of documentation are provided (README, .cabal, Haddock, PDF), there are not many test files present. The parsing is very well documented. The Haddock is not always really informative, for example: -- | Datatype representing the compelte BibTeX AST data BibTeX = BibTeX [Preamble] [StringConstDef] [Entry] it is not clear from the documentation why the BibTeX format has 3 children, and what they mean. The string literal ``ab{cd}ef'' ... --| Code The parsing is very extensive and supports many `extras'. In general the code is well structured and organised. Not all entry types are supported, but the list can be easily extended. By reusing the BibTeX AST there is an additional dependency for the modules (ParseBib and Bib2HTML). If changes are made to the BibTeX AST both modules might no longer work again. One could imagine a change being made to make the parsing easier, while this might break the build of Bib2HTML. The program would be more modular if every module had its seperate AST and only relies on the input being of the right shape. The same holds for HtmlDoc. - I ran a test of a big .bib files with 10+ entries and errors and the parsing takes a long time before it comes up with an unclear error message - Things not present in our own solution: + An element based HTML representation, our program uses an ATerm very similar to the BibTeX Aterm except changed slightly so the pretty printing is easier. This did however serve the purpose for this assignment