Removing __stginit_Foo is all very well, but unfortunately those symbols are part of our documented FFI interface(!). See for example ccall/should_run/ffi002_c.c in the test suite. Perhaps we should keep a dummy __stginit_Foo in each module for this reason? Cheers, Simon