[GHC] #12369: data families shouldn't be required to have return kind *, data instances should

GHC ghc-devs at haskell.org
Thu Jul 27 11:49:37 UTC 2017


#12369: data families shouldn't be required to have return kind *, data instances
should
-------------------------------------+-------------------------------------
        Reporter:  ekmett            |                Owner:  (none)
            Type:  feature request   |               Status:  new
        Priority:  normal            |            Milestone:  8.4.1
       Component:  Compiler (Type    |              Version:  8.0.1
  checker)                           |
      Resolution:                    |             Keywords:  TypeInType
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 Richard Eisenberg <rae@…>):

 In [changeset:"4239238306e911803bf61fdda3ad356fd0b42e05/ghc" 4239238/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="4239238306e911803bf61fdda3ad356fd0b42e05"
 Fix #12369 by being more flexible with data insts

 Previously, a data family's kind had to end in `Type`,
 and data instances had to list all the type patterns for the
 family. However, both of these restrictions were unnecessary:

 - A data family's kind can usefully end in a kind variable `k`.
   See examples on #12369.

 - A data instance need not list all patterns, much like how a
   GADT-style data declaration need not list all type parameters,
   when a kind signature is in place. This is useful, for example,
   here:

     data family Sing (a :: k)
     data instance Sing :: Bool -> Type where ...

 This patch also improved a few error messages, as some error
 plumbing had to be moved around.

 See new Note [Arity of data families] in FamInstEnv for more
 info.

 test case: indexed-types/should_compile/T12369
 }}}

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


More information about the ghc-tickets mailing list