Simplify type checking
There is a much more direct way to type-check these types in patterns, so I implemented it. This is tested, and it works.
This also includes Functor
instances for HsImplicitBndrs
and friends, without breaking with the TTG pattern.
One remaining test case failure: not emitting warnings for underscores in patterns.