[nhc-bugs] nhc98 1.14 FFI issues

Malcolm Wallace Malcolm.Wallace@cs.york.ac.uk
Tue, 10 Sep 2002 15:14:27 +0100


Manuel M T Chakravarty <chak@cse.unsw.edu.au> writes:

> > >   ======	Errors after type inference/checking:
> > >   No default for  Parsers.Token at 282:3.(1378,[(173,1432)])
> > >   No default for  Parsers.Token at 254:32.(1267,[(173,1433)])
> > >   No default for  Parsers.Token at 223:1.(1061,[(173,1188)])
> > >   No default for  Parsers.Token at 204:25.(1180,[(173,1187)])
> 
> I don't see how this applies to my code (ie, I don't think
> the DMR comes in anywhere).

It is possible that the source of nhc98's difficulty is the use of
existential types, e.g.

    data Token t =>
         Parser a t r = forall q. Parser (Action a t q r) (Cont a t q)

although I can't verify this hypothesis at the moment.

> Besides, even if the "curious" interpretation of the
> defaulting rules would apply to me, I don't think this is a
> nice setup.

I agree, but unfortunately nhc98's implementation of the Haskell type
system is not fully understood by any one person, even the original
author.  This makes fixing bugs rather tricky.  :-)  Ideally, we would
like to replace the whole type sub-system with a more transparent
implementation.

> It's fine for nhc98 to implement extensions to
> H98, but they should only be activated when a special
> command line option is given.

Indeed.  However, I would point out that your code is already using
extensions to Haskell'98, so you would already have had this flag
switched on.

Regards,
    Malcolm