Closed3

次のGHC(GHC 9.4)に入りそうな機能

だめぽだめぽ
だめぽだめぽ

GHC 9.6以降

List

動機はDependent Haskell関連です。

型レベルで [a0,a1,...,aN] という構文を使った場合、N=0の場合はリストの型コンストラクター(カインドは Type -> Type)として、N=1の場合はリスト型(カインドは Type)、N≥2の場合は昇格されたリスト(カインドは [k])となります。頭にプライムをつけると常に昇格されたリストになります。

ghci> :kind []
[] :: Type -> Type
ghci> :kind [Int]
[Int] :: Type
ghci> :kind [Int,Int]
[Int,Int] :: [Type]
ghci> :kind '[]
'[] :: [a]
ghci> :kind '[Int]
'[Int] :: [Type]
ghci> :kind '[Int,Int]
'[Int,Int] :: [Type]

今後、項の中に型レベルの式を書けるようになった時に、リスト型やリストの型コンストラクターに言及するのに従来のように [][a] と書いていると、項の中では「昇格されたリスト」になってしまいます。

このスクラップは2022/11/17にクローズされました