[GHC] #9171: Clarify error messages when there is a kind mismatch
GHC
ghc-devs at haskell.org
Thu Jun 5 16:13:44 UTC 2014
#9171: Clarify error messages when there is a kind mismatch
----------------------------------------------+----------------------------
Reporter: MikeIzbicki | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.8.2
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: GHC rejects valid program | Unknown/Multiple
Test Case: | Difficulty: Unknown
Blocking: | Blocked By:
| Related Tickets:
----------------------------------------------+----------------------------
Comment (by MikeIzbicki):
Replying to [comment:1 kosmikus]:
I was under the impression that type families had to be functions, and so:
{{{
type family GetParam (p::k1) (t::k2) :: k3
type instance GetParam Base Int = Int
type instance GetParam Base Int = Maybe
}}}
would be rejected for having conflicting definitions. If we change the
code to:
{{{
type family GetParam (p::k1) (t::k2) :: *
type instance GetParam Base Int = Int
type instance GetParam Base Int = Double
}}}
then the program does get rejected as having conflicting definitions. Is
there a good reason to allow the former but not the latter?
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9171#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list