#include extern void __stginit_%name(void); HsBool __attribute__ ((constructor)) %name_load(void); void __attribute__ ((destructor)) %name_unload(void); HsBool %name_load(void){ int argc = 1; char *argv[] = { "ghcDll", NULL }; /* N.B. argv arrays must end with NULL */ // Initialize Haskell runtime hs_init(&argc, &argv); // Tell Haskell about all root modules hs_add_root(__stginit_%name); // do any other initialization here and // return false if there was a problem return HS_BOOL_TRUE; } void %name_unload(void){ hs_exit(); }