获取有关 GHC 中 Kind 推理错误的信息
Getting info on a Kind inference bug in GHC
Edward Kmett reported 类推论中的一个错误,前一段时间对他的类别库来说非常烦人。
我不知道这是否已在某些更高版本的 GHC 中解决。它似乎存在于 8.10.7 和 9.0.2 中。
{-# LANGUAGE PolyKinds #-}
class D a => C (f :: k) a
class C () a => D a
data W f (a :: k) where
MkW :: W Maybe Int -> W f a
如何获取这方面的信息(例如:是否会解决)?
这并没有回答所问的问题(“该错误何时修复?”),但我认为了解添加显式类型签名会使此版本与 GHC 8.10.5 和 GHC 一起编译可能会很有用>= 9(前提是启用了一些扩展)。
-- extensions for GHC 8.10.5
{-# LANGUAGE UndecidableInstances, ExplicitForAll,
PolyKinds, UndecidableSuperClasses,
StandaloneKindSignatures, MultiParamTypeClasses,
FlexibleContexts #-}
import Data.Kind
type D :: Type -> Constraint
type C :: forall k. k -> Type -> Constraint
class D a => C (f :: k) a
class C () a => D (a :: *)
Edward Kmett reported 类推论中的一个错误,前一段时间对他的类别库来说非常烦人。
我不知道这是否已在某些更高版本的 GHC 中解决。它似乎存在于 8.10.7 和 9.0.2 中。
{-# LANGUAGE PolyKinds #-}
class D a => C (f :: k) a
class C () a => D a
data W f (a :: k) where
MkW :: W Maybe Int -> W f a
如何获取这方面的信息(例如:是否会解决)?
这并没有回答所问的问题(“该错误何时修复?”),但我认为了解添加显式类型签名会使此版本与 GHC 8.10.5 和 GHC 一起编译可能会很有用>= 9(前提是启用了一些扩展)。
-- extensions for GHC 8.10.5
{-# LANGUAGE UndecidableInstances, ExplicitForAll,
PolyKinds, UndecidableSuperClasses,
StandaloneKindSignatures, MultiParamTypeClasses,
FlexibleContexts #-}
import Data.Kind
type D :: Type -> Constraint
type C :: forall k. k -> Type -> Constraint
class D a => C (f :: k) a
class C () a => D (a :: *)