id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	os	architecture	failure	difficulty	testcase	blockedby	blocking	related
4816	DeriveFunctor should not require a functor instance for functorial data types used invariantly	batterseapower		"This program:

{{{
{-# LANGUAGE DeriveFunctor #-}
data Silly a = Sillly a

data Baz o = Baz {
    foo :: o,
    bar :: Silly ()
  } deriving (Functor)
}}}

Produces this error:

{{{
/Users/mbolingbroke/Junk/Repro2.hs:7:14:
    No instance for (Functor Silly)
      arising from the 'deriving' clause of a data type declaration
                   at /Users/mbolingbroke/Junk/Repro2.hs:7:14-20
    Possible fix:
      add an instance declaration for (Functor Silly)
      or use a standalone 'deriving instance' declaration instead,
         so you can specify the instance context yourself
    When deriving the instance for (Functor Baz)
}}}

But there is absolutely no need for such an instance, because I'm not using ""Silly a"", just ""Silly ()""."	bug	closed	normal	7.2.1	Compiler	6.12.3	fixed			Unknown/Multiple	Unknown/Multiple	None/Unknown		deriving/should_compile/T4816			
