[GHC] #11341: Reifying a GADT doesn't tell you the correct return type

GHC ghc-devs at haskell.org
Sun Jan 3 12:37:31 UTC 2016


#11341: Reifying a GADT doesn't tell you the correct return type
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Template Haskell  |              Version:  8.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Incorrect result  |  Unknown/Multiple
  at runtime                         |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by jstolarek):

 Replying to [comment:3 RyanGlScott]:
 > That's a good point I hadn't thought of. We definitely don't want users
 to be able to splice in type indices that don't match up with the actual
 return type.
 Just to be clear: TH syntax tree already allows to write all sorts of
 silliness that we have to catch later on in the pipeline. This would be
 another such thing. I just fear that the check would not be trivial. I
 also think that in most cases GADT result type simply includes indexed
 type constructor and having to duplicate the indices will be painful.

 > I suppose the real type indices can always be found out through
 something like `expand` in `th-desugar`.
 In such corner cases that you've demonstrated indices might be very hard
 (impossible?) to recover. But I think that's acceptable.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11341#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list