と不要バイナリ成長iは、次のいずれかの方法でメインモジュールに(大きな)モジュールをインポートする:ハスケル:モジュール輸入
import Mymodule
import qualified Mymodule as M
import Mymodule (MyDatatype)
コンパイルされたバイナリの場合、Iドンと比較して、同じ膨大な量の成長そのモジュールをインポートしないでください。これは、メインモジュール内でそのモジュール内に何かを使用するかどうかにかかわらず発生します。コンパイラ(私はDebian TestingでGHCを使用しています)は、実行するために必要なものだけをバイナリに追加するべきではありませんか?
私の特定のケースでは、メインモジュールで使用していない巨大なMap in Mymoduleがあります。私が本当に必要なものを選択的にインポートしても、コンパイルされたバイナリの成長は変わりませんでした。
「GHCに関する限り、インポートリストは読みやすさと名前の衝突を避けるためだけにあり、リンクされているものには何の影響も与えません。」これは真実ではありません。なぜなら、メインモジュール内に「import Mymodule」を置いても、そのモジュール内で何も使わずにサイズが大きくなってしまうからです。 – Josephine
"インポートリスト"は、モジュール名の後にかっこでインポートする識別子のリストを指し、モジュールの先頭にあるインポートステートメントのリストは参照しません。 – ehird
そうです、それは理にかなっています。解明と非常に有益な答えをありがとう! – Josephine