Haskell のinline-cで C ブロックからリストまたは配列を取得するにはどうすればよいですか? 言い換えれば、C で複雑なデータを構築し、それを Haskell で操作する方法です。このようなもの:
foo :: IO [Int]
foo = do
what? <- [C.block| <what?> {
ints = calloc(10, sizeof(int));
// ...
return <what?>;
} |]
return <what?>
ポインターとサイズを Haskell 型でラップすることもできますが、リストを Haskell で操作したり、印刷したり、JSON でエンコードしたりしたいと考えています。