[GHC] #13809: TH-reified type family and data family instances have a paucity of kinds
GHC
ghc-devs at haskell.org
Sat Oct 27 23:22:50 UTC 2018
#13809: TH-reified type family and data family instances have a paucity of kinds
-------------------------------------+-------------------------------------
Reporter: RyanGlScott | Owner: (none)
Type: bug | Status: closed
Priority: normal | Milestone: 8.8.1
Component: Template Haskell | Version: 8.0.1
Resolution: fixed | Keywords: TypeFamilies
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: 14268 | Blocking:
Related Tickets: #8953, #14268 | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Changes (by RyanGlScott):
* status: new => closed
* resolution: => fixed
* milestone: => 8.8.1
Comment:
Now that #14268 is implemented, I claim that this is fixed. That is
because when you reify `Foo` now, you get the following information:
{{{#!hs
FamilyI
(DataFamilyD
Foo.Foo [KindedTV a_6989586621679015908 StarT] (Just StarT))
[ DataInstD
[]
Foo.Foo
(Just [KindedTV f_6989586621679015938 (AppT (AppT ArrowT (AppT (AppT
ArrowT StarT) StarT)) StarT),KindedTV a_6989586621679015939 (AppT (AppT
ArrowT StarT) StarT)])
[AppT (VarT f_6989586621679015938) (VarT a_6989586621679015939)]
Nothing
[]
[]
, DataInstD
[]
Foo.Foo
(Just [KindedTV f_6989586621679015958 (AppT (AppT ArrowT StarT)
StarT),KindedTV a_6989586621679015959 StarT])
[AppT (VarT f_6989586621679015958) (VarT a_6989586621679015959)]
Nothing
[]
[]
]
}}}
In particular, we now have access to the exact kinds of `f` and `a` in
each instance, which lets us properly distinguish them. Hooray!
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13809#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list