diff --git a/message-index/messages/GHC-45906/example/after/SAKS.hs b/message-index/messages/GHC-45906/example/after/SAKS.hs new file mode 100644 index 00000000..6aacc810 --- /dev/null +++ b/message-index/messages/GHC-45906/example/after/SAKS.hs @@ -0,0 +1,8 @@ +{-# LANGUAGE GHC2021 #-} + +module SAKS where + +import Data.Kind (Type) + +type T :: Type +data T diff --git a/message-index/messages/GHC-45906/example/before/SAKS.hs b/message-index/messages/GHC-45906/example/before/SAKS.hs new file mode 100644 index 00000000..cf0dcc6c --- /dev/null +++ b/message-index/messages/GHC-45906/example/before/SAKS.hs @@ -0,0 +1,8 @@ +{-# LANGUAGE Haskell2010 #-} + +module SAKS where + +import Data.Kind (Type) + +type T :: Type +data T diff --git a/message-index/messages/GHC-45906/example/index.md b/message-index/messages/GHC-45906/example/index.md new file mode 100644 index 00000000..1877d94e --- /dev/null +++ b/message-index/messages/GHC-45906/example/index.md @@ -0,0 +1,15 @@ +--- +title: Illegal standalone kind signature +--- + +Module fails to compile because it contains a standalone type +signature. + +## Error Message + +```haskell +SAKS.hs:7:1: error: [GHC-45906] + Illegal standalone kind signature + Suggested fix: + Perhaps you intended to use the ‘StandaloneKindSignatures’ extension (implied by ‘UnliftedDatatypes’) +``` diff --git a/message-index/messages/GHC-45906/index.md b/message-index/messages/GHC-45906/index.md new file mode 100644 index 00000000..93c0fb6c --- /dev/null +++ b/message-index/messages/GHC-45906/index.md @@ -0,0 +1,24 @@ +--- +title: Illegal standalone kind signature +summary: Program contains a standalone kind signature, but the active extensions do not allow it. +severity: error +introduced: 9.6.1 +--- + +[Standalone kind signatures] can be used to specify a polymorphic +kind for a type, to overcome kind inference restrictions: + +```haskell +type T :: (k -> Type) -> k -> Type -- standalone kind signature +data T m a = MkT (m a) (T Maybe (m a)) +``` + +Without the standalone kind signature, GHC would infer the kind +`T :: (Type -> Type) -> Type -> Type`. + +Use of this feature requires the `StandaloneKindSignatures` +extension to be enabled. This extension is implied by +`UnliftedDatatypes`, and included in the `GHC2021` and `GHC2024` +language editions. + +[Standalone kind signatures]: https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/poly_kinds.html?highlight=standalonekindsignatures#extension-StandaloneKindSignatures