id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	os	architecture	failure	difficulty	testcase	blockedby	blocking	related
2721	Newtype deriving doesn't work with type families	rl		"This assumes `-XTypeFamiles -XGeneralizedNewtypeDeriving`. Example:
{{{
class C a where
  type T a
  foo :: a -> T a

instance C Int where
  type T Int = Int
  foo = id

newtype N = N Int deriving(C)
}}}
This happily produces an `instance C N` but no `type instance T N`. It should either (preferably) generate
{{{
type instance T N = Int
}}}
or fail. The example also compiles if `T` is a data family (the `Int` instance needs to be change accordingly). It should probably fail in this case.

BTW, this also compiles fine, with rather dramatic consequences:
{{{
type family T a
class C a where
  foo :: a -> T a

type instance T Int = Int
instance C Int where
  foo = id

type instance T N = Double
newtype N = N Int deriving(C)
}}}
I guess this last example is the same bug as #1496. I wonder if the deriving clause could generate something like:
{{{
instance T Int ~ T N => C Int
}}}

"	feature request	new	lowest	7.6.2	Compiler	6.10.1			tom.schrijvers@… illissius@… acfoltzer@…	Unknown/Multiple	Unknown/Multiple	None/Unknown	Unknown	deriving/should_fail/T2721			
