Visible type/kind applications in declaration of data/type constructors
I'm making this ticket to keep track of this, I don't know if it's a good idea.
Allow visible type/kind applications when declaring data/type constructors on the LHS of ::
(from Phab comment).
data
Proxy @k :: k -> Type where
MkProxy @k :: Proxy @k (a :: k)
&
data
Fin :: N -> Type where
FinO @n :: Fin (S n)
FinS @n :: Fin n -> Fin (S n)
&
data
Elem @k @n :: Vec n k -> Type where
ElemO @a @as :: Elem @k @(S n) (a:>as)
ElemS @a @as :: Elem @k @n as
-> Elem @k @(S n) (a:>as)