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
split_by_constructor: handle cases where no patterns match constructors (possible if all are pattern synonym patterns)
tcPolyCheck: change type to enforce the fact that it works on only one binding
Add Origin flag to LHsValBinds
Discard desugarer warnings from generated code
Don't generate catch-all failure branch when pattern synonym rhs is irrefutable