‘Identity instance’: Outputable SDoc
Is there reason why there isn't an ‘identity instance’¹ for Outputable?
class Outputable a where
ppr :: a -> SDoc
instance Outputabe SDoc where
ppr :: SDoc -> SDoc
ppr = id
A benefit: lets me always use pprTraceIt :: Outputable a => String -> a -> a, I know I can use pprTrace but I like not having to think about the type of what I'm tracing and neither functions work to debug something like Either SDoc Name.
¹ For lack of a better term, something like
class Foo a where
foo :: a -> A
instance Foo A where
foo :: A -> A
foo = id @A
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.0.1 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | GHC API |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |