Filter out invisible kind arguments during TH reification

Authored by RyanGlScott on Apr 10 2016, 7:34 PM.

Description

Filter out invisible kind arguments during TH reification

Previously, all kind arguments were being reified, which would cause
something like this:

type Id a = a
data Proxy (a :: Id k) = Proxy

to output

data Proxy (a :: Id * k) = Proxy

when Proxy's Info is reified. The fix is simple: simply call
filterOutInvisibleTypes on the kind arguments of a kind synonym
application.

Fixes Trac #11463.

Test Plan: ./validate

Reviewers: austin, bgamari, goldfire

Reviewed By: goldfire

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D2081

GHC Trac Issues: Trac #11463