Fix #15308 by suppressing invisble args more rigorously

Authored by RyanGlScott on Thu, Jul 5, 7:30 AM.

Description

Fix Trac #15308 by suppressing invisble args more rigorously

Summary:
There was a buglet in stripInvisArgs (which is part of the
pretty-printing pipeline for types) in which only invisble arguments
which came before any visible arguments would be suppressed, but any
invisble arguments that came after visible ones would still be
printed, even if -fprint-explicit-kinds wasn't enabled.
The fix is simple: make stripInvisArgs recursively process the
remaining types even after a visible argument is encountered.

Test Plan: make test TEST=T15308

Reviewers: goldfire, bgamari

Reviewed By: bgamari

Subscribers: simonpj, rwbarton, thomie, carter

GHC Trac Issues: Trac #15308

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

(cherry picked from commit 93b7ac8d73885369f61f6eb6147352d45de4e957)