ファイルがめちゃくちゃでかくなると思っていろいろ調べたのですが、

http://e.tir.jp/wiliki?hdn
> よく読んだら、「余分なデータの削除なるオプションで500KB弱になった」と書いてある。それらしいオプションは……
>
> --overlay=strip strip any extra data attached to the file [DANGEROUS]
>
> なんか、「DANGEROUS」って書いてあるんだが。

とありますが、ghc6.8.1ではそのオプションは削除されています。

http://e.tir.jp/wiliki?hdn
> stripと言えば、binutils付属のstripコマンドもあった。
> ...
> strip -s hsddd01.exe
> 2.3Mが1.1Mになった。バイナリの半分以上がシンボルでできていたのか……。

この方法はマニュアルの
http://www.haskell.org/ghc/docs/latest/html/users_guide/smaller.html
に言及されていました。

-funfolding-use-threshold0
というオプションをMinimal.hsのコンパイル時につけると逆に若干ファイルサイズが増えました。