Visibility mismatch between data declaration and kind signature, accepted!
{-# Language PolyKinds #-}
{-# Language RankNTypes #-}
{-# Language StandaloneKindSignatures #-}
import Data.Kind
type ID :: forall i -> i -> Type
data ID :: forall i -> i -> Type
This compiles on 8.10.0.20191123, if we change the standalone kind signature forall->
to forall.
we get an error. Obviously?
-- • Couldn't match expected kind ‘forall i1 -> i1 -> *’
-- with actual kind ‘i -> *’
-- • In the data type declaration for ‘ID’
-- |
-- 8 | data ID :: forall i -> i -> Type
-- | ^^^^^^^
type ID :: forall i. i -> Type
data ID :: forall i -> i -> Type
But then why does this compile
type ID :: forall i -> i -> Type
data ID :: forall i. i -> Type