Make pattern synonyms work with Template Haskell
Template Haskell has no support for pattern synonyms. This should be added.
Specifically:
- Create syntax in `Language.Haskell.TH.Syntax` and corresponding functions in `Language.Haskell.TH.Lib`
- Support in !DsMeta for desugaring pattern synonym quotations. See `rep_bind`.
- Support in Convert for splicing in pattern synonyms.
- Support in !TcSplice for reifying pattern synonyms. See `reifyThing`.
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ---------------- |
| Version | 7.8.1-rc1 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Template Haskell |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | |
</details>
<!-- {"blocked_by":[],"summary":"Make pattern synonyms work with Template Haskell","status":"New","operating_system":"","component":"Template Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"7.8.1-rc1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"FeatureRequest","description":"Template Haskell has no support for pattern synonyms. This should be added.\r\n\r\nSpecifically:\r\n* Create syntax in `Language.Haskell.TH.Syntax` and corresponding functions in `Language.Haskell.TH.Lib`\r\n* Support in !DsMeta for desugaring pattern synonym quotations. See `rep_bind`.\r\n* Support in Convert for splicing in pattern synonyms.\r\n* Support in !TcSplice for reifying pattern synonyms. See `reifyThing`.","type_of_failure":"OtherFailure","blocking":[]} -->
issue