Invisible binders in type declarations
GHC Proposal #425 "Invisible binders in type declarations" has two aspects to it:
- Introduce
@
-binders in type declarations - Consolidate the language (remove arity inference, remove implicit RHS quantification, require type instantiations to be determined by the LHS)
This ticket is to track the implementation of the first part only: @
-binders is type declarations. Here are some examples of code that we aim to allow:
-- Class declarations
class C @k (a :: k) where ...
-- Data declarations
data D @k @j (a :: k) (b :: j) = ...
-- Type family declarations
type family F @p @q (a :: p) (b :: q) where ...