Мне кажется, или c2hs вообще не может в функции, где параметр-структура передаётся по значению?
test.h:
typedef struct
{
int bar;
} Foo;
void foo(Foo);
test.chs:
#include "test.h"
{#call foo#}
[ERROR] >>> Illegal structure or union type!
There is not automatic support for marshaling of structures and unions;
Если передавать по указателю, всё нормально. Сишную обёртку, которая преобразует вызов по значению в вызов по указателю, я, конечно, могу написать, но как правильно-то?