この節はGHCのコマンド行フラグの早見表である。それぞれのフラグについて、動的/静的の区別(4.3. 静的オプション、動的オプション、モード指定オプションを見よ)と逆のフラグ(存在すれば)も載せられている。
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -? | ヘルプ | モード | - | 
| -help | ヘルプ | モード | - | 
| -v | 多弁モード( -v3と同等) | 動 | - | 
| -vn | 多弁さを設定する | 動 | - | 
| -V | GHCのバージョンを表示 | モード | - | 
| ––supported-extensionsまたは––supported-languages | 対応している言語および言語拡張を表示 | モード | - | 
| ––info | コンパイラに関する情報を表示 | モード | - | 
| ––version | GHCのバージョンを表示 | モード | - | 
| ––numeric-version | GHCのバージョンを表示(数値のみ) | モード | - | 
| ––print-libdir | GHCのライブラリディレクトリを表示 | モード | - | 
| -ferror-spans | エラーメッセージで範囲を完全な形で表示する | 静 | - | 
| -Hsize | 最低ヒープサイズを sizeにする | 静 | - | 
| -Rghc-timing | GHCの時間情報の要約を表示する( +RTS -tstderrと同じ) | 静 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -E | 前処理まで( .hsppファイル) | モード | - | 
| -C | C生成まで( .hcファイル) | モード | - | 
| -S | アセンブリ生成まで( .sファイル) | モード | - | 
| -c | リンクしない | 動 | - | 
| -xsuffix | ソースファイルの種類に対してデフォルトでない振る舞いをする | 静 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| --interactive | 対話モード。通常これを使うときは単にghciを走らせる。詳細は第2章. GHCiを使うを見よ。 | モード | - | 
| --make | 複数モジュールからなるHaskellプログラムを、依存性を自動的に解決しながらビルドする。makeを使うのよりもずっと簡単で、速いことが期待できる。詳細は4.5.1. ghc ––makeを使うを見よ。 | モード | - | 
| -e  | exprを評価する。詳細は4.5.2. 式評価モードを見よ。 | モード | - | 
| -M | Makefileで使うのに適した依存性情報を生成する。詳細は4.7.11. 依存関係を生成するを見よ。 | モード | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -hcsufsuffix | 中間Cファイルに使う接尾辞を設定する | 動 | - | 
| -hidirdir | インタフェースファイルを置くディレクトリを設定する | 動 | - | 
| -hisufsuffix | インタフェースファイルに使う接尾辞を設定する | 動 | - | 
| -ofilename | 出力ファイル名を設定する | 動 | - | 
| -odirdir | オブジェクトファイルのディレクトリを設定する | 動 | - | 
| -ohifilename | インタフェースを置くファイルの名前を設定する | 動 | |
| -osufsuffix | 出力ファイルの接尾辞を設定する | 動 | - | 
| -stubdirdir | FFIのスタブファイルの出力先を変更する | 動 | - | 
| -dumpdirdir | ダンプファイルの出力先を変更する | 動 | - | 
| -outputdirdir | 出力ディレクトリを設定する | 動 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -keep-hc-fileまたは-keep-hc-files | 中間の .hcファイルを保持する | 動 | - | 
| -keep-llvm-fileまたは-keep-llvm-files | 中間の .llLLVMファイルを保持する | 動 | - | 
| -keep-s-fileまたは-keep-s-files | 中間の .sファイルを保持する | 動 | - | 
| -keep-tmp-files | 全ての中間ファイルを保持する | 動 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -idir1:dir2:... | dir、dir2…をインポートパスに追加する | 静/ :set | - | 
| -i | インポートディレクトリの一覧を空にする | 静/ :set | - | 
4.7.7. インタフェースファイルに関連するその他のオプション
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -ddump-hi | 新しいインタフェースファイルを標準出力に出力する | 動 | - | 
| -ddump-hi-diffs | 古いインタフェースファイルと比較しての差分を表示する | 動 | - | 
| -ddump-minimal-imports | 最小のインポートを出力する | 動 | - | 
| --show-ifacefile | 4.5. 実行モードを見よ。 | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -fforce-recomp | 再コンパイル検査を無効にする。 -ddump-X系のオプションが一つでも指定されているときは自動的に有効になる。 | 動 | -fno-force-recomp | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -ignore-dot-ghci | .ghciファイルを読むのを無効にする | 静 | - | 
| -ghci-script | 与えられた .ghciを追加で読む | 静 | - | 
| -read-dot-ghci | .ghciファイルを読むのを有効にする | 静 | - | 
| -fbreak-on-exception | 例外が投げられる度にブレークする | 動 | -fno-break-on-exception | 
| -fbreak-on-error | 例外やエラーがキャッチされなかった場合にブレークする | 動 | -fno-break-on-error | 
| -fprint-evld-with-show | :printでShowのインスタンスを使うのを有効にする | 動 | -fno-print-evld-with-show | 
| -fprint-bind-result | GHCiで束縛の結果を表示するのを有効にする | 動 | -fno-printbind-result | 
| -fno-print-bind-contents | GHCiで束縛の中身を表示するのを無効にする | 動 | - | 
| -fno-implicit-import-qualified | GHCiで、あらゆるものが暗黙にimport qualifiedされるのを無効にする | 動 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -package-nameP | パッケージ Pの一員になるようにコンパイルする | 静 | - | 
| -packageP | パッケージ Pを露出する | 静/ :set | - | 
| -hide-all-packages | デフォルトで全てのパッケージを隠す | 静 | - | 
| -hide-packagename | パッケージ Pを隠す | 静/ :set | - | 
| -ignore-packagename | パッケージ Pを無視する | 静/ :set | - | 
| -package-conffile | fileから追加でパッケージをロードする | 静/ :set | - | 
| -no-user-package-conf | ユーザのパッケージ設定ファイルをロードしない | 静/ :set | - | 
| -no-auto-link-packages | haskell98パッケージを自動的にはリンクしない。 | 動 | - | 
| -trustP | パッケージ Pを露出し、trustedに設定する | 静/ :set | - | 
| -distrustP | パッケージ Pを露出し、distrustedに設定する | 静/ :set | - | 
| -distrust-all | デフォルトで全てのパッケージをdistrustする | 静/ :set | - | 
言語オプションを有効にするには、-Xなんたらというコマンド行オプションを使うか、ファイル自体に{-# LANGUAGE なんたら #-}というプラグマを置く。7.1. 言語オプションを見よ。
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -fglasgow-exts | 大部分の言語拡張を有効にする。具体的には7.1. 言語オプションを見よ。 | 動 | -fno-glasgow-exts | 
| -XOverlappingInstances | 重複インスタンスを有効にする | 動 | -XNoOverlappingInstances | 
| -XIncoherentInstances | 非整合インスタンスを有効にする。 -XOverlappingInstancesも有効になる | 動 | -XNoIncoherentInstances | 
| -XUndecidableInstances | 決定不能インスタンスを有効にする | 動 | -XNoUndecidableInstances | 
| -fcontext-stack=Nn | 文脈簡約の制限値を設定する。デフォルトは20。 | 動 | |
| -XArrows | アロー記法拡張を有効にする | 動 | -XNoArrows | 
| -XDisambiguateRecordFields | レコードフィールドの曖昧性除去を有効にする | 動 | -XNoDisambiguateRecordFields | 
| -XForeignFunctionInterface | 他言語関数インタフェース ( -fglasgow-extsによっても有効になる) | 動 | -XNoForeignFunctionInterface | 
| -XGenerics | 非推奨。何もしない。もはや総称クラスを有効にしない。GHCのジェネリックプログラミングのサポートも参照。 | 動 | -XNoGenerics | 
| -XImplicitParams | 暗黙パラメタを有効にする。 -fglasgow-extsによっても有効になる | 動 | -XNoImplicitParams | 
| -firrefutable-tuples | タプルのパターン照合を反駁不能にする | 動 | -fno-irrefutable-tuples | 
| -XNoImplicitPrelude | 暗黙に import Preludeしない | 動 | -XImplicitPrelude | 
| -XRebindableSyntax | 再束縛可能な構文を有効にする | 動 | -XNoRebindableSyntax | 
| -XNoMonomorphismRestriction | 単相性限定を無効にする | 動 | -XMonomorphismRestriction | 
| -XNoNPlusKPatterns | n+kパターンへの対応を無効にする | 動 | -XNPlusKPatterns | 
| -XNoTraditionalRecordSyntax | 伝統的なレコード構文(Haskell 98が対応しているもの) C {f = x}への対応を無効にする。 | 動 | -XTraditionalRecordSyntax | 
| -XNoMonoPatBinds | パターン束縛を多相的にする。 | 動 | -XMonoPatBinds | 
| -XRelaxedPolyRec | 相互再帰的な多相関数の検査を緩める | 動 | -XNoRelaxedPolyRec | 
| -XExtendedDefaultRules | GHCiの拡張デフォルト化規則を通常のモードで使う | 動 | -XNoExtendedDefaultRules | 
| -XOverloadedStrings | 文字列リテラルの多重定義を有効にする。 | 動 | -XNoOverloadedStrings | 
| -XGADTs | 一般化代数データ型を有効にする。 | 動 | -XNoGADTs | 
| -XGADTSyntax | 一般化代数データ型構文を有効にする。 | 動 | -XNoGADTSyntax | 
| -XTypeFamilies | 型の族を有効にする。 | 動 | -XNoTypeFamilies | 
| -XConstraintKinds | 制約の種を有効にする。 | 動 | -XNoConstraintKinds | 
| -XDataKinds | データ型の昇格を有効にする。 | 動 | -XNoDataKinds | 
| -XPolyKinds | 種多相を有効にする。 | 動 | -XNoPolyKinds | 
| -XScopedTypeVariables | 字句的スコープを持つ型変数を有効にする。 -fglasgow-extsによっても有効になる。 | 動 | -XNoScopedTypeVariables | 
| -XMonoLocalBinds | 局所的な束縛を一般化しないを有効にする。 | 動 | -XNoMonoLocalBinds | 
| -XTemplateHaskell | Template Haskellを有効にする。もはや -fglasgow-extsによって有効にはならない | 動 | -XNoTemplateHaskell | 
| -XQuasiQuotes | 準クォートを有効にする | 動 | -XNoQuasiQuotes | 
| -XBangPatterns | びっくりパターンを有効にする | 動 | -XNoBangPatterns | 
| -XCPP | Cプリプロセッサを有効にする。 | 動 | -XNoCPP | 
| -XPatternGuards | パターンガードを有効にする。 | 動 | -XNoPatternGuards | 
| -XViewPatterns | ビューパターンを有効にする。 | 動 | -XNoViewPatterns | 
| -XUnicodeSyntax | Unicode構文を有効にする。 | 動 | -XNoUnicodeSyntax | 
| -XMagicHash | 「#」を識別子につける後置修飾子として認める。 | 動 | -XNoMagicHash | 
| -XExplicitForAll | 明示的な全称量化を有効にする。以下の各オプションによっても有効になる。 -XScopedTypeVariables、-XLiberalTypeSynonyms、-XRank2Types、-XRankNTypes、-XPolymorphicComponents、-XExistentialQuantification。 | 動 | -XNoExplicitForAll | 
| -XPolymorphicComponents | データ構築子が多相的な構成要素を持てるようにする。 | 動 | -XNoPolymorphicComponents | 
| -XRank2Types | ランク2の型を有効にする。 | 動 | -XNoRank2Types | 
| -XRankNTypes | ランクNの型を有効にする。 | 動 | -XNoRankNTypes | 
| -XImpredicativeTypes | 非叙述的な型を有効にする。 | 動 | -XNoImpredicativeTypes | 
| -XExistentialQuantification | 存在量化を有効にする。 | 動 | -XNoExistentialQuantification | 
| -XKindSignatures | 種シグネチャを有効にする。 | 動 | -XNoKindSignatures | 
| -XEmptyDataDecls | 空のデータ型宣言を有効にする。 | 動 | -XNoEmptyDataDecls | 
| -XParallelListComp | 並行リスト内包表記を有効にする。 | 動 | -XNoParallelListComp | 
| -XTransformListComp | 一般化リスト内包表記を有効にする。 | 動 | -XNoTransformListComp | 
| -XMonadComprehensions | モナド内包表記を有効にする。 | 動 | -XNoMonadComprehensions | 
| -XUnliftedFFITypes | unlifted FFI typesを有効にする。 | 動 | -XNoUnliftedFFITypes | 
| -XInterruptibleFFI | 割り込み可能なFFIを有効にする。 | 動 | -XNoInterruptibleFFI | 
| -XLiberalTypeSynonyms | 自由化型シノニムを有効にする。 | 動 | -XNoLiberalTypeSynonyms | 
| -XTypeOperators | 型演算子を有効にする。 | 動 | -XNoTypeOperators | 
| -XDoRec | 再帰的do記法を有効にする。 | 動 | -XNoDoRec | 
| -XRecursiveDo | 再帰的do(mdo)記法を有効にする。これは非推奨である。代わりに再帰的do記法を使ってほしい。 | 動 | -XNoRecursiveDo | 
| -XParallelArrays | parallel arrayを有効にする。 | 動 | -XNoParallelArrays | 
| -XRecordWildCards | レコードワイルドカードを有効にする | 動 | -XNoRecordWildCards | 
| -XNamedFieldPuns | レコード同名利用を有効にする。 | 動 | -XNoNamedFieldPuns | 
| -XDisambiguateRecordFields | フィールドの曖昧性除去を有効にする。 | 動 | -XNoDisambiguateRecordFields | 
| -XUnboxedTuples | 非ボックス化タプルを有効にする。 | 動 | -XNoUnboxedTuples | 
| -XStandaloneDeriving | 独立derivingを有効にする。 | 動 | -XNoStandaloneDeriving | 
| -XDeriveDataTypeable | DataとTypeableの両クラスについてのderivingを有効にする。 | 動 | -XNoDeriveDataTypeable | 
| -XDeriveGeneric | Genericクラスについての自動導出を有効にする。 | 動 | -XNoDeriveGeneric | 
| -XGeneralizedNewtypeDeriving | newtype derivingを有効にする。 | 動 | -XNoGeneralizedNewtypeDeriving | 
| -XTypeSynonymInstances | インスタンス頭部中の型シノニムを有効にする。 | 動 | -XNoTypeSynonymInstances | 
| -XFlexibleContexts | 柔軟な文脈を有効にする。 -XTypeSynonymInstancesも有効になる。 | 動 | -XNoFlexibleContexts | 
| -XFlexibleInstances | 柔軟なインスタンスを有効にする。 | 動 | -XNoFlexibleInstances | 
| -XConstrainedClassMethods | 制約付きクラスメソッドを有効にする。 | 動 | -XNoConstrainedClassMethods | 
| -XDefaultSignatures | デフォルトシグネチャを有効にする。 | 動 | -XNoDefaultSignatures | 
| -XMultiParamTypeClasses | 多引数の型クラスを有効にする。 | 動 | -XNoMultiParamTypeClasses | 
| -XFunctionalDependencies | 関数従属を有効にする。 | 動 | -XNoFunctionalDependencies | 
| -XPackageImports | パッケージ修飾されたインポートを有効にする。 | 動 | -XNoPackageImports | 
| -XSafe | Safe HaskellのSafeモードを有効にする。 | 動 | - | 
| -XTrustworthy | Safe HaskellのTrustworthyモードを有効にする。 | 動 | - | 
| -XUnsafe | Safe HaskellのUnsafeモードを有効にする。 | 動 | - | 
| -fpackage-trust | Safe Haskellのtrustworthyモジュールに関するパッケージの信頼要件を有効にする。 | 動 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -W | 通常の警告を有効にする | 動 | -w | 
| -w | 全ての警告を無効にする | 動 | - | 
| -Wall | ほぼ全ての警告を有効にする | 動 | -w | 
| -Werror | 警告を致命的にする | 動 | -Wwarn | 
| -Wwarn | 警告を致命的でなくする | 動 | -Werror | 
| -fwarn-unrecognised-pragmas | GHCが認識できないプラグマが使われているときに警告する | 動 | -fno-warn-unrecognised-pragmas | 
| -fwarn-warnings-deprecations | WARNINGおよびDEPRECATEDプラグマの付いた関数・型が使われているときに警告する | 動 | -fno-warn-warnings-deprecations | 
| -fwarn-deprecated-flags | 非推奨のコマンド行フラグが使われているときに警告する | 動 | -fno-warn-deprecated-flags | 
| -fwarn-duplicate-exports | 実体が複数回エクスポートされているときに警告する | 動 | -fno-warn-duplicate-exports | 
| -fwarn-hi-shadowing | カレントディレクトリの .hiファイルがライブラリを隠しているときに警告する | 動 | -fno-warn-hi-shadowing | 
| -fwarn-identities | Preludeの数値変換を、おそらく恒等変換として使っている(よって省かれる)場合に警告する | 動 | -fno-warn-identities | 
| -fwarn-implicit-prelude | Preludeが暗黙にimportされるときに警告する | 動 | -fno-warn-implicit-prelude | 
| -fwarn-incomplete-patterns | パターン照合が失敗し得るときに警告する | 動 | -fno-warn-incomplete-patterns | 
| -fwarn-incomplete-uni-patterns | ラムダ式やパターン束縛におけるパターンが失敗し得るときに警告する | 動 | -fno-warn-incomplete-uni-patterns | 
| -fwarn-incomplete-record-updates | レコード更新が失敗し得るときに警告する | 動 | -fno-warn-incomplete-record-updates | 
| -fwarn-lazy-unlifted-bindings | 正格でなければならないパターン束縛が遅延されるように見えるときに警告する | 動 | -fno-warn-lazy-unlifted-bindings | 
| -fwarn-missing-fields | レコードのフィールドが初期化されていないときに警告する | 動 | -fno-warn-missing-fields | 
| -fwarn-missing-import-lists | import宣言がスコープに導入される名前全てを明示的に列挙していないときに警告する | 動 | -fnowarn-missing-import-lists | 
| -fwarn-missing-methods | クラスメソッドが定義されていないときに警告する | 動 | -fno-warn-missing-methods | 
| -fwarn-missing-signatures | シグネチャのない最上位の関数があれば警告する | 動 | -fno-warn-missing-signatures | 
| -fwarn-missing-local-sigs | シグネチャのない多相的な局所束縛があれば警告する | 動 | -fno-warn-missing-local-sigs | 
| -fwarn-name-shadowing | 名前の隠蔽があれば警告する | 動 | -fno-warn-name-shadowing | 
| -fwarn-orphans | モジュールに孤立したインスタンス宣言や書き換え規則があるときに警告する | 動 | -fno-warn-orphans | 
| -fwarn-overlapping-patterns | 重複パターンがあれば警告する | 動 | -fno-warn-overlapping-patterns | 
| -fwarn-tabs | ソースファイル中にタブがあったときに警告する | 動 | -fno-warn-tabs | 
| -fwarn-type-defaults | デフォルト化が起きたときに警告する | 動 | -fno-warn-type-defaults | 
| -fwarn-monomorphism-restriction | 単相性限定が適用された時に警告する | 動 | -fno-warn-monomorphism-restriction | 
| -fwarn-unused-binds | 未使用の束縛があれば警告する | 動 | -fno-warn-unused-binds | 
| -fwarn-unused-imports | 不必要なインポートがあれば警告する | 動 | -fno-warn-unused-imports | 
| -fwarn-unused-matches | パターン中に未使用の変数があれば警告する | 動 | -fno-warn-unused-matches | 
| -fwarn-unused-do-bind | ()以外の型の値を捨てているように見えるdo bindingがあれば警告する。 | 動 | -fno-warn-unused-do-bind | 
| -fwarn-wrong-do-bind | 束縛するべきだったモナドな値を捨てているように見えるdo bindingがあれば警告する。 | 動 | -fno-warn-wrong-do-bind | 
| -fwarn-unsafe | コンパイルしているモジュールがunsafeと見なされる場合に警告する。安全性推論を使う場合に、モジュールが安全かどうかを確認するために使うべきである。 | 動 | -fno-warn-unsafe | 
| -fwarn-safe | コンパイルしているモジュールがsafeと見なされる場合に警告する。安全性推論を使う場合に、モジュールが安全かどうかを確認するために使うべきである。 | 動 | -fno-warn-safe | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -fcase-merge | case-mergingを有効にする。 -Oオプションによって有効になる。 | 動 | -fno-case-merge | 
| -fcse | 共通部分式の除去を有効にする。 -Oによっても有効になる。 | 動 | -fno-cse | 
| -fdicts-strict | 辞書を正格にする | 静 | -fno-dicts-strict | 
| -fdo-eta-reduction | イータ簡約を有効にする。 -Oによって有効になる。 | 動 | -fno-do-eta-reduction | 
| -fdo-lambda-eta-expansion | ラムダイータ展開を有効にする | 動 | -fno-do-lambda-eta-expansion | 
| -feager-blackholing | eager blackholingを有効にする | 動 | - | 
| -fenable-rewrite-rules | 全ての書き換え規則(多重定義関数の自動特殊化で生成されたものも含む)を有効にする。 -Oによっても有効になる。 | 動 | -fno-enable-rewrite-rules | 
| -fexcess-precision | 中間値の精度超過を有効にする | 動 | -fno-excess-precision | 
| -ffloat-in | "float-in"最適化を有効にする。 -Oによっても有効になる。 | 動 | -fno-float-in | 
| -ffull-laziness | 完全遅延(束縛を外側に向かって浮遊させる)を有効にする。 -Oによっても有効になる。 | 動 | -fno-full-laziness | 
| -fignore-asserts | ソース中のアサーションを無視する | 動 | -fno-ignore-asserts | 
| -fignore-interface-pragmas | インタフェースファイル中のプラグマを無視する | 動 | -fno-ignore-interface-pragmas | 
| -fliberate-case | liberate-case変換を有効にする。 -O2によっても有効になる。 | 動 | -fno-liberate-case | 
| -fliberate-case-threshold=n | liberate-case変換における大きさ閾値を nに設定する。(デフォルト: 200) | 静 | -fno-liberate-case-threshold | 
| -fmax-simplifier-iterations | 単純化器の最大繰り返し回数を設定する | 動 | - | 
| -fmax-worker-args | ワーカにこれだけの引数があるとき、これ以上アンパックしない(デフォルト: 10) | 静 | - | 
| -fno-opt-coercion | coercion最適化器を使わない | 静 | - | 
| -fno-pre-inlining | pre-inliningを無効にする | 静 | - | 
| -fno-state-hack | 実世界の状態トークンを引数として持つラムダが単一進入だとみなされ、従ってその内容をインライン化できる、という「stateハック」を無効にする。 | 静 | - | 
| -fpedantic-bottoms | GHCがボトムをより精密に扱うようにする(しかし、 -fno-state-hackも見よ)。特に、case式を透過してイータ展開をすることがなくなる。 | 動 | -fno-pedantic-bottoms | 
| -fomit-interface-pragmas | インタフェースプラグマを生成しない | 動 | -fno-omit-interface-pragmas | 
| -fsimplifier-phases | 単純化器の段階の数を設定する(デフォルトは2)。 -O0が与えられたときには無視される。 | 動 | - | 
| -fsimpl-tick-factor= | 単純化器のtickの倍率を百分率で指定する(デフォルトは100)。 | 動 | - | 
| -fspec-constr | SpecConstr変換を有効にする。 -O2によっても有効になる。 | 動 | -fno-spec-constr | 
| -fspec-constr-threshold=n | SpecConstr変換の大きさ閾値を nにする。(デフォルト: 200) | 静 | -fno-spec-constr-threshold | 
| -fspec-constr-count=n | 一つの関数についてSpecConstr変換で作られる特殊化の数の最大値を nにする。(デフォルト: 3) | 静 | -fno-spec-constr-count | 
| -fspecialise | 多重定義された関数の特殊化を有効にする。 -Oによっても有効になる。 | 動 | -fno-specialise | 
| -fstrictness | 正格性解析を有効にする。 -Oによっても有効になる。 | 動 | -fno-strictness | 
| -fstrictness=before=n | 単純化器の段階 nの前に、追加で正格性解析を行なう。 | 動 | - | 
| -fstatic-argument-transformation | 静的引数変換を有効にする。 -O2によって有効になる。 | 動 | -fno-static-argument-transformation | 
| -funbox-strict-fields | 構築子の正格なフィールドを平坦化する | 動 | -fno-unbox-strict-fields | 
| -funfolding-creation-threshold | 展開の設定を調整する | 静 | -fno-unfolding-creation-threshold | 
| -funfolding-fun-discount | 展開の設定を調整する | 静 | -fno-unfolding-fun-discount | 
| -funfolding-keeness-factor | 展開の設定を調整する | 静 | -fno-unfolding-keeness-factor | 
| -funfolding-use-threshold | 展開の設定を調整する | 静 | -fno-unfolding-use-threshold | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -prof | プロファイルを有効にする | 静 | - | 
| -fprof-auto | INLINE指定されていない全ての関数に自動的に SCCを付加する | 動 | -fno-prof-auto | 
| -fprof-auto-top | INLINE指定されていない全ての最上位の関数に自動的に SCCを付加する | 動 | -fno-prof-auto | 
| -fprof-auto-exported | エクスポートされていてINLINE指定されていない全ての関数に自動的に SCCを付加する | 動 | -fno-prof-auto | 
| -fprof-cafs | 全てのCAFに自動的に SCCを付加する | 動 | -fno-prof-cafs | 
| -fno-prof-count-entries | 進入回数を収集しない | 動 | -fprof-count-entries | 
| -ticky | ticky-tickyプロファイルを有効にする | 静 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -fhpc | Haskellプログラム網羅率の計器付与を有効にする | 静 | - | 
| -hpcdir dir | コンパイル中に.mixファイルを保管するディレクトリ(デフォルトは.hpc) | 動 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -cpp | Haskellソースファイルに対してCプリプロセッサを走らせる | 動 | - | 
| -Dsymbol[=value] | Cプリプロセッサのシンボルを定義する | 動 | -Usymbol | 
| -Usymbol | Cプリプロセッサのシンボルを未定義にする | 動 | - | 
| -Idir | #includeファイルの探索ディレクトリにdirを加える | 動 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -fasm | ネイティブコード生成器を使う | 動 | -fllvm | 
| -fllvm | LLVMコード生成器を使う | 動 | -fasm | 
| -fno-code | コード生成を省略する | 動 | - | 
| -fbyte-code | バイトコードを生成する | 動 | - | 
| -fobject-code | オブジェクトコードを生成する | 動 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -shared | (実行ファイルでなく)共有ライブラリを生成する | 動 | - | 
| -fPIC | (可能なら)位置独立コードを生成する | 静 | - | 
| -dynamic | (可能なら)動的なHaskellライブラリを使う | 静 | - | 
| -dynload | 実行時に共有ライブラリを見つけるための方法として、いくつかから一つ選ぶ。 | 静 | - | 
| -frameworkname | Darwin/MacOS Xのみ。フレームワーク nameをリンクする。このオプションはAppleのリンカの-frameworkオプションに相当する。 | 動 | - | 
| -framework-pathname | Darwin/MacOS Xのみ。ディレクトリ dirをフレームワークを探索するディレクトリ一覧に加える。これはAppleのリンカの-Fオプションに相当する。 | 動 | - | 
| -llib | ライブラリ libをリンクする | 動 | - | 
| -Ldir | dirをライブラリを探索するディレクトリの一覧に加える | 動 | - | 
| -main-is | mainのモジュールと関数を設定する | 動 | - | 
| --mk-dll | DLL作成モード(Windows のみ) | 動 | - | 
| -no-hs-main | プログラムに mainがあるとは考えない | 動 | - | 
| -rtsopts,-rtsopts={none,some,all} | RTSの振る舞いを、コマンド行フラグと環境変数 GHCRTSで調整できるようにするかどうかを制御する。noneを使うと、一切のRTSフラグを与えられないということになる。someなら、最小限の、安全なオプションのみを与えられる(デフォルト)。allなら(あるいは、引数がないなら)全てのRTSフラグが許可されるという意味である。 | 動 | - | 
| -with-rtsopts= | デフォルトのRTSオプションを optsに設定する。 | 動 | - | 
| -no-link | リンクを省略する | 動 | - | 
| -split-objs | オブジェクトを分割する(ライブラリ用) | 動 | - | 
| -static | 静的なHaskellライブラリを使う | 静 | - | 
| -threaded | スレッド化されたランタイムを使う | 静 | - | 
| -debug | デバッグ用ランタイムを使う | 静 | - | 
| -eventlog | ランタイムのevent tracingを有効にする | 静 | - | 
| -fno-gen-manifest | マニフェストファイルを生成しない(Windowsのみ) | 動 | - | 
| -fno-embed-manifest | マニフェストファイルを実行ファイルに埋め込まない(Windowsのみ) | 動 | - | 
| -fno-shared-implib | DLL用のインポートライブラリを生成しない(Windowsのみ) | 動 | - | 
| -dylib-install-namepath | ライブラリファイルのインストール先のフルパスを示すinstall nameを設定する(これはAppleのリンカに -install_nameを渡すことで行なう)。後にこのライブラリをリンクするライブラリや実行ファイルは、このライブラリを実行時に探索する場所としてこのパスを選ぶ。(Darwin/MacOS Xのみ) | 動 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -fplugin=module | 与えられたモジュールからエクスポートされているプラグインをロードする | 静 | - | 
| -fplugin-opt=module:args | プラグインモジュールに引数を与える。モジュールは -fpluginで指定されねばならない | 静 | - | 
4.12.1. それぞれの段階で使われるプログラムを変更する
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -pgmLcmd | cmdを文芸前処理器として使う | 動 | - | 
| -pgmPcmd | cmdをCプリプロセッサとして使う(-cppが指定された場合のみ) | 動 | - | 
| -pgmccmd | cmdをCコンパイラとして使う | 動 | - | 
| -pgmlocmd | cmdをLLVM最適化器として使う | 動 | - | 
| -pgmlccmd | cmdをLLVMコンパイラとして使う | 動 | - | 
| -pgmscmd | cmdをsplitterとして使う | 動 | - | 
| -pgmacmd | cmdをアセンブラとして使う | 動 | - | 
| -pgmlcmd | cmdをリンカとして使う | 動 | - | 
| -pgmdllcmd | cmdをDLL生成器として使う | 動 | - | 
| -pgmFcmd | cmdを前処理器として使う(-Fが指定されているときのみ) | 動 | - | 
| -pgmwindrescmd | cmdを、Windowsでマニフェストを埋め込むためのプログラムとして使う。 | 動 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -optLoption | optionを文芸前処理器に渡す | 動 | - | 
| -optPoption | optionをcppに渡す(-cppが指定されているときのみ) | 動 | - | 
| -optFoption | optionを用意した前処理器に渡す | 動 | - | 
| -optcoption | optionをCコンパイラに渡す | 動 | - | 
| -optlooption | optionをLLVM最適化器に渡す | 動 | - | 
| -optlcoption | optionをLLVMコンパイラに渡す | 動 | - | 
| -optmoption | optionをmanglerに渡す | 動 | - | 
| -optaoption | optionをアセンブラに渡す | 動 | - | 
| -optloption | optionをリンカに渡す | 動 | - | 
| -optdlloption | optionをDLL生成器に渡す | 動 | - | 
| -optwindresoption | optionをwindresに渡す | 動 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -msse2 | (x86のみ)浮動小数点にSSE2を使う | 動 | - | 
| -monly-[432]-regs | (x86のみ)レジスタをいくつかCコンパイラに返す | 動 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -dcore-lint | 内部的な正気度チェックを有効にする | 動 | - | 
| -ddump-to-file | 標準出力でなくファイルに出力する | 動 | - | 
| -ddump-asm | アセンブリを表示 | 動 | - | 
| -ddump-bcos | インタプリタバイトコードを出力 | 動 | - | 
| -ddump-cmm | C--出力を表示 | 動 | - | 
| -ddump-core-stats | 最適化パイプラインの最後に、Coreプログラムの大きさの一行要約を表示する | 動 | - | 
| -ddump-cpranal | CPR解析の出力を表示 | 動 | - | 
| -ddump-cse | CSEの出力を表示 | 動 | - | 
| -ddump-deriv | 自動導出(deriving)の出力を表示 | 動 | - | 
| -ddump-ds | 脱糖器の出力を表示 | 動 | - | 
| -ddump-flatC | 「平坦な」Cを表示 | 動 | - | 
| -ddump-foreign | foreign exportのスタブを表示 | 動 | - | 
| -ddump-hpc | プログラム網羅率のために計器付与された段階で表示 | 動 | - | 
| -ddump-inlinings | インライン化情報を表示 | 動 | - | 
| -ddump-llvm | LLVM中間コードを出力する | 動 | - | 
| -ddump-occur-anal | 出現解析の出力を表示 | 動 | - | 
| -ddump-opt-cmm | C--からC--への最適化過程の出力を表示 | 動 | - | 
| -ddump-parsed | 構文解析木を表示 | 動 | - | 
| -ddump-prep | prepared coreを表示 | 動 | - | 
| -ddump-rn | 名前変更器の出力を表示 | 動 | - | 
| -ddump-rule-firings | 規則(rules)の発火情報を表示 | 動 | - | 
| -ddump-rule-rewrites | 規則(rules)の詳細な発火情報を表示 | 動 | - | 
| -ddump-rules | 規則(rules)を表示 | 動 | - | 
| -ddump-vect | ベクトル化器の入力と出力を表示 | 動 | - | 
| -ddump-simpl | 単純化器の最終出力を表示 | 動 | - | 
| -ddump-simpl-phases | 単純化器の段階毎の出力を表示 | 動 | - | 
| -ddump-simpl-iterations | 単純化器の繰り返し毎の出力を表示 | 動 | - | 
| -ddump-spec | 特殊化器の出力を表示 | 動 | - | 
| -ddump-splices | 接合されたTH式と、その評価結果を表示 | 動 | - | 
| -ddump-stg | 最終STGを表示 | 動 | - | 
| -ddump-stranal | 正格性解析器の出力を表示 | 動 | - | 
| -ddump-tc | 型検査器の出力を表示 | 動 | - | 
| -ddump-types | 型シグネチャを表示 | 動 | - | 
| -ddump-worker-wrapper | worker/wrapper出力を表示 | 動 | - | 
| -ddump-if-trace | インタフェースファイルを追跡 | 動 | - | 
| -ddump-tc-trace | 型検査器を追跡 | 動 | - | 
| -ddump-vt-trace | ベクトル化器を追跡 | 動 | - | 
| -ddump-rn-trace | 名前変更器を追跡 | 動 | - | 
| -ddump-rn-stats | 名前変更器の統計情報 | 動 | - | 
| -ddump-simpl-stats | 単純化器の統計情報を出力 | 動 | - | 
| -dno-debug-output | 要求された以外のデバッグ出力を抑制する | 静 | - | 
| -dppr-debug | デバッグ表示を有効にする(さらなる多弁) | 静 | - | 
| -dppr-noprags | デバッグ出力中でプラグマ情報を出力しない | 静 | - | 
| -dppr-user-length | エラーメッセージで表示する式の深さを設定する | 静 | - | 
| -dppr-colsNNN | デバッグ出力の幅を設定する。例えば -dppr-cols200 | 静 | - | 
| -dppr-case-as-let | 選択肢が一つのcase式を正格なletとして表示する。 | 静 | - | 
| -dsuppress-all | コア出力において、抑制可能なものを全て抑制する。 | 静 | - | 
| -dsuppress-uniques | デバッグ出力中で固有子を表示することを抑制する(diffが使いやすくなる) | 静 | - | 
| -dsuppress-idinfo | 識別子の束縛地点に置かれる、識別子についての拡張情報を抑制する。 | 静 | - | 
| -dsuppress-module-prefixes | モジュール修飾接頭辞を表示するのを抑制する。 | 静 | - | 
| -dsuppress-type-signatures | 型シグネチャを抑制する | 静 | - | 
| -dsuppress-type-applications | 型適用を抑制する | 静 | - | 
| -dsuppress-coercions | Core出力の中で型変換(coercion)を表示するのを抑制し、Core出力が短かくなるようにする。 | 静 | - | 
| -dsource-stats | Haskellソースの統計情報を表示 | 動 | - | 
| -dcmm-lint | C--過程の正気度チェック | 動 | - | 
| -dstg-lint | STG過程の正気度チェック | 動 | - | 
| -dstg-stats | STG統計情報を表示 | 動 | - | 
| -dverbose-core2core | コアからコアへの過程一回毎に出力を表示 | 動 | - | 
| -dverbose-stg2stg | STGからSTGへの過程一回毎に出力を表示 | 動 | - | 
| -dshow-passes | 過程の名前を発生ごとに表示 | 動 | - | 
| -dfaststring-stats | 終了時にfast stringの利用に関する統計情報を表示 | 動 | - | 
| フラグ | 解説 | 動静 | 逆 | 
|---|---|---|---|
| -fno-hi-version-check | .hiファイルが合致しなくても文句を言わない | 静 | - | 
| -dno-black-holing | ブラックホール化を無効にする(おそらく動作しない) | 静 | - | 
| -fhistory-size | 単純化履歴の大きさを設定する | 静 | - | 
| -funregisterised | 非レジスタ化コンパイル(代わりに -unregを使うこと) | 静 | - | 
| -fno-ghci-history | GHCiのコマンドヒストリ ghci_historyを読み書きしない。 | 動 | - | 
| -fno-ghci-sandbox | GHCiのサンドボックスを無効にする。これは、フォークされたスレッドではなく主スレッドで計算が走るということである。 | 動 | - |