Меня интересует импорт С и С++ структур в Хаскель Я знаю 1 способ это сделать:
struct a{
int f1;
int f2;
};
typedef struct a A;
A* makeA(int f1, int f2){
A* p = malloc(sizeof(A));
p -> f1 = f1;
p -> f2 = f2;
return p;
}
foreign import ccall safe "makeA" c_makeA :: CInt -> CInt -> IO (Ptr())
newtype AStruct = A (Ptr ())
makeA :: Int -> Int -> IO AStruct
makeA a b = fmap A $ c_makeA (fromIntegral a) (fromIntegral b)
-- bla bla bla