This package provides a general purpose Haskell XML library using Expat to
do its parsing (http://expat.sourceforge.net/ - a fast stream-oriented XML
parser written in C). It is extensible to any string type, with String,
ByteString and Text provided out of the box.

If you want to do interactive I/O, an obvious option is to use lazy parsing
with one of the lazy I/O functions such as hGetContents. However, this can be
problematic in some applications because it doesn't handle I/O errors properly
and can give no guarantee of timely resource cleanup. Because of the generalized
list, Hexpat is designed to allow for chunked I/O, but as of this writing I haven't
done a nice integration with enumerator and friends.

IO is filed under Internal because it's low-level and most users won't want
it. The other Internal modules are re-exported by Annotated, Tree and Extended,
so you won't need to import them directly.

If you have trouble building on Windows, you can try the bundle flag. This will
make it build from the source of libexpat bundled inside the hexpat package:
cabal install -f bundle hexpat

Credits to Iavor Diatchki and the xml (XML.Light) package for Proc and Cursor.
Thanks to the many contributors.