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 |