generated at
GHCのUnboxed typesとprimitive値



GHCの文脈での「Unboxed」とか「primitive」が指す意味
Haskell自身で定義できないものという意味
コンパイラが直接提供しているという意味でのprimitive
「Haskellの標準関数」などの意味ではない
例えば、 IO 型とかはどこからもimportできるが、これは別にprimitiveではない
primitive値の全てはGHC.Extsからexportされている
他のmodule内で定義されて再exportされているものもある
例えば Int の値コンストラクタ I# GHC.Types内で定義されている
GHC.Extsをimportすれば、一般ユーザーも使うことができる
パフォーマンス観点とかでどうしても必要な場合にのみ使う




boxingされたものについて
GHCが提供する型の多くはboxingされている
suffixに # が付いていないもの全てなので、本当に多いmrsekut
これらの値はヒープ領域に確保される
例えば、 Int は2wordsのheap object



関連



序盤だけ読んだmrsekut
時間かけて読むと楽しそう