
Parsec has been careful to keep its non-Haskell98 components in separate modules that don't need to be imported: "If you use the ParsecToken or ParsecPerm modules, you need to enable the forall extension."
Is this a correct interpretation, that this would prevent using Parsec with other compilers (e.g. nhc98)?
Just to be absolutely clear: * MPTC + FunDeps are not Haskell'98, and they are not supported by nhc98. * Parsec.Token and Parsec.Perm do not use MPTC. * Parsec.Perm uses existential quantification, which although not Haskell'98 is nevertheless supported by nhc98. * Parsec.Token uses local universal quantification, which is neither Haskell'98 nor supported by nhc98. The difference between existential quantification and local universal quantification is not widely appreciated or noticed, since both involve the 'forall' keyword. Regards, Malcolm