Opened 3 years ago

Last modified 20 months ago

#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 (2)

comment:1 Changed 2 years ago by igloo

  • Milestone set to 7.6.1

You may actually be able to call f in the future, when we have ExplicitTypeApplication, but perhaps a warning would be nice anyway.

comment:2 Changed 20 months ago by igloo

  • Milestone changed from 7.6.1 to 7.6.2
Note: See TracTickets for help on using tickets.