Hi Thomas --
You are in luck: I am just about at the end of teaching a compiler
course using Appel's ML book. About 20 students used ML, and 5 used
Haskell. We provided the Haskell students with translated versions of
all of Appel's code, and in addition used Lx and Happy as lexer- and
parser-generator, respectively. Lx presented a few problems, but Happy
worked well. But for both of these we had to provide GHC-compiled
versions for the students to use, since the Hugs versions were too
slow. However, the lexers and parsers that they generated were very
fast, and worked quite well with Hugs. We may have a few other words of
wisdom to help you along as well.
Regards, -Paul