Type variables in DataD do not match up:
When reigying an ADT, the type variables listed on the left side are different from those used on the right side:
Prelude Language.Haskell.TH> $(reify ''Maybe >>= stringE . show)
"TyConI (DataD [] Data.Maybe.Maybe [a_1627391676] [NormalC Data.Maybe.Nothing [],NormalC Data.Maybe.Just [(NotStrict,VarT a_1627391681)]] [])"
The type variables do match up when we look just at the constructor:
Prelude Language.Haskell.TH> $(reify 'Just >>= stringE . show)
"DataConI Data.Maybe.Just (ForallT [a_1627391681] [] (AppT (AppT ArrowT (VarT a_1627391681)) (AppT (ConT Data.Maybe.Maybe) (VarT a_1627391681)))) Data.Maybe.Maybe (Fixity 9 InfixL)"
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.7 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Template Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | Multiple |
| Architecture | Multiple |