[nhc-bugs] nhc98 1.14 FFI issues

Manuel M T Chakravarty chak@cse.unsw.edu.au
Wed, 11 Sep 2002 19:07:46 +1000 (EST)


Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk> wrote,

> 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.

Hmm, ok.  Unfortunately, there is no way around the
existentials here.

> > 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.

Which is why I also don't like GHC's all-extensions-or-none
strategy.  It is better when extensions can be enabled
individually.

Cheers,
Manuel