Skip to content

Add some weird Kmettian tests to the test suite

reflection does some funny business essentially coercing between -> and =>. constraints has some code that's very sensitive to superclass cycle detection. And there's some other package (structures?) that coerces between * and # to stick raw MutArr# pointers into arrays. I believe Kmett also uses unsafeCoerce# reallyUnsafePtrEquality# to compare pointers of kind # to others (of possibly different types).

None of these things are anything like officially supported. However, breaking them could be expensive for the ecosystem. Dealing with breakage when someone discovers it months later can be very hard, so I think some of these things should probably be added to the GHC test suite. Failures shouldn't categorically prevent changes from being merged, but they would provide an early warning and get conversations started earlier.

Trac metadata
Trac field Value
Version 8.0.1
Type FeatureRequest
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Test Suite
Test case
Differential revisions
BlockedBy
Related
Blocking
CC ekmett
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information