[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