This is the Haskell implementation of a FullRecall data-file printing program.

This implementation does not yet do everything that the Ruby version does.
In particular, it does not yet output extended statistics or PDF.

To use it, you must either run the supplied 32-bit i686 GNU/Linux executable or
build it yourself from source for your OS.  For MS-Windows, you can use either
GHC from http://haskell.org/ghc or Visual Haskell (VS plugin) from
http://www.haskell.org/visualhaskell.  There are other free Haskell
implementations but I have not used them so I cannot comment on them.

The other complication is that the program imports some packages which are not
included as standard with GHC so you will need to install them yourself:

	Codec.Binary.UTF8.String
*	Text.polyparse
*	Text.XML.HaXml.Types
*	Text.XML.HaXml.SAX

The starred packages are only required if you want to use the alternative
`real' XML parsing of the FR data file;  see below.

To build, go to http://hackage.haskell.org/packages/hackage.html and
(1) Click on the `how to install a cabal package' for general instructions on
installation, then
(2) Go back and click on the Packages link, download and build the extra
required packages.

You should then be able to build and run the executable yourself.  Having to
install extra packages is always a nuisance but in this case it really is
quite easy.

Build command with ghc:  ghc --make -O2 -Wall printelts.hs

This version of the program is several times faster than the Ruby equivalent,
for these reasons:

(1) It is statically compiled rather than interpreted, and
(2) It reads elements.xml line-by-line rather than via a `real' XML parser.
You can experiment with `real' XML parsing by importing ReadFRXML rather than
ReadFRRaw.  The two modules export the same symbol.  You will have to install
the two HaXml packages referred-to above if you want to use ReadFRXML.  The
only reason for doing this is to experiment with the difference in speed
between the two methods of reading;  they are equivalent in behaviour.

Why Haskell ?  Because I do like to learn a new programming language from time
to time and Haskell was next on the list.

Comments to michael at the domain of landcroft dot co dot uk.
