Comments only
Make 'undefined' have the magical type 'forall (a:OpenKind).a'

This fixes Trac #7888, where the user wanted to use 'undefined' in a
context that needed ((forall a. a->a) -> Int).  We allow OpenKind
unification variables to be instantiate with polytypes (or unboxed
types), hence the change.

'error' has always been like this; this change simply extends
the special treatment to 'undefined'.  It's still magical;
you can't define your own wrapper for 'error' and get the
same behaviour.  Really just a convenience hack.
Make splitHsAppTys look through parentheses, fixing Trac #7903

This was really just an oversight from long ago.
Improve pretty-printing of inline-family pragmas; fixes Trac #7906
Fix typechecking of pattern bindings that have type signatures (Trac #7268)

Pattern bindings are jolly tricky to typecheck, especially if there are
also type signatures involved.  Trac #7268 pointed out that I'd got it
wrong; this fixes it.  See Note [Typing patterns in pattern bindings] in TcPat.
Comments only
Make reifyInstances expand type synonyms robustly (Trac #7910)