Update to support closed type families.
Update export list for closed type families
Remove some redundant warning suppression
Implement roles into Template Haskell.

The biggest change is to the TyVarBndr type, which now can deal
with role annotations.
Fix GHC Trac #8186.

Make parS in TH.Lib work.
Improve pretty printing for Template Haskell operators

Fixes Trac #8187, #8188.

Thanks to Yoshikuni Jujo for pointing this out and doing the first draft.
Fix AMP warnings

Signed-off-by: Austin Seipp <aseipp@pobox.com>
Update Git repo URL in `.cabal` file
Support new role annotation syntax.

This reverts the change to TyVarBndr (which now has only two
constructors, PlainTV and KindedTV) and adds a new Dec, RoleAnnotD.
There is also an updated definition for the type Role, to allow
for wildcard annotations.
Trailing whitespaces
Follow changes in comparison primops (see #6135)
Add TH support for annotations (#8340)

Authored-by: Gergely Risko <gergely@risko.hu>
Signed-off-by: Austin Seipp <austin@well-typed.com>
Add TExp data type.
Add a method to the Quasi type class that adds new top-level declarations.
Make a TExp a wrap a TH.Exp instead of a TH.ExpQ.

We also provide two new helper functions:

  unTypeQ :: Q (TExp a) -> Q Exp

  unsafeTExpCoerce :: Q Exp -> Q (TExp a)
Add the TExpQ type alias.
Correctly pretty-print let and do expressions.
Add support for top-level finalizers
Add Template Haskell state.

The Quasi monad can now carry state, and this state can be shared amongst
quasiquoters/splices/etc. State is stored in a finite map of Dynamic values and
is indexed by TypeReps.
Merge New Template Haskell branch.