[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