Simplify and improve coverage of ":info" instance lookup
authorPatrick Palka <patrick@parcs.ath.cx>
Thu, 14 Nov 2013 22:40:55 +0000 (17:40 -0500)
committerPatrick Palka <patrick@parcs.ath.cx>
Fri, 15 Nov 2013 00:13:19 +0000 (19:13 -0500)
commiteb8fb434ff5e962a54247cacc5d3340972d5daf4
tree9588778b7baa17ec28e315be30131de0ad26146b
parent19b8809c477f4d296cbd6c1736e9a288fdcd6220
Simplify and improve coverage of ":info" instance lookup

During instance lookup, we can treat classes and data families like any
other TyCon instead of special-casing them.  This approach, aside from
being simpler, has the benefit of returning extra relevant instances for
classes and data families.  For example, given

class A a
instance B (a :: Constraint)
instance A B

":info B" will now also print "instance A B" where previously it didn't
due to the special casing of class TyCons in lookupInsts.

This improves upon the existing patch for Trac #4175
compiler/typecheck/TcRnDriver.lhs