
Hi
unrestricted polymorphic was mainly a debugging problem. I wondered if the better solution would have been to provide an 'unsafeSeq' which has no type restriction but must be absent from production code just like 'trace'.
That would be very neat!
type constraints accordingly. (Analogously there could be an unsafeShow that allows showing offending values in an 'error' without adding a Show constraint to the type signature.)
Ideally, unsafeShow could also show types as they are underneath, not as a pretty-printing Show might show them. I have often wanted to overload Show to print things in a readable way, but to have a showRaw which shows things as they are, for debugging purposes. I have even written such code for Yhc: http://www.cs.york.ac.uk/fp/yhc/snapshot/docs/Yhc-Core-ShowRaw.html I think unsafeShow is a fantastic idea - and would be much more useful to me than unsafeSeq - plus is a non-breaking change. I think Hugs already has 90% of the code to support this, and GHCi's debugger I think has a fair chunk of it, so it could be added given not too much work. Thanks Neil