GHC allows you to quantify variables over TYPE 'Unlifted (a.k.a, #)
This should be disallowed, so sayeth goldfire:
$ inplace/bin/ghc-stage2 --interactive
GHCi, version 8.1.20160109: http://www.haskell.org/ghc/ :? for help
λ> :set -XKindSignatures
λ> import GHC.Types
λ> data Wat (a :: TYPE 'Unlifted) = Wat a
λ> :i Wat
data Wat (a :: #) = Wat a -- Defined at <interactive>:3:1
λ> :set -XMagicHash
λ> :t Wat 1#
Wat 1# :: Wat GHC.Prim.Int#
λ> :t Wat 'a'#
Wat 'a'# :: Wat GHC.Prim.Char#
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (Type checker) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | goldfire |
| Operating system | |
| Architecture |