Announce: Haskell All-In-One

Hal Daume III hdaume@ISI.EDU
Sun, 13 Jul 2003 14:53:22 -0700 (PDT)


Hi All,

There have been several requests for such a program in the past, so I
figured I'd finally break down and write it.

Haskell All-In-One is a Haskell utility which will take a program
implemented in multiple modules and convert it to a single module.

It implements all of Haskell 98 (sorry, your -fglasgow-exts programs won't
parse with the Language.Haskell.Parser parser so we can't deal with them,
yet) as well as the hierarchical libraries. It can also correctly deal
with literate Haskell scripts (provided you have GHCs unlit software
available) and programs which need to be run through the c-pre-processor.

The program, together with a bunch of documentation, is available at:

  http://www.isi.edu/~hdaume/HAllInOne/

There is one known bug (listed on the web page), but there are likely
other unknown bugs.

I would have liked to have run it on itself as a proof of concept, but
unfortunatly it uses the GMap library, which require extensions and thus
it cannot parse correctly.  However, it's been tested against the GHC
module regression suite and performs (almost) perfectly.

I would appreciate bug reports, if you find any problems.

On the TODO list currently are:

 - simplify and comment the source better
 - fix the known bug

It requires GHC6.0 to compile "out of the box" with -fglasgow-exts and
-fallow-undecidable-instances.  It can compile with GHC 5.04.3, but will
also need "-package haskell-src" and you will need to modify the code such
that System.IO no longer imports 'bracket' and uncomment the 'cast'
function in the GMap library.

 - Hal

--
 Hal Daume III                                   | hdaume@isi.edu
 "Arrest this man, he talks in maths."           | www.isi.edu/~hdaume