
Hi Twan,
Getting rid of the requirement for FlexibleInstances should not be to hard (nor should adding support for them to Yhc).
Sometimes adding support for things to Yhc is harder than you might naturally think...
But even if I work around that, this patch relies quite havilly on the mtl, which uses multi parameter type classes and functional dependencies. Those might be a bigger problem. Hoever the mtl was already used in other parts of the compiler...
There are two parts of the mtl - one provides monads, one provides monad transformers. In general the monad half is Haskell 98, the transformer half is not - we've been careful to stick to the monad half so far. The mtl is actually being split soon into a Haskell 98 half and a MPTC/FD half. How much of the transformer side do you use, and how hard would it be to remove that? From my limited knowledge of mtl, I believe you can write your own custom instance for any given combination - which removes the type class requirement. If that is so, that may be an option. Thanks Neil