Renamer for pattern synonym declarations

The right-hand side creates the pattern scope in which the left-hand
side is processed
Internal representation of PatSyn data
ConLike is a type for constructor-like things: real data constructors and pattern synomys.
AConLike is the corresponding new TyThing.
IfacePatSyn: Iface representation of an exported pattern synonym
Add pat_wrap to ConPatOut
Disable 'patterns are not uses'
Typechecker for pattern synonyms
PatSynBinds cannot occur on the output of the typechecker
Add pattern synonyms to ModGuts
Add pattern synonym matchers and wrappers to keep_alive list
Handle ConLikes uniformly until we get to mkCoAlgCaseMatchResult
Desugarer for pattern synonym occurances

Split 'CaseAlt ConLike's into DataCon and PatSyn matchers, generate matchers per group
Instantiate PatSyn matchers