Hi Ash,
| what i intended to test for was an appropriate program error. I didn't
| expect a non-terminating one though. I don't believe this same
| output occurs in the 1.4 implementation -- although it does seem to halt
| for a while before printing a 2 line program error.
It wouldn't surprise me if it didn't happen in the 1.4 implementation.
What you're seeing here is part of the internal data structures that
Hugs uses as part of its implementation of overloading. The old 1.4
version of Hugs used a different implementation technique that was only
partially compatible with the Haskell type system. So your observations
are entirely reasonable.
In fact somebody else came across a similar problem just a few days
ago, with an error message that dumped a rather large, although in
that case, finite expression out to the screen. It is useful for
some part of the expression to be dumped out so that the user can
perhaps get some idea of where things are going wrong. However, the
suggestion that arose in that case was for the printer might be modified
to cutoff parts of such expressions beyond a certain depth; that might
also have helped to get a smaller error message for you too. We should
look into this more carefully ... (contributions from other readers of
hugs-bugs most welcome too :-)
Hope this clears things up for you!
| btw, where abouts in the world am i sending these emails?
The mails go all over the world, but both Andy and I are dialing in
to answer from Oregon in the Pacific Northwest region of the USA.
And yes, it is the middle of the night, and it is a national holiday,
but those are just small details :-)
All the best,
Mark