Closed3
次のGHC(GHC 9.4)に入りそうな機能
ピン留めされたアイテム
記事として公開しました:
GHC 9.4に入る機能
- docs/users_guide/9.4.1-notes.rst · ghc-9.4 · Glasgow Haskell Compiler / GHC · GitLab
- libraries/base/changelog.md · master · Glasgow Haskell Compiler / GHC · GitLab
- Migration Guide 9.4 · Wiki · Glasgow Haskell Compiler / GHC · GitLab
リリース管理のやつ:
- 9.4.1 release tracking (#21127) · Issues · Glasgow Haskell Compiler / GHC · GitLab
- 9.4.1 · Milestones · Glasgow Haskell Compiler / GHC · GitLab
~
が普通の型演算子になる
\cases
ByteArray
と MutableByteArray
- Add Data.ByteArray (!6152) · Merge requests · Glasgow Haskell Compiler / GHC · GitLab
- Rename Data.ByteArray to Data.Array.Byte + add Trustworthy (!6742) · Merge requests · Glasgow Haskell Compiler / GHC · GitLab
- Export MutableByteArray from Data.Array.Byte (!7785) · Merge requests · Glasgow Haskell Compiler / GHC · GitLab
Levity-polymorphic arrays
ST
が MonadFail
のインスタンスじゃなくなる
magicDict
が withDict
になる
Int64
/Word64
の内部表現が変わる
GHC 9.6以降
List
- Draft: Export 'type List = []' from Data.List (!7228) · Merge requests · Glasgow Haskell Compiler / GHC · GitLab
- Rename [] to List (#21294) (!7869) · Merge requests · Glasgow Haskell Compiler / GHC · GitLab
- Non-punning list and tuple syntax (-XListTuplePuns, -XNoListTuplePuns) (#21294) · Issues · Glasgow Haskell Compiler / GHC · GitLab
動機は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にクローズされました