Allow the user to explicitly bind type/kind variables in type and data
family instances (including associated instances), closed type family
equations, and RULES pragmas. Follows the specification of GHC
Proposal 0007, also fixes Trac #2600. Advised by Richard Eisenberg.
This modifies the Template Haskell AST -- old code may break!
- convert HsRule to a record
- make rnHsSigWcType more general
- add repMaybe to DsMeta