By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Read the declarations a module writes, not the ones it quotes A Template Haskell bracket is an expression, and a search for data definitions finds the constructors inside one. Those are a template: the module has no such constructor, nobody passes it an argument here, and the newtype a finding asks for would be asked of a bracket. The population the rule was measured against had no quoted constructors in it either, so reading them would have been a population nobody looked at. The GADT spelling was implemented and had no case over it, including the one signature that introduces two names, so it gets one here.