Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

T2T (term-to-type) transformation in patterns
The T2T transformation introduced in [GHC Proposal #281: Visible forall in types of terms](https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0281-visible-forall.rst) is defined for expressions (see #23738). However, a similar transformation is needed in patterns: ```haskell f :: forall x -> ... f = \x -> ... ``` The lambda-bound `x` looks like a term-level pattern, but it's actually a type pattern checked by `tc_forall_pat` (as opposed to `tc_pat`) in `GHC/Tc/Gen/Pat.hs`. This necessiates a variant of T2T that operates on patterns. Let's call it `p2tp` (pattern-to-type-pattern) to distinguish it from `t2t` in expressions: ```haskell p2tp :: Pat GhcRn -> TcM (HsTyPat GhcRn) ```
issue