Are there any good ways to make small haskell executables? With ghc6 a simple hello world program seems to come to about 370kB (523kB before strip). Hello world in C is abou
GHC is statically linking everything (except libraries used by runtime itself, which are linked dynamically).
In the old ages, GHC linked the whole (haskell) library in as soon as you've used something from it. Sometime ago, GHC started to link "per obj file", which drastically reduced the binary size. Judging from the size, you must've been using the newer GHC already.
On the plus side, you already have a lot of stuff in those 500K, like multithreaded core, garbage collector etc.
Add at least garbage collector to your C code, then compare them again :)