
Manuel M T Chakravarty
====== 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