Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add GHC-45906 #508

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions message-index/messages/GHC-45906/example/after/SAKS.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{-# LANGUAGE GHC2021 #-}

module SAKS where

import Data.Kind (Type)

type T :: Type
data T
8 changes: 8 additions & 0 deletions message-index/messages/GHC-45906/example/before/SAKS.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{-# LANGUAGE Haskell2010 #-}

module SAKS where

import Data.Kind (Type)

type T :: Type
data T
15 changes: 15 additions & 0 deletions message-index/messages/GHC-45906/example/index.md
Original file line number Diff line number Diff line change
@@ -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’)
```
24 changes: 24 additions & 0 deletions message-index/messages/GHC-45906/index.md
Original file line number Diff line number Diff line change
@@ -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
Loading