When deriving an instance, check the arity of the thing given in the deriving clause and produce a less scary-looking message if the arity is wrong.
Corrected a few tests to include the new message.
Today I learned.
That being said, I wonder if we should say more here. "a is not a unary constraint" is a true statement, but it doesn't really explain what the /problem/ is. Perhaps "a is not a unary constraint, as expected in a deriving clause" or something to that effect?