Edward Kmett 前段時間報告了一個實物推斷錯誤,這對他的類別庫來說非常煩人。
我不知道這是否已在某些更高版本的 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
如何獲取有關此的資訊(例如:是否會解決)?
uj5u.com熱心網友回復:
這并沒有回答所提出的問題(“什么時候修復錯誤?”),但我認為知道添加顯式種類簽名會使 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 :: *)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/431370.html
標籤:哈斯克尔
上一篇:最小完整定義Ord是如何選擇的?
