>>321
CharやIntは、ユーザが同等の型を自分で定義することが非現実的、という点でプリミティブだけど、
他のあらゆるデータ型と対等に扱える(多相関数に渡せ、多相データ型に保持できる)ことと、
基本的に参照(ポインタ)を介して操作される、という点では明らかにオブジェクトに近い。
例えば、データ構造中にIntを一個保持するには、普通、ポインタ一個分と整数一個分の
領域が必要になる。

GHCでは、「真の」プリミティブ型としてInt#やChar#などが使える。(非ボックス化型、unboxed typeという)
これはJavaのプリミティブ型に相当するもので、多相関数に渡せない。これを使って、例えばIntは
data Int = I# Int#
と定義されている。(I#は単なるデータ構築子の名前)