pprTrace looks like a very suspicious function to me. I'm not sure it ever makes sense to use it. Maybe -dno-debug-output should default to on unless in a -DDEBUG compiler?
I think having -dno-debug-output default to on is a very good idea. What do you mean by pprTrace being suspicious? Just the same reasons that trace is suspicious?
I investigated michaelt's example. Your SPECIALISE pragmas for myEnum in M2 is for the class method
myEnum :: MyEnum a => [a]
But the class method is just a record selector, so specialising it doesn't make much sense. (The reason for the bleating message is related to it being a class method too, but that's an implementation detail.) So I've arranged to give a more helpful message if you try to specialise a class method.
commit 777b8c4bd6f8a76f2fd365aa43451b7af098e9efAuthor: Simon Peyton Jones <simonpj@microsoft.com>Date: Mon Jun 13 15:03:38 2011 +0100 Don't allow specialisation of class methods (fixes Trac #5001) It doesn't make sense to specialise class methods -- their code is simply a record selector. Moreover, such methods don't (currently) have an inl_sat field in their InlinePragma which made DsBinds.makeCoreArity bleat. This patch just ignores such pragmas, with a warning.>--------------------------------------------------------------- compiler/deSugar/DsBinds.lhs | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)