当我以以下方式之一将一个(大)模块导入到主模块中时:
import Mymodule
import qualified Mymodule as M
import Mymodule (MyDatatype)
与不导入该模块相比,编译后的二进制文件增长了同样巨大的数量。无论在Main模块中是否使用该模块中的任何内容,这种情况都会发生。编译器(我使用的是Debian Testing上的GHC)不应该只添加运行所需的内容到二进制文件中吗?
在我的特定情况下,我在Mymodule中有一个巨大的Map,而我在Main模块中没有使用它。选择性地导入我真正需要的东西并没有改变编译后的二进制文件的增长。