Tagchup is a package for processing XML, HTML, XHTML documents that can also be malformed. It allows parsing, formatting and retrieval of such document. All functions should be as lazy as possible.
I use a custom data structure based on types from xml-basic for easy interchange with the wraxml package.
Its lazy monadic parser should be more comprehensible and easier to extend than the one of tagsoup-0.6. It also handles XML processing instructions and CDATA sections correctly.
The name Tagchup resembles Ketchup.