
Your `GadtC` is missing a place for a `[TyVarBndr]` (to store the quantified type variables, both universals and existentials) and a `Cxt` to store any extra constraints. My intention was to nest `GadtC` inside `ForallC`. Is there any reason why
#10828: TH could do a better job of representing GADTs -------------------------------------+------------------------------------- Reporter: spinda | Owner: jstolarek Type: feature request | Status: new Priority: normal | Milestone: 8.0.1 Component: Template Haskell | Version: 7.10.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by jstolarek): this wouldn't work?
It also forbids record syntax, but maybe we can live without GADT record syntax. Ok, I haven't thought about that one. TBH I think I have never used (or seen) GADTs with record syntax.
-- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10828#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler