获取有关 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 :: *)