Add support for typed holes in Template Haskell
I want to be able to work with typed holes using Template Haskell. These are currently rejected:
```hs
[d| i :: a -> a
i x = _ |]
```
```
Expression form not (yet) handled by Template Haskell _
```
<details><summary>Trac metadata</summary>
| Trac field | Value |
| ---------------------- | ---------------- |
| Version | 7.10.1 |
| 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":"Add support for typed holes in Template Haskell","status":"New","operating_system":"","component":"Template Haskell","related":[],"milestone":"","resolution":"Unresolved","owner":{"tag":"Unowned"},"version":"7.10.1","keywords":[],"differentials":[],"test_case":"","architecture":"","cc":[""],"type":"FeatureRequest","description":"I want to be able to work with typed holes using Template Haskell. These are currently rejected:\r\n\r\n{{{#!hs\r\n[d| i :: a -> a\r\n i x = _ |]\r\n}}}\r\n\r\n{{{\r\nExpression form not (yet) handled by Template Haskell _\r\n}}}\r\n","type_of_failure":"OtherFailure","blocking":[]} -->
issue