Hi Conal,
| I'm still stuck on this problem. Any hope for a bug fix? Any possible
| work-around? - Conal
I've been looking in to this, and I can confirm that this is a bug in Hugs,
or at least a "feature" in the old Hugs typechecker. It is related to the
fact that the old typechecker uses Gofer types under the surface, which
can't handle class members with overloaded types properly in some
situations.
The good news is that the new typechecker doesn't have this problem, and
will accept the example that you gave (i.e., Hugs 1.3c accepts your code,
modulo a renaming of map (on an array) to amap, because this version of
Hugs doesn't overload map on arrays).
The bad news is that the new typechecker isn't yet supported in Hugs 1.4,
with the module system and graphics primitives that you want. Alastair
is working hard on this, but it's not ready yet.
In the meantime, I've been trying to figure out a patch or a workaround
to help out ... (with 1.4 June 1998, which I assume is the version you
are using). I haven't got anything for you yet, but wanted to let you
know that I'm on the case. Caveat: it may still turn out that the only
way to get around this is to use the new typechecker.
All the best,
Mark