<div><div>There isn't. GHC will infer kind `Type -> Type` for `MyType2`. You can check that in `ghci` with `:kind MyType` and `:kind MyType2`. There's also third way to write it by adding a standalone kind signature:<br></div><div>```<br></div><div>{-# LANGUAGE StandalondKindSignatures, GADTs #-}<br></div><div>type MyType3 :: Type -> Type<br></div><div>data MyType3 a where<br></div><div> MkT3 :: Int -> MyType3 Int<br></div><div>```<br></div><div><br></div><div>A polykinded version would look like this:<br></div><div>```<br>{-# LANGUAGE PolyKinds #-}<br></div><div>type MyType4 :: forall a -> Type<br></div><div>data MyType4 a where<br></div><div> MkT3 :: MyType4 Int<br></div></div><div></div><div>```<br>in `ghci` the kind of `MyType4` is:<br>```<br>:kind MyType4<br>MyType4 :: forall k. forall (a :: k) -> Type<br>```<br><br>Best regards,<br>Marcin<br><br></div><div class="protonmail_signature_block"><div class="protonmail_signature_block-user protonmail_signature_block-empty"></div><div class="protonmail_signature_block-proton">Sent with <a href="https://protonmail.com/" target="_blank">ProtonMail</a> Secure Email.</div></div><div><br></div><div class="protonmail_quote">
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐<br>
On Thursday, June 10th, 2021 at 13:15, Velichko Lefterov <velichko.lefterov@gmail.com> wrote:<br>
<blockquote class="protonmail_quote" type="cite">
<div dir="ltr"><div>I tried to understand DataKinds and GADTs...</div><div>Is there a difference between:</div><div><br></div>data MyType :: Type -> Type where<br> MyTypeConstructor :: Int -> MyType Int<br><br>data MyType2 a where<br> MyTypeConstructor2 :: Int -> MyType2 Int<br><div><br></div><div><br></div></div>
</blockquote><br>
</div>