moduleShouldFailwhere-- Derive Functor on a type that uses 'a' in the wrong placesnewtypeInFunctionArgumenta=InFunctionArgument(a->Int)deriving(Functor)newtypeOnSecondArga=OnSecondArg(Eitheraa)deriving(Functor)-- Derive Functor on a type with no argumentsnewtypeNoArguments=NoArgumentsIntderiving(Functor)
dataEqa=>StupidConstrainta=StupidTypeaderiving(Functor)-- A missing Functor instancedataNoFunctora=NoFunctordataUseNoFunctora=UseNoFunctor(NoFunctora)deriving(Functor)