[英]Type family forcing parameter to have the kind *
這個簡單的代碼無法編譯
import Data.Kind
type family F (k :: Type) :: (t :: k) -> Type
錯誤消息是
• Expected a type, but ‘t’ has kind ‘k’
• In the kind ‘(t :: k) -> Type’
從某種意義上說,我實際上定義了“類型家庭”,但我並不真正理解為什么會存在這種限制。
type family F (k :: Type) (t :: k) :: Type
確實可以,但是它沒有相同的語義,因此不能使用相同的語義。
無需在結果類型中命名t
。 您可以簡單地使用
type family F (k :: Type) :: k -> Type
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.