Ticket #5392 (new feature request)
Warnings about impossible MPTCs would be nice
| Reported by: | pumpkin | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | 7.6.2 |
| Component: | Compiler | Version: | 7.0.4 |
| Keywords: | Cc: | ||
| Operating System: | Unknown/Multiple | Architecture: | Unknown/Multiple |
| Type of failure: | None/Unknown | Difficulty: | |
| Test Case: | Blocked By: | ||
| Blocking: | Related Tickets: |
Description
In the following class declaration:
{-# LANGUAGE MultiParamTypeClasses #-}
class C a b where
f :: a -> a
it is possible to declare this class, and to make instances of it, but it will be impossible to ever call f, even with unsafeCoerce and other evil attempted workarounds. It seems fairly easy for GHC to spot this situation, where a method doesn't mention all of the class arguments, and it might save some confusion for newbies. I remember trying pretty hard when I was first learning haskell to tell GHC which instance I wanted there, but obviously failed quite miserably.
Change History
Note: See
TracTickets for help on using
tickets.
