Lookup rules associated with functions/values in GHCI
It would be nice to have a way to look up in GHCi what rules can fire for a certain constant as the outmost symbol on the LHS. For example, something like
ghci> :pragmas map
{-# RULE "map" [~1] forall f xs. map f xs = build (\c n -> foldr (mapFB c f) n xs) #-}
{-# RULE "map/coerce" [1] map coerce = coerce #-}
As the name suggests, I think we would also want to list applicable NOINLINE, INLINE, INLINABLE, CONLIKE, SPECIALIZE, etc pragmas too. This would simplify the process of debugging mis-firing rules.
If this isn't too difficult, I'd love to try implementing it. I've been looking for some way of contributing to GHC.
This initially came up here http://stackoverflow.com/q/38651602/3072788.
Trac metadata
Trac field | Value |
---|---|
Version | 8.0.1 |
Type | FeatureRequest |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | GHCi |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |