ご存じのようにident、Cの任意の識別子について、その場所がヒープ上にあるかスタック上にあるかに関係なく、&identへのメモリ位置 (ポインタ) を取得するように記述できます。identC 型を使用している場合、この機能にアクセスできると便利なことがよくあります。
FFIのHaskellに同等の操作はありますか?
Haskell にインポートする C 識別子がある場合は、次のように、 FFI 宣言の「&」構文を使用して、そのアドレスへのポインターに変換できます。
foreign import ccall "&" bar :: Ptr CInt
通常、インポートするほとんどすべてが既にポインターであるため、これを行うことは非常にまれです。
Haskell の値自体も、ガベージ コレクターの影響を受けないようにするために、安定したポインターを使用してポインターに変換される場合があります。