2
種類*を持っているタイプの家族はこの単純なコードはコンパイルされません
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’
ですなぜこの制限が存在するのかわかりません。
でも同じセマンティクスはなく、同じ意味では使用できません。
タイプの種類の「::」の右側にはありませんか?だから、最初のものは「kind tはsort kを持っている」と言っていますが、2番目のものは「tがkind kを持っています」と言います。 –
TypeInTypeではすべて同じです。 –
おそらく 'タイプファミリーF(k ::タイプ):: k - >タイプ'はあなたが望むものに近いでしょうか? – chi