GHC(1) Glasgow Haskell Compiler GHC(1)

ghc - کامپایلر هسکل گلاسگو (Glasgow Haskell Compiler)

ghc [option|filename]
ghci [option|filename]

این صفحهٔ راهنما به طور خلاصه دستورهای ghc و ghci را شرح می‌دهد. توجه داشته باشید که ghci هنوز روی همهٔ معماری‌ها در دسترس نیست. مستندات جامع در قالب‌های گوناگون دیگری از جمله PDF <https://downloads.haskell.org/ghc/latest/docs/users_guide.pdf> و HTML <https://downloads.haskell.org/ghc/latest/docs/html> در دسترس است.

هر یک از گزینه‌های خط فرمان GHC به صورت static (ایستا) یا dynamic (پویا) دسته‌بندی می‌شوند. یک پرچم ایستا تنها می‌تواند در خط فرمان مشخص شود، در حالی که یک پرچم پویا می‌تواند در پراگمای OPTIONS در فایل منبع نیز تعیین گردد یا از خط فرمان GHCi با :set تنظیم شود.

به عنوان یک قاعدهٔ کلی، تمام گزینه‌های مربوط به زبان پویا هستند، همان‌طور که گزینه‌های هشدار و گزینه‌های اشکال‌زدایی نیز پویا می‌باشند.

بقیه موارد ایستا هستند، به استثنای موارد شاخص -v، -cpp، -fasm، -fvia-C، -fllvm و -#include. بخش گزینه‌ها (OPTIONS) وضعیت هر پرچم را فهرست می‌کند.

پسوندهای رایج نام فایل‌ها برای Haskell عبارتند از:

.hs
کد منبع Haskell؛ پیش‌پردازش، کامپایل
.lhs
کد منبع ادیبانه Haskell؛ unlit، پیش‌پردازش، کامپایل
.hi
فایل رابط؛ حاوی اطلاعات درباره نمادهای صادرشده (exported symbols)
.hc
فایل‌های واسط C
.⟨way⟩_o
فایل‌های شیء (object) برای ⟨way⟩؛ حالت‌های رایج عبارتند از:
پیوندیافته پویا (dynamically-linked)
ساخته‌شده همراه با پروفایل‌سازی (profiling)
.⟨way⟩_hi
فایل‌های رابط برای ⟨way⟩؛ حالت‌های رایج عبارتند از:
تولید کد (Code generation)
-dynamic-too -fasm -fllvm -fbyte-code -fbyte-code-and-object-code -fexpose-internal-symbols -fexternal-dynamic-refs -fllvm -fasm -fno-code -fobject-code -fPIC -fPIE -fprefer-byte-code -fwrite-if-simplified-core -fwrite-interface -split-objs
اشکال‌زدایی کامپایلر (Debugging the compiler)
-dasm-lint -dcmm-lint -dcore-lint -ddump-asm -ddump-asm-conflicts -ddump-asm-liveness -ddump-asm-native -ddump-asm-regalloc -ddump-asm-regalloc-stages -ddump-asm-stats -ddump-bcos -ddump-c-backend -ddump-call-arity -ddump-cfg-weights -ddump-cmm -ddump-cmm-caf -ddump-cmm-cbe -ddump-cmm-cfg -ddump-cmm-cps -ddump-cmm-from-stg -ddump-cmm-info -ddump-cmm-opt -ddump-cmm-proc -ddump-cmm-procmap -ddump-cmm-raw -ddump-cmm-sink -ddump-cmm-sp -ddump-cmm-split -ddump-cmm-switch -ddump-cmm-thread-sanitizer -ddump-cmm-verbose -ddump-cmm-verbose-by-proc -ddump-core-stats -ddump-cpr-signatures -ddump-cpranal -ddump-cs-trace -ddump-cse -ddump-debug -ddump-deriv -ddump-ds -ddump-ds-preopt -ddump-ec-trace -ddump-exitify -ddump-faststrings -ddump-file-prefix=⟨str⟩ -ddump-foreign -ddump-hie -ddump-hpc -ddump-if-trace -ddump-inlinings -ddump-js -ddump-json -ddump-late-cc -ddump-llvm -ddump-mod-map -ddump-occur-anal -ddump-opt-cmm -ddump-parsed -ddump-parsed-ast -ddump-prep -ddump-rn -ddump-rn-ast -ddump-rn-stats -ddump-rn-trace -ddump-rtti -ddump-rule-firings -ddump-rule-rewrites -ddump-rules -ddump-simpl -ddump-simpl-iterations -ddump-simpl-stats -ddump-simpl-trace -ddump-spec -ddump-splices -ddump-stg -ddump-stg-cg -ddump-stg-final -ddump-stg-from-core -ddump-stg-tags -ddump-stg-unarised -ddump-str-signatures -ddump-stranal -ddump-tc -ddump-tc-ast -ddump-tc-trace -ddump-ticked -ddump-timings -ddump-to-file -ddump-types -ddump-verbose-inlinings -ddump-view-pattern-commoning -ddump-worker-wrapper -dfaststring-stats -dhex-word-literals -dinitial-unique=⟨s⟩ -dinline-check=⟨str⟩ -dipe-stats -dkeep-comments -dlinear-core-lint -dlint -dno-debug-output -ddebug-output -dno-typeable-binds -dppr-case-as-let -dppr-cols=⟨n⟩ -dppr-debug -dppr-user-length -drule-check=⟨str⟩ -dshow-passes -dstg-lint -dsuppress-all -dsuppress-coercion-types -dsuppress-coercions -dsuppress-core-sizes -dsuppress-idinfo -dsuppress-module-prefixes -dsuppress-stg-free-vars -dsuppress-stg-reps -dsuppress-ticks -dsuppress-timestamps -dsuppress-type-applications -dsuppress-type-signatures -dsuppress-unfoldings -dsuppress-uniques -dsuppress-var-kinds -dtag-inference-checks -dth-dec-file -dunique-increment=⟨i⟩ -dverbose-core2core -dverbose-stg2stg -falignment-sanitisation -fcatch-nonexhaustive-cases -fcheck-prim-bounds -fcmm-thread-sanitizer -fdistinct-constructor-tables -fdump-with-ways -finfo-table-map -finfo-table-map-with-fallback -fno-info-table-map-with-fallback -finfo-table-map-with-stack -fno-info-table-map-with-stack -fllvm-fill-undef-with-garbage -fno-info-table-map-with-fallback -finfo-table-map-with-fallback -fno-info-table-map-with-stack -finfo-table-map-with-stack -fproc-alignment -g -g⟨n⟩
پیش‌پردازندهٔ C (C pre-processor)
-cpp -D⟨symbol⟩[=⟨value⟩] -U⟨symbol⟩ -I⟨dir⟩ -U⟨symbol⟩
یافتن موارد واردشده (Finding imports)
-i -i⟨dir⟩[:⟨dir⟩]*
حالت تعاملی (Interactive mode)
-fbreak-on-error -fno-break-on-error -fbreak-on-exception -fno-break-on-exception -fghci-hist-size=⟨n⟩ -fghci-leak-check -fno-ghci-leak-check -fimplicit-import-qualified -fno-implicit-import-qualified -flocal-ghci-history -fno-local-ghci-history -fno-it -fno-no-it -fprint-bind-result -fno-print-bind-result -fprint-evld-with-show -fshow-loaded-modules -ghci-script -ignore-dot-ghci -no-ignore-dot-ghci -interactive-print ⟨name⟩
فایل‌های واسط (Interface files)
--show-iface ⟨file⟩ -ddump-hi -ddump-hi-diffs -ddump-minimal-imports
نگه‌داری فایل‌های میانی (Keeping intermediate files)
-keep-hc-file -keep-hc-files -keep-hi-files -no-keep-hi-files -keep-hscpp-file -keep-hscpp-files -keep-llvm-file -keep-llvm-files -keep-o-files -no-keep-o-files -keep-s-file -keep-s-files -keep-tmp-files
گزینه‌های زبان (Language options)
-XAllowAmbiguousTypes -XApplicativeDo -XArrows -XBangPatterns -XBinaryLiterals -XBlockArguments -XCApiFFI -XConstrainedClassMethods -XConstraintKinds -XCPP -XCUSKs -XDataKinds -XDatatypeContexts -XDeepSubsumption -XDefaultSignatures -XDeriveAnyClass -XDeriveDataTypeable -XDeriveFoldable -XDeriveFunctor -XDeriveGeneric -XDeriveLift -XDeriveTraversable -XDerivingStrategies -XDerivingVia -XDisambiguateRecordFields -XDuplicateRecordFields -XEmptyCase -XEmptyDataDecls -XEmptyDataDeriving -XExistentialQuantification -XExplicitForAll -XExplicitNamespaces -XExtendedDefaultRules -XFieldSelectors -XFlexibleContexts -XFlexibleInstances -XForeignFunctionInterface -XFunctionalDependencies -XGADTs -XGADTSyntax -XGeneralisedNewtypeDeriving -XGeneralizedNewtypeDeriving -XGHC2021 -XGHCForeignImportPrim -XHaskell2010 -XHaskell98 -XHexFloatLiterals -XImplicitParams -XImportQualifiedPost -XImpredicativeTypes -XIncoherentInstances -XInstanceSigs -XInterruptibleFFI -XKindSignatures -XLambdaCase -XLexicalNegation -XLiberalTypeSynonyms -XLinearTypes -XMagicHash -XMonadComprehensions -XMonoLocalBinds -XMultiParamTypeClasses -XMultiWayIf -XNamedFieldPuns -XNamedWildCards -XNegativeLiterals -XNoImplicitPrelude -XNoMonomorphismRestriction -XNondecreasingIndentation -XNoPatternGuards -XNoTraditionalRecordSyntax -XNPlusKPatterns -XNullaryTypeClasses -XNumDecimals -XNumericUnderscores -XOverlappingInstances -XOverloadedLabels -XOverloadedLists -XOverloadedRecordDot -XOverloadedRecordUpdate -XOverloadedStrings -XPackageImports -XParallelListComp -XPartialTypeSignatures -XPatternSynonyms -XPolyKinds -XPostfixOperators -XQualifiedDo -XQuantifiedConstraints -XQuasiQuotes -XRank2Types -XRankNTypes -XRebindableSyntax -XRecordWildCards -XRecursiveDo -XRoleAnnotations -XSafe -XScopedTypeVariables -XStandaloneDeriving -XStandaloneKindSignatures -XStarIsType -XStaticPointers -XStrict -XStrictData -XTemplateHaskell -XTemplateHaskellQuotes -XTransformListComp -XTrustworthy -XTupleSections -XTypeApplications -XTypeData -XTypeFamilies -XTypeFamilyDependencies -XTypeInType -XTypeOperators -XTypeSynonymInstances -XUnboxedSums -XUnboxedTuples -XUndecidableInstances -XUndecidableSuperClasses -XUnicodeSyntax -XUnliftedDatatypes -XUnliftedFFITypes -XUnliftedNewtypes -XUnsafe -XViewPatterns
گزینه‌های پیوند (Linking options)
-c -debug -dylib-install-name ⟨path⟩ -dynamic -dynload -eventlog -fcompact-unwind -fkeep-cafs -flink-rts -fno-embed-manifest -fno-gen-manifest -fno-shared-implib -framework ⟨name⟩ -framework-path ⟨dir⟩ -fsplit-sections -split-sections -fno-split-sections -fuse-rpaths -fwhole-archive-hs-libs -L ⟨dir⟩ -l ⟨lib⟩ -main-is ⟨thing⟩ -no-hs-main -no-pie -pie -no-rtsopts-suggestions -package ⟨name⟩ -pie -no-pie -rdynamic -rtsopts[=⟨none|some|all|ignore|ignoreAll⟩] -shared -static -staticlib -threaded -with-rtsopts=⟨opts⟩
گزینه‌های متفرقه (Miscellaneous options)
-ddump-mod-cycles -fexternal-interpreter -ffamily-application-cache -fno-family-application-cache -fglasgow-exts -fno-glasgow-exts -fno-safe-haskell -ghcversion-file ⟨path to ghcversion.h⟩ -H ⟨size⟩ -hidden-module ⟨module name⟩ -j[⟨n⟩] -reexported-module ⟨module name⟩ -this-package-name ⟨unit-id⟩ -unit @⟨filename⟩ -working-dir ⟨dir⟩
حالت‌های اجرا (Modes of operation)
--frontend ⟨module⟩ --help -? --info --interactive --make --numeric-version --print-booter-version --print-build-platform --print-c-compiler-flags --print-c-compiler-link-flags --print-debug-on --print-global-package-db --print-have-interpreter --print-have-native-code-generator --print-host-platform --print-ld-flags --print-leading-underscore --print-libdir --print-object-splitting-supported --print-project-git-commit-id --print-project-version --print-rts-ways --print-stage --print-support-smp --print-tables-next-to-code --print-target-platform --print-unregisterised --run ⟨file⟩ --show-iface ⟨file⟩ --show-options --supported-extensions --supported-languages --version -V -e ⟨expr⟩ -M -shared
بهینه‌سازی‌های مجزا (Individual optimizations)
-fasm-shortcutting -fno-asm-shortcutting -fbinary-blob-threshold=⟨n⟩ -fblock-layout-cfg -fno-block-layout-cfg -fblock-layout-weightless -fno-block-layout-weightless -fblock-layout-weights -fcall-arity -fno-call-arity -fcase-folding -fno-case-folding -fcase-merge -fno-case-merge -fcmm-control-flow -fno-cmm-control-flow -fcmm-elim-common-blocks -fno-cmm-elim-common-blocks -fcmm-sink -fno-cmm-sink -fcmm-static-pred -fno-cmm-static-pred -fcore-constant-folding -fno-core-constant-folding -fcpr-anal -fno-cpr-anal -fcross-module-specialise -fno-cross-module-specialise -fcse -fno-cse -fdicts-cheap -fno-dicts-cheap -fdicts-strict -fno-dicts-strict -fdmd-tx-dict-sel -fno-dmd-tx-dict-sel -fdmd-unbox-width=⟨n⟩ -fdo-eta-reduction -fno-do-eta-reduction -fdo-lambda-eta-expansion -fno-do-lambda-eta-expansion -feager-blackholing -fenable-rewrite-rules -fno-enable-rewrite-rules -fexcess-precision -fno-excess-precision -fexitification -fno-exitification -fexpose-all-unfoldings -fno-expose-all-unfoldings -ffloat-in -fno-float-in -ffull-laziness -fno-full-laziness -ffun-to-thunk -fno-fun-to-thunk -fignore-asserts -fno-ignore-asserts -fignore-interface-pragmas -fno-ignore-interface-pragmas -finline-generics -fno-inline-generics -finline-generics-aggressively -fno-inline-generics-aggressively -flate-dmd-anal -fno-late-dmd-anal -flate-specialise -fno-late-specialise -fliberate-case -fno-liberate-case -fliberate-case-threshold=⟨n⟩ -fno-liberate-case-threshold -fllvm-pass-vectors-in-regs -flocal-float-out -fno-local-float-out -flocal-float-out-top-level -fno-local-float-out-top-level -floopification -fno-loopification -fmax-inline-alloc-size=⟨n⟩ -fmax-inline-memcpy-insns=⟨n⟩ -fmax-inline-memset-insns=⟨n⟩ -fmax-simplifier-iterations=⟨n⟩ -fmax-uncovered-patterns=⟨n⟩ -fmax-worker-args=⟨n⟩ -fno-opt-coercion -fno-pre-inlining -fno-state-hack -fomit-interface-pragmas -fno-omit-interface-pragmas -fomit-yields -fno-omit-yields -foptimal-applicative-do -fno-optimal-applicative-do -fpedantic-bottoms -fno-pedantic-bottoms -fpolymorphic-specialisation -fno-polymorphic-specialisation -fregs-graph -fno-regs-graph -fregs-iterative -fno-regs-iterative -fsimpl-tick-factor=⟨n⟩ -fsimplifier-phases=⟨n⟩ -fsolve-constant-dicts -fno-solve-constant-dicts -fspec-constr -fno-spec-constr -fspec-constr-count=⟨n⟩ -fno-spec-constr-count -fspec-constr-keen -fno-spec-constr-keen -fspec-constr-threshold=⟨n⟩ -fno-spec-constr-threshold -fspecialise -fno-specialise -fspecialise-aggressively -fno-specialise-aggressively -fstatic-argument-transformation -fno-static-argument-transformation -fstg-cse -fno-stg-cse -fstg-lift-lams -fno-stg-lift-lams -fstg-lift-lams-known -fno-stg-lift-lams-known -fstg-lift-lams-non-rec-args -fstg-lift-lams-non-rec-args-any -fstg-lift-lams-rec-args -fstg-lift-lams-rec-args-any -fstrictness -fno-strictness -fstrictness-before=⟨n⟩ -funbox-small-strict-fields -fno-unbox-small-strict-fields -funbox-strict-fields -fno-unbox-strict-fields -funfolding-case-scaling=⟨n⟩ -funfolding-case-threshold=⟨n⟩ -funfolding-creation-threshold=⟨n⟩ -funfolding-dict-discount=⟨n⟩ -funfolding-fun-discount=⟨n⟩ -funfolding-keeness-factor=⟨n⟩ -funfolding-use-threshold=⟨n⟩ -fworker-wrapper -fworker-wrapper-cbv
سطوح بهینه‌سازی (Optimization levels)
-O -O1 -O0 -O0 -O2 -O0 -O⟨n⟩ -O0
گزینه‌های بسته (Package options)
-clear-package-db -distrust ⟨pkg⟩ -distrust-all-packages -fpackage-trust -global-package-db -hide-all-packages -hide-package ⟨pkg⟩ -ignore-package ⟨pkg⟩ -no-auto-link-packages -no-global-package-db -no-user-package-db -package ⟨pkg⟩ -package-db ⟨file⟩ -package-env ⟨file⟩|⟨name⟩ -package-id ⟨unit-id⟩ -this-unit-id ⟨unit-id⟩ -trust ⟨pkg⟩ -user-package-db
مراحل کامپایل (Phases of compilation)
--merge-objs -C -c -E -F -S -x ⟨suffix⟩
جایگزینی برنامه‌های خارجی (Overriding external programs)
-pgma ⟨cmd⟩ -pgmc ⟨cmd⟩ -pgmcxx ⟨cmd⟩ -pgmdll ⟨cmd⟩ -pgmF ⟨cmd⟩ -pgmi ⟨cmd⟩ -pgminstall_name_tool ⟨cmd⟩ -pgmL ⟨cmd⟩ -pgml ⟨cmd⟩ -pgmlc ⟨cmd⟩ -pgmlm ⟨cmd⟩ -pgmlo ⟨cmd⟩ -pgmotool ⟨cmd⟩ -pgmP ⟨cmd⟩ -pgms ⟨cmd⟩ -pgmwindres ⟨cmd⟩
گزینه‌های مختص فازها (Phase-specific options)
-opta ⟨option⟩ -optc ⟨option⟩ -optcxx ⟨option⟩ -optdll ⟨option⟩ -optF ⟨option⟩ -opti ⟨option⟩ -optL ⟨option⟩ -optl ⟨option⟩ -optlc ⟨option⟩ -optlm ⟨option⟩ -optlo ⟨option⟩ -optP ⟨option⟩ -optwindres ⟨option⟩ -pgmc-supports-no-pie -pgml-supports-no-pie
گزینه‌های مختص پلتفرم (Platform-specific options)
-mavx -mavx2 -mavx512cd -mavx512er -mavx512f -mavx512pf -mbmi -mbmi2 -msse -msse2 -msse3 -msse4 -msse4.2
پلاگین‌های کامپایلر (Compiler plugins)
-fclear-plugins -fplugin-library=⟨file-path⟩;⟨unit-id⟩;⟨module⟩;⟨args⟩ -fplugin-opt=⟨module⟩:⟨args⟩ -fplugin-trustworthy -fplugin=⟨module⟩ -hide-all-plugin-packages -plugin-package ⟨pkg⟩ -plugin-package-id ⟨pkg-id⟩
پروفایل‌سازی (Profiling)
-auto -auto-all -caf-all -fno-prof-count-entries -fprof-count-entries -fprof-auto -fno-prof-auto -fprof-auto-calls -fno-prof-auto -fprof-auto-exported -fno-prof-auto -fprof-auto-top -fno-prof-auto -fprof-cafs -fno-prof-cafs -fprof-callers=⟨name⟩ -fprof-late -fno-prof-late -fprof-late-inline -fno-prof-late-inline -fprof-manual -fno-prof-manual -no-auto -no-auto-all -no-caf-all -prof -ticky -ticky-allocd -ticky-ap-thunk -ticky-dyn-thunk -ticky-LNE -ticky-tag-checks
پوشش برنامه (Program coverage)
-fhpc -hpcdir⟨dir⟩
بررسی کامپایل مجدد (Recompilation checking)
-exclude-module=⟨file⟩ -fforce-recomp -fno-force-recomp -fignore-hpc-changes -fno-ignore-hpc-changes -fignore-optim-changes -fno-ignore-optim-changes -include-cpp-deps -include-pkg-deps
تغییر مسیر خروجی (Redirecting output)
-dep-makefile ⟨file⟩ -dep-suffix ⟨suffix⟩ -dumpdir ⟨dir⟩ -dynhisuf ⟨suffix⟩ -dyno ⟨file⟩ -dynohi ⟨file⟩ -dynosuf ⟨suffix⟩ -hcsuf ⟨suffix⟩ -hidir ⟨dir⟩ -hiedir ⟨dir⟩ -hiesuf ⟨suffix⟩ -hisuf ⟨suffix⟩ -o ⟨file⟩ -odir ⟨dir⟩ -ohi ⟨file⟩ -osuf ⟨suffix⟩ -outputdir ⟨dir⟩ -stubdir ⟨dir⟩
فایل‌های موقت (Temporary files)
-tmpdir ⟨dir⟩
گزینه‌های پرگویی (Verbosity options)
-fabstract-refinement-hole-fits -fno-abstract-refinement-hole-fits -fdefer-diagnostics -fdiagnostics-color=⟨always|auto|never⟩ -fdiagnostics-show-caret -fno-diagnostics-show-caret -ferror-spans -fhide-source-paths -fkeep-going -fmax-refinement-hole-fits=⟨n⟩ -fno-max-refinement-hole-fits -fmax-relevant-binds=⟨n⟩ -fno-max-relevant-binds -fmax-valid-hole-fits=⟨n⟩ -fno-max-valid-hole-fits -fno-show-valid-hole-fits -fno-sort-valid-hole-fits -fsort-valid-hole-fits -fprint-axiom-incomps -fno-print-axiom-incomps -fprint-equality-relations -fno-print-equality-relations -fprint-expanded-synonyms -fno-print-expanded-synonyms -fprint-explicit-coercions -fno-print-explicit-coercions -fprint-explicit-foralls -fno-print-explicit-foralls -fprint-explicit-kinds -fno-print-explicit-kinds -fprint-explicit-runtime-reps -fno-print-explicit-runtime-reps -fprint-potential-instances -fno-print-potential-instances -fprint-redundant-promotion-ticks -fno-print-redundant-promotion-ticks -fprint-typechecker-elaboration -fno-print-typechecker-elaboration -fprint-unicode-syntax -fno-print-unicode-syntax -frefinement-level-hole-fits=⟨n⟩ -fno-refinement-level-hole-fits -freverse-errors -fno-reverse-errors -fshow-docs-of-hole-fits -fno-show-docs-of-hole-fits -fshow-error-context -fno-show-error-context -fshow-hole-constraints -fshow-hole-matches-of-hole-fits -fno-show-hole-matches-of-hole-fits -fshow-provenance-of-hole-fits -fno-show-provenance-of-hole-fits -fshow-type-app-of-hole-fits -fno-show-type-app-of-hole-fits -fshow-type-app-vars-of-hole-fits -fno-show-type-app-vars-of-hole-fits -fshow-type-of-hole-fits -fno-show-type-of-hole-fits -fsort-by-size-hole-fits -fno-sort-by-size-hole-fits -fsort-by-subsumption-hole-fits -fno-sort-by-subsumption-hole-fits -funclutter-valid-hole-fits -Rghc-timing -v -v⟨n⟩
هشدارها (Warnings)
-fdefer-out-of-scope-variables -fno-defer-out-of-scope-variables -fdefer-type-errors -fno-defer-type-errors -fdefer-typed-holes -fno-defer-typed-holes -fenable-th-splice-warnings -fno-enable-th-splice-warnings -fhelpful-errors -fno-helpful-errors -fmax-pmcheck-models=⟨n⟩ -fshow-warning-groups -fno-show-warning-groups -fvia-C -W -w -w -Wall -w -Wall-missed-specialisations -Wno-all-missed-specialisations -Wall-missed-specializations -Wno-all-missed-specializations -Wambiguous-fields -Wauto-orphans -Wcompat -Wno-compat -Wcompat-unqualified-imports -Wno-compat-unqualified-imports -Wcpp-undef -Wdefault -Wdeferred-out-of-scope-variables -Wno-deferred-out-of-scope-variables -Wdeferred-type-errors -Wno-deferred-type-errors -Wdeprecated-flags -Wno-deprecated-flags -Wdeprecations -Wno-deprecations -Wderiving-defaults -Wno-deriving-defaults -Wderiving-typeable -Wno-deriving-typeable -Wdodgy-exports -Wno-dodgy-exports -Wdodgy-foreign-imports -Wno-dodgy-foreign-imports -Wdodgy-imports -Wno-dodgy-imports -Wduplicate-constraints -Wno-duplicate-constraints -Wduplicate-exports -Wno-duplicate-exports -Wempty-enumerations -Wno-empty-enumerations -Werror -Wwarn -Weverything -Wextra -w -Wforall-identifier -Wno-forall-identifier -Wgadt-mono-local-binds -Wno-gadt-mono-local-binds -Whi-shadowing -Wno-hi-shadowing -Widentities -Wno-identities -Wimplicit-kind-vars -Wno-implicit-kind-vars -Wimplicit-lift -Wno-implicit-lift -Wimplicit-prelude -Wno-implicit-prelude -Winaccessible-code -Wno-inaccessible-code -Wincomplete-patterns -Wno-incomplete-patterns -Wincomplete-record-updates -Wno-incomplete-record-updates -Wincomplete-uni-patterns -Wno-incomplete-uni-patterns -Winferred-safe-imports -Wno-inferred-safe-imports -Winline-rule-shadowing -Wno-inline-rule-shadowing -Winvalid-haddock -Wno-invalid-haddock -Wloopy-superclass-solve -Wno-loopy-superclass-solve -Wmisplaced-pragmas -Wno-misplaced-pragmas -Wmissed-extra-shared-lib -Wno-missed-extra-shared-lib -Wmissed-specialisations -Wno-missed-specialisations -Wmissed-specializations -Wno-missed-specializations -Wmissing-deriving-strategies -Wno-missing-deriving-strategies -Wmissing-export-lists -Wno-missing-export-lists -Wmissing-exported-pattern-synonym-signatures -Wno-missing-exported-pattern-synonym-signatures -Wmissing-exported-signatures -Wno-missing-exported-signatures -Wmissing-exported-sigs -Wno-missing-exported-sigs -Wmissing-fields -Wno-missing-fields -Wmissing-home-modules -Wno-missing-home-modules -Wmissing-import-lists -Wno-missing-import-lists -Wmissing-kind-signatures -Wno-missing-kind-signatures -Wmissing-local-signatures -Wno-missing-local-signatures -Wmissing-local-sigs -Wno-missing-local-sigs -Wmissing-methods -Wno-missing-methods -Wmissing-monadfail-instances -Wno-missing-monadfail-instances -Wmissing-pattern-synonym-signatures -Wno-missing-pattern-synonym-signatures -Wmissing-safe-haskell-mode -Wno-missing-safe-haskell-mode -Wmissing-signatures -Wno-missing-signatures -Wmissing-space-after-bang -Wmonomorphism-restriction -Wno-monomorphism-restriction -Wname-shadowing -Wno-name-shadowing -Wno-compat -Wcompat -Wnoncanonical-monad-instances -Wno-noncanonical-monad-instances -Wnoncanonical-monadfail-instances -Wno-noncanonical-monadfail-instances -Wnoncanonical-monoid-instances -Wno-noncanonical-monoid-instances -Wnot -Woperator-whitespace -Wno-operator-whitespace -Woperator-whitespace-ext-conflict -Wno-operator-whitespace-ext-conflict -Worphans -Wno-orphans -Woverflowed-literals -Wno-overflowed-literals -Woverlapping-patterns -Wno-overlapping-patterns -Wpartial-fields -Wno-partial-fields -Wpartial-type-signatures -Wno-partial-type-signatures -Wprepositive-qualified-module -Wno-prepositive-qualified-module -Wredundant-bang-patterns -Wno-redundant-bang-patterns -Wredundant-constraints -Wno-redundant-constraints -Wredundant-record-wildcards -Wno-redundant-record-wildcards -Wredundant-strictness-flags -Wno-redundant-strictness-flags -Wsafe -Wno-safe -Wsemigroup -Wno-semigroup -Wsimplifiable-class-constraints -Wno-simplifiable-class-constraints -Wstar-binder -Wno-star-binder -Wstar-is-type -Wno-star-is-type -Wtabs -Wno-tabs -Wtrustworthy-safe -Wno-safe -Wtype-defaults -Wno-type-defaults -Wtype-equality-out-of-scope -Wno-type-equality-out-of-scope -Wtype-equality-requires-operators -Wno-type-equality-requires-operators -Wtyped-holes -Wno-typed-holes -Wunbanged-strict-patterns -Wno-unbanged-strict-patterns -Wunicode-bidirectional-format-characters -Wunrecognised-pragmas -Wno-unrecognised-pragmas -Wunrecognised-warning-flags -Wno-unrecognised-warning-flags -Wunsafe -Wno-unsafe -Wunsupported-calling-conventions -Wno-unsupported-calling-conventions -Wunsupported-llvm-version -Wno-monomorphism-restriction -Wunticked-promoted-constructors -Wno-unticked-promoted-constructors -Wunused-binds -Wno-unused-binds -Wunused-do-bind -Wno-unused-do-bind -Wunused-foralls -Wno-unused-foralls -Wunused-imports -Wno-unused-imports -Wunused-local-binds -Wno-unused-local-binds -Wunused-matches -Wno-unused-matches -Wunused-packages -Wno-unused-packages -Wunused-pattern-binds -Wno-unused-pattern-binds -Wunused-record-wildcards -Wno-unused-record-wildcards -Wunused-top-binds -Wno-unused-top-binds -Wunused-type-patterns -Wno-unused-type-patterns -Wwarn -Werror -Wwarnings-deprecations -Wno-warnings-deprecations -Wwrong-do-bind -Wno-wrong-do-bind

ساخت فایل‌های شیءِ پویا علاوه بر فایل‌های شیء ایستا در حین کامپایل
استفاده از تولیدکننده کد بومی (native code generator)
تولید بایت‌کد (byte-code)
تولید کد شیء (object code) و بایت‌کد
تولید نمادها (symbols) برای تمامی توابع، از جمله توابع داخلی.
تولید کد برای پیوند با کتابخانه‌های پویا
کامپایل با استفاده از تولیدکننده کد LLVM
صرف‌نظر کردن از تولید کد
تولید کد شیء (object code)
تولید کد مستقل از موقعیت (Position-Independent Code) (در صورت دردسترس بودن)
تولید کد برای یک فایل اجرایی مستقل از موقعیت (در صورت دردسترس بودن)
استفاده از بایت‌کد برای ارزیابی spliceهای TH در صورت دردسترس بودن
نوشتن یک فایل واسط شامل Core ساده‌شدهٔ پودمان.
نوشتن همیشگی فایل‌های واسط
تقسیم فایل‌های شیءِ تولیدشده به فایل‌های کوچک‌تر
بررسی صحت گذر ASM
بررسی صحت گذر C-\-
فعال‌سازی بررسی صحت داخلی
تخلیه اسمبلی نهایی
تخلیه تداخل‌های ثبات از تخصیص‌دهنده ثبات.
تخلیه اسمبلی به‌همراه اطلاعات طول‌عمر ثبات‌ها (register liveness)
تخلیه اسمبلی اولیه
تخلیه نتیجه تخصیص ثبات
تخلیه مراحل ساخت/سرریز (build/spill) تخصیص‌دهنده ثبات -fregs-graph.
تخلیه آمار و ارقام تخصیص‌دهنده ثبات.
تخلیه بایت‌کد مفسر
تخلیه کد C تولیدشده توسط پس‌فرست (backend) زبان C (ثبت‌نشده / unregisterised).
تخلیه خروجی گذر تحلیل آریتی فراخوانی (call arity).
تخلیه وزن‌های مفروض CFG.
تخلیه خروجی نهایی C-\-
تخلیه نتایج گذر تحلیل CAF در C-\-.
تخلیه نتایج حذف بلوک‌های مشترک (common block elimination)
تخلیه نتایج گذر بهینه‌سازی جریان کنترل (CFG) در C-\-.
تخلیه نتایج گذر CPS
تخلیه خروجی تبدیل STG به C-\-
تخلیه نتایج گذر افزودن جدول اطلاعات (info table) در C-\-.
تخلیه نتایج گذرهای بهینه‌سازی C-\- به C-\-
تخلیه نتایج تحلیل proc-point
تخلیه نتایج گذر نگاشت proc-point در C-\-.
تخلیه C-\- خام
تخلیه نتایج گذر ته‌نشینی (sinking) در C-\-.
تخلیه نتایج گذر چیدمان پشته C-\-.
تخلیه نتایج گذر تقسیم proc-point در C-\-.
تخلیه نتایج گذرهای تنزل دادن دستورات switch
تخلیه نتایج گذر بسط ThreadSanitizer در C-\-.
نوشتن خروجی گذرهای خط‌لوله اصلی C-\- درون فایل‌ها
نمایش خروجی گذرهای خط‌لوله اصلی C-\- (گروه‌بندی‌شده بر اساس proc)
چاپ خلاصه‌ای تک‌خطی از اندازه برنامه Core در پایان خط‌لوله بهینه‌سازی
تخلیه امضاهای CPR
تخلیه خروجی تحلیل CPR
ردگیری حل‌کننده قیود (constraint solver)
تخلیه خروجی CSE
تخلیه اطلاعات اشکال‌زدایی DWARF تولیدشده
تخلیه خروجی اشتقاق (deriving)
تخلیه خروجی ساده‌ساز نحوی (desugarer).
ردگیری بررسی‌کننده جامعیت الگو (exhaustiveness checker)
تخلیه خروجی گذر خروج‌سازی (exitification).
تخلیه کامل جدول FastString پس از اتمام کار
تنظیم پیشوند نام فایل‌های مورد استفاده برای خروجی اشکال‌زدایی.
تخلیه رابط‌های واسط (stubs) دستورات foreign export
تخلیه درخت نحو فایل hie
نام مستعاری برای -ddump-ticked.
ردگیری فایل‌های رابط (interface)
تخلیه درون‌خطی‌سازی‌های (inlinings) انجام‌شده توسط ساده‌ساز.
تخلیه کد نهایی JavaScript
تخلیه پیام‌های خطا در قالب اسناد JSON
تخلیه Core به‌همراه مراکز هزینه مؤخر (late cost centres) اضافه شده
تخلیه کد میانی LLVM.
تخلیه وضعیت پایگاه‌داده نگاشت ماژول‌ها.
تخلیه خروجی تحلیل رخداد (occurrence analysis)
تخلیه نتایج گذرهای بهینه‌سازی C-\- به C-\-
تخلیه درخت تجزیه
تخلیه خروجی تجزیه‌کننده به‌شکل یک درخت نحو (AST)
تخلیه Core آماده‌شده (prepared core).TP -ddump-rn تخلیه خروجی renamer
تخلیه خروجی renamer به‌صورت درخت نحو
آمار renamer
ردیابی renamer
ردیابی استنتاج نوع زمان اجرا (runtime type inference)
تخلیه اطلاعات اجرای قوانین (rule firing)
تخلیه اطلاعات باجزئیات اجرای قوانین
تخلیه قوانین بازنویسی
تخلیه خروجی نهایی simplifier
تخلیه خروجی هر تکرار simplifier
تخلیه آمار simplifier
تخلیه پیام‌های ردیابی در simplifier
تخلیه خروجی specialiser
تخلیه عبارت‌های پیوندخورده (spliced) در TH و نتیجه ارزیابی آن‌ها
(منسوخ‌شده) نام مستعار برای -ddump-stg-from-core
نمایش خروجی پس از Stg2Stg
نمایش خروجی آخرین گذر STG.
نمایش خروجی CoreToStg
نمایش خروجی گذر استنتاج برچسب.
نمایش STG تکین‌شده (unarised)
تخلیه امضاهای تقاضا (demand signatures) در سطح بالا
تخلیه خروجی تحلیل تقاضا
تخلیه خروجی typechecker
تخلیه خروجی typechecker به‌صورت درخت نحو
ردیابی typechecker
تخلیه کد ابزارگذاری‌شده توسط HPC (مشاهده پوشش کد).
تخلیه آمار زمان‌بندی و تخصیص حافظه به ازای هر گذر
تخلیه در فایل‌ها به جای خروجی استاندارد (stdout)
تخلیه امضاهای نوع
تخلیه همه درون‌خط‌سازی‌های در نظر گرفته‌شده
تخلیه الگوهای نمای مشترک‌شده (commoned view patterns)
تخلیه خروجی worker-wrapper
نمایش آمار استفاده از رشته‌های سریع (fast string) پس از پایان
چاپ مقادیر نوع Word# در مبنای شانزده (هگزادسیمال).
شروع تخصیص UniqSupply از ⟨s⟩.
تخلیه اطلاعات درباره تصمیمات درون‌خط‌سازی
نمایش آمار مربوط به اطلاعات IPE
گنجاندن کامنت‌ها در تجزیه‌کننده (parser). مفید در ترکیب با -ddump-parsed-ast.
فعال‌سازی درستی‌آزمایی داخلی
فعال‌سازی چندین درستی‌آزمای داخلی رایج
فرونشانی خروجی اشکال‌زدایی ناخواسته
تولید نکردن مقیدسازی‌ها برای متدهای Typeable
چاپ عبارت‌های case تک‌شاخه‌ای به‌صورت letهای اکید.
تنظیم عرض خروجی اشکال‌زدایی. برای مثال -dppr-cols200
روشن کردن چاپ اشکال‌زدایی (با جزئیات بیشتر)
تنظیم عمق چاپ عبارت‌ها در پیام‌های خطا
تخلیه اطلاعات درباره اعمال احتمالی قوانین
چاپ نام هر گذر به هنگام رخ دادن آن
درستی‌آزمایی گذر STG
در خروجی‌های تخلیه، فرونشانی هر آنچه که قابل فرونشانی است (به جز شناسه‌های یکتا).
فرونشانی چاپ انواع تبدیل اجباری (coercion types) در خروجی‌های Core برای کوتاه‌تر شدن آن‌ها
فرونشانی چاپ تبدیلات اجباری (coercions) در خروجی‌های Core برای کوتاه‌تر شدن آن‌ها
فرونشانی چاپ آمار اندازه Core به ازای هر مقیدسازی (از نسخه 9.4)
فرونشانی اطلاعات گسترده درباره شناسه‌ها در جایی که مقید شده‌اند
فرونشانی چاپ پیشوندهای توصیف‌کننده ماژول
فرونشانی چاپ فهرست متغیرهای آزاد کلوژر در خروجی STG
فرونشانی حاشیه‌نویسی‌های rep روی آرگومان‌های STG.
فرونشانی "ticks" در خروجی چاپگر زیبا (pretty-printer).
فرونشانی برچسب‌های زمانی در خروجی‌های تخلیه.TP -dsuppress-type-applications جلوگیری از نمایش اعمال نوع‌ها (type applications).
جلوگیری از نمایش امضاهای نوع (type signatures).
جلوگیری از چاپ بازشدن پایدار (stable unfolding) یک متغیر در محل انتساب آن.
جلوگیری از چاپ شناسه‌های یکتا (uniques) در خروجی اشکال‌زدایی (جهت تسهیل مقایسه با diff).
جلوگیری از چاپ گونه‌های متغیر (variable kinds).
تأیید صحت نتایج استنتاج برچسب (tag inference) در زمان اجرا.
تخلیه اعلان‌های TH ارزیابی‌شده در فایل‌های *.th.hs.
تنظیم مقدار افزایش برای Unique's تولیدشده بر روی ⟨i⟩.
نمایش خروجی حاصل از هر گذر core-to-core.
نمایش خروجی حاصل از هر گذر STG-to-STG.
کامپایل به همراه بررسی‌های هم‌ترازی برای تمام ارجاع‌زدایی‌های info table.
افزودن یک شاخه پیش‌فرض error به عبارت‌های case فاقد شاخه پیش‌فرض.
تجهیز primopهای آرایه با بررسی‌های محدوده (bounds checks).
فعال‌سازی ابزار دقیق‌سازی دسترسی‌های حافظه با ThreadSanitizer.
تولید یک info table تازه به ازای هر بار استفاده از یک سازنده داده (data constructor).
گنجاندن برچسب wayهای فعال‌شده در پسوند فایل‌های خروجی (dump).
گنجاندن یک جدول جستجو در باینری تولیدشده که آدرس یک info table را به موقعیت کدی که کلوژر از آن سرچشمه گرفته است، نگاشت می‌کند.
گنجاندن info tableهای فاقد اطلاعات مکان مبدأ در نگاشت info table.
گنجاندن info tableها برای کلوژرهای STACK در نگاشت info table.
دستور دادن به LLVM برای پر کردن ثبات‌های بی‌استفاده (dead) STG با داده‌های زائد.
حذف info tableهای فاقد اطلاعات مکان مبدأ از نگاشت info table.
حذف info tableها برای کلوژرهای STACK از نگاشت info table.
هم‌تراز کردن توابع در مرز مشخص‌شده.
تولید اطلاعات اشکال‌زدایی DWARF در فایل‌های شیء کامپایل‌شده. مقدار ⟨n⟩ می‌تواند 0، 1 یا 2 باشد که اعداد بالاتر خروجی غنی‌تری تولید می‌کنند. در صورت حذف ⟨n⟩، سطح 2 فرض می‌شود.
اجرای پیش‌پردازندهٔ C روی فایل‌های منبع Haskell
تعریف یک نماد در پیش‌پردازندهٔ C
افزودن ⟨dir⟩ به فهرست دایرکتوری‌های جستجو برای فایل‌های #include
حذف تعریف یک نماد در پیش‌پردازندهٔ C

خالی کردن فهرست دایرکتوری‌های واردات
افزودن ⟨dir⟩، ⟨dir2⟩ و غیره به مسیر واردات

توقف در مواجهه با استثناها و خطاهای مهارنشده
توقف در صورت پرتاب هرگونه استثنا
تنظیم تعداد ورودی‌هایی که GHCi برای دستور :history نگه می‌دارد. بخش اشکال‌زدای GHCi را ببینید.
(فقط اشکال‌زدایی) بررسی نشت حافظه (space leak) هنگام بارگذاری ماژول‌های جدید در GHCi.
قرار دادن شناسه‌های واجد شرایط (qualified) در حوزهٔ دید برای هر ماژول بارگذاری‌شده
استفاده از دایرکتوری جاری برای فایل تاریخچهٔ دستورهای GHCi با نام .ghci-history.
متغیر ویژهٔ it دیگر تنظیم نشود.
فعال‌سازی چاپ نتایج مقیدسازی (binding) در GHCi
دستور به دستور :print برای استفاده از نمونه‌های Show تا جای ممکن.
نمایش نام ماژول‌هایی که GHCi پس از یک دستور :load بارگذاری کرده است.
خواندن فایل‌های .ghci اضافی
غیرفعال‌سازی خواندن فایل‌های .ghci
انتخاب تابع مورداستفاده برای چاپ عبارت‌های ارزیابی‌شده در GHCi

بخش حالت‌های عملکرد را ببینید.
تخلیهٔ واسط جدید به stdout
نمایش تفاوت‌ها نسبت به واسط قدیمی
تخلیهٔ حداقل مجموعه‌ای از ماژول‌های وارداتی
نگه‌داری فایل‌های میانی .hc.
نگه‌داری فایل‌های میانی .hi (پیش‌فرض).
نگه‌داری فایل‌های میانی .hscpp.
نگه‌داری فایل‌های میانی .ll مربوط به LLVM. مستلزم -fllvm است.
نگه‌داری فایل‌های میانی .o (پیش‌فرض).
نگه‌داری فایل‌های میانی .s.
نگه‌داری تمام فایل‌های موقت میانی.

اجازه‌دادن به کاربر برای نوشتن نوع‌های مبهم، و موتور استنتاج نوع برای استنتاج آن‌ها.
فعال‌سازی قندزدایی (desugaring) از نشانه‌گذاری do برای Applicative.
فعال‌سازی افزونهٔ نشانه‌گذاری پیکان (arrow notation).
فعال‌سازی الگوهای تعجب (bang patterns).
فعال‌سازی پشتیبانی از لیترال‌های دودویی.
اجازه‌دادن به بلوک‌های do و سایر ساختارها به‌عنوان آرگومان‌های تابع.
فعال‌سازی قرارداد فراخوانی CAPI.
فعال‌سازی متدهای مقید کلاس (constrained class methods).
فعال‌سازی کایدِ (kind) محدودیت‌ها.
فعال‌سازی پیش‌پردازندهٔ C.
فعال‌سازی تشخیص امضاهای کایدِ کاملِ ارائه‌شده توسط کاربر (CUSK).
فعال‌سازی ترفیع نوع‌داده (datatype promotion).
اجازه‌دادن به بافت‌ها (contexts) در انواع data.
فعال‌سازی شمول عمیق (deep subsumption).
فعال‌سازی امضاهای پیش‌فرض.
فعال‌سازی اشتقاق (deriving) برای هر کلاسی.
فعال‌سازی اشتقاق برای کلاس Data.
فعال‌سازی اشتقاق برای کلاس Foldable. به‌طور ضمنی توسط DeriveTraversable اعمال می‌شود.
فعال‌سازی اشتقاق برای کلاس Functor. به‌طور ضمنی توسط DeriveTraversable اعمال می‌شود.
فعال‌سازی اشتقاق برای کلاس Generic.
فعال‌سازی اشتقاق برای کلاس Lift.
فعال‌سازی اشتقاق برای کلاس Traversable. مستلزم DeriveFunctor و DeriveFoldable است.
فعال‌سازی راهبردهای اشتقاق (deriving strategies).
فعال‌سازی اشتقاق نمونه‌ها via انواع دارای نمایش یکسان در زمان اجرا. مستلزم DerivingStrategies است.
فعال‌سازی رفع ابهام از فیلدهای رکورد. به‌طور ضمنی توسط RecordWildCards اعمال می‌شود.
اجازه‌دادن به تعریف انواع رکورد با فیلدهای هم‌نام.
اجازه‌دادن به گزینه‌های خالی در ساختار case.
اجازه‌دادن به تعریف انواع خالی data.
اجازه‌دادن به اشتقاق نمونه‌های کلاس‌های نوع استاندارد برای انواع داده‌های خالی.
فعال‌سازی مترادف‌های نوع آزادشده (liberalised type synonyms).
فعال‌سازی سور عمومی صریح (explicit universal quantification). به‌طور ضمنی توسط ScopedTypeVariables، LiberalTypeSynonyms، RankNTypes و ExistentialQuantification اعمال می‌شود.
فعال‌سازی استفاده از کلیدواژهٔ type برای مشخص‌کردن فضای‌نامِ مدخل‌ها در واردات و صادرات (Explicit namespaces in import/export). به‌طور ضمنی توسط TypeOperators و TypeFamilies اعمال می‌شود.
استفاده از قواعد پیش‌فرض گسترش‌یافتهٔ GHCi در یک ماژول عادی.
کنترل پدیداری توابع انتخاب‌گر فیلد (field selector).
حذف برخی محدودیت‌ها از بافت‌های کلاس (class contexts).
فعال‌سازی نمونه‌های انعطاف‌پذیر (flexible instances). مستلزم TypeSynonymInstances است.
فعال‌سازی رابط توابع خارجی (FFI).
فعال‌سازی وابستگی‌های تابعی (functional dependencies). مستلزم MultiParamTypeClasses است.
فعال‌سازی انواع داده‌های جبری تعمیم‌یافته (GADTs). مستلزم GADTSyntax و MonoLocalBinds است.
فعال‌سازی نحو انواع داده‌های جبری تعمیم‌یافته.
فعال‌سازی اشتقاق newtype.
فعال‌سازی اشتقاق newtype.
استفاده از مجموعه افزونه‌های زبانی پیش‌فرض سال ۲۰۲۱ در GHC.
فعال‌سازی قرارداد فراخوانی prim. تنها برای استفادهٔ داخلی در نظر گرفته شده است.
استفاده از گونهٔ زبانی Haskell 2010.
استفاده از گونهٔ زبانی Haskell 98..TP -XHexFloatLiterals فعال‌سازی پشتیبانی از لیترال‌های ممیز شناور شانزده‌شانزدهی.
فعال‌سازی پارامترهای ضمنی (Implicit Parameters).
قابلیت ImportQualifiedPost نحو import M qualified را مجاز می‌کند.
فعال‌سازی نوع‌های غیرپیش‌گویانه (impredicative types). مستلزم RankNTypes است.
فعال‌سازی نمونه‌های ناهم‌خوان (incoherent instances). مستلزم OverlappingInstances است.
فعال‌سازی امضاهای نمونه (instance signatures).
فعال‌سازی FFI با قابلیت وقفه (interruptible FFI).
فعال‌سازی امضاهای کایند (kind signatures). به‌طور ضمنی با TypeFamilies و PolyKinds فعال می‌شود.
فعال‌سازی عبارت‌های lambda-case.
استفاده از فاصله خالی (whitespace) برای تعیین اینکه آیا علامت منفی نشان‌دهنده نفی است یا تفریق.
فعال‌سازی مترادف‌های نوع گسترش‌یافته (liberalised type synonyms).
فعال‌سازی نوع‌های خطی (linear types).
مجاز دانستن # به‌عنوان تغییردهنده پسوندی در شناسه‌ها.
فعال‌سازی بسط‌های موناد (monad comprehensions).
فعال‌سازی تعمیم ندادن انتساب‌های محلی (local bindings). به‌طور ضمنی با TypeFamilies و GADTs فعال می‌شود.
فعال‌سازی کلاس‌های نوع چندپارامتری. به‌طور ضمنی با FunctionalDependencies فعال می‌شود.
فعال‌سازی عبارت‌های شرطی (if) چندطرفه.
فعال‌سازی punهای رکورد (record puns).
فعال‌سازی کاراکترهای جانشین نام‌دار (named wildcards).
فعال‌سازی پشتیبانی از لیترال‌های منفی.
وارد نکردن ضمنی import Prelude. به‌طور ضمنی با RebindableSyntax فعال می‌شود.
غیرفعال‌سازی محدودیت تک‌ریختی (monomorphism restriction).
مجاز دانستن بافت‌های تو در تو در داشتن سطح دندانه‌گذاری یکسان با بافت دربرگیرنده خود.
غیرفعال‌سازی گاردهای الگو (pattern guards). به‌طور ضمنی با Haskell98 اعمال می‌شود.
غیرفعال‌سازی پشتیبانی از نحو سنتی رکورد (همان‌طور که در Haskell 98 پشتیبانی می‌شود) C {f = x}
فعال‌سازی پشتیبانی از الگوهای n+k. به‌طور ضمنی با Haskell98 اعمال می‌شود.
منسوخ شده، کاری انجام نمی‌دهد. کلاس‌های نوع صفرتایی (بدون پارامتر) اکنون با استفاده از MultiParamTypeClasses فعال می‌شوند.
فعال‌سازی پشتیبانی از لیترال‌های صحیح 'کسری'.
فعال‌سازی پشتیبانی از خط‌های زیر در اعداد (numeric underscores).
فعال‌سازی نمونه‌های هم‌پوشان (overlapping instances).
فعال‌سازی برچسب‌های سربارگذاری‌شده (overloaded labels).
فعال‌سازی لیست‌های سربارگذاری‌شده (overloaded lists).
نحو '.' برای رکوردها
به‌روزرسانی‌های رکورد با نحو '.'
فعال‌سازی لیترال‌های رشته‌ای سربارگذاری‌شده.
فعال‌سازی وارد کردن‌های مقید به بسته (package-qualified imports).
فعال‌سازی بسط‌های موازی لیست (parallel list comprehensions).
فعال‌سازی امضاهای نوع ناقص (partial type signatures).
فعال‌سازی مترادف‌های الگو (pattern synonyms).
فعال‌سازی چندریختی کایند (kind polymorphism). مستلزم KindSignatures است.
فعال‌سازی عملگرهای پسوندی (postfix operators).
فعال‌سازی قندزدایی (desugaring) نحو do مقید.
مجاز شمردن سورهای forall در محدودیت‌ها (constraints).
فعال‌سازی شبه‌نقل‌قول (quasiquotation).
فعال‌سازی نوع‌های مرتبه ۲ (rank-2 types). مترادف با RankNTypes.
فعال‌سازی نوع‌های مرتبه N (rank-N types). به‌طور ضمنی با ImpredicativeTypes فعال می‌شود.
به‌کارگیری نحو بازپیوندپذیر (rebindable syntax). مستلزم NoImplicitPrelude است.
فعال‌سازی کاراکترهای جانشین رکورد (record wildcards). مستلزم DisambiguateRecordFields است.
فعال‌سازی نحو do بازگشتی (mdo).
فعال‌سازی حاشیه‌نویسی‌های نقش (role annotations).
فعال‌سازی حالت Safe در Safe Haskell.
فعال‌سازی متغیرهای نوع با دامنه واژگانی (lexically-scoped type variables).
فعال‌سازی اشتقاق مستقل (standalone deriving).
مجاز دانستن استفاده از امضاهای کایند مستقل.
در نظر گرفتن * به‌عنوان Data.Kind.Type..TP -XStaticPointers فعال‌سازی اشاره‌گرهای ایستا (static pointers).
اکید (strict) کردن مقیدسازی‌ها در ماژول جاری به‌صورت پیش‌فرض.
فعال‌سازی فیلدهای اکید (strict) برای انواع داده به‌صورت پیش‌فرض.
فعال‌سازی Template Haskell.
فعال‌سازی زیرمجموعهٔ نقل‌قول (quotation) از Template Haskell.
فعال‌سازی توصیف لیست‌های تعمیم‌یافته (generalised list comprehensions).
فعال‌سازی حالت قابل اعتماد (Trustworthy) در Safe Haskell.
فعال‌سازی قطعه‌های تاپل (tuple sections).
فعال‌سازی نحو اِعمال نوع (type application) در عبارت‌ها، الگوها و نوع‌ها.
فعال‌سازی اعلان‌های دادهٔ نوع (type data declarations).
فعال‌سازی خانواده‌های نوع (type families). به‌طور ضمنی شامل ExplicitNamespaces، KindSignatures و MonoLocalBinds می‌شود.
فعال‌سازی خانواده‌های نوع یک‌به‌یک (injective type families). به‌طور ضمنی شامل TypeFamilies می‌شود.
منسوخ شده است. فعال‌سازی چندریختی گونه‌ها (kind polymorphism) و ارتقای نوع‌داده (datatype promotion).
فعال‌سازی عملگرهای نوع. به‌طور ضمنی شامل ExplicitNamespaces می‌شود.
فعال‌سازی مترادف‌های نوع در سرآیند نمونه‌ها (instance heads). به‌طور ضمنی توسط FlexibleInstances اعمال می‌شود.
فعال‌سازی مجموع‌های بدون جعبه (unboxed sums).
فعال‌سازی استفاده از نحو تاپل‌های بدون جعبه (unboxed tuples).
فعال‌سازی نمونه‌های تصمیم‌ناپذیر (undecidable instances).
مجاز شمردن تمام محدودیت‌های ابرکلاس، از جمله مواردی که ممکن است منجر به عدم خاتمهٔ بررسی‌کننده نوع (typechecker) شوند.
فعال‌سازی نحو یونیکد (unicode syntax).
فعال‌سازی انواع دادهٔ بالانبرده (unlifted data types).
فعال‌سازی انواع FFI بالانبرده (unlifted FFI types).
فعال‌سازی newtypeهای بالانبرده (unlifted newtypes).
فعال‌سازی حالت ناامن (Unsafe) در Safe Haskell.
فعال‌سازی الگوهای نما (view patterns).
توقف پس از تولید فایل شیء (.o)
استفاده از زمان‌اجرای (runtime) اشکال‌زدایی
تنظیم نام نصب (از طریق -install_name که به پیونددهندهٔ Apple فرستاده می‌شود)، با تعیین مسیر کامل نصب فایل کتابخانه. هر کتابخانه یا فایل اجرایی که بعداً با آن پیوند شود، آن مسیر را به عنوان محل جستجوی زمان‌اجرا برای آن انتخاب خواهد کرد. (تنها در Darwin/OS X)
ساخت فایل‌های شیء و فایل‌های اجرایی با پیوند پویا
یکی از حالت‌های موجود برای یافتن کتابخانه‌های مشترک در زمان‌اجرا را انتخاب می‌کند.
فعال‌سازی ردگیری رویدادهای زمان‌اجرا
دستور به پیونددهنده برای تولید یک بخش __compact_unwind.
عدم بازیافت حافظه (garbage collection) برای CAFها (عبارت‌های سطح بالا) در زمان‌اجرا
پیوند زمان‌اجرا هنگام تولید یک کتابخانهٔ مشترک یا ایستا
جاسازی نکردن مانیفست در فایل اجرایی (تنها در Windows)
تولید نکردن فایل مانیفست (تنها در Windows)
تولید نکردن یک کتابخانهٔ واردات (import library) برای یک DLL (تنها در Windows)
تنها در Darwin/OS X/iOS، پیوند دادن چارچوب ⟨name⟩. این گزینه متناظر با گزینهٔ -framework در پیونددهندهٔ Apple است.
تنها در Darwin/OS X/iOS، افزودن ⟨dir⟩ به فهرست دایرکتوری‌های مورد جستجو برای چارچوب‌ها. این گزینه متناظر با گزینهٔ -F در پیونددهندهٔ Apple است.
تقسیم بخش‌ها برای حذف کدهای مرده در زمان پیوند
تنظیم rpath بر اساس پرچم‌های -L
هنگام پیوند دادن یک فایل اجرایی باینری، این گزینه پرچم -Wl,--whole-archive را پیش از هر پرچم -l برای کتابخانه‌های Haskell، و -Wl,--no-whole-archive را پس از آن‌ها درج می‌کند
افزودن ⟨dir⟩ به فهرست دایرکتوری‌های مورد جستجو برای کتابخانه‌ها
پیوند دادن کتابخانهٔ ⟨lib⟩
تنظیم ماژول و تابع اصلی (main)
فرض نکردن این‌که این برنامه حاوی main است
دستور ندادن به پیونددهنده برای تولید یک فایل اجرایی مستقل از موقعیت.
چاپ نکردن پیشنهادهای RTS در مورد پیوند با -rtsopts[=⟨none|some|all|ignore|ignoreAll⟩].
در دسترس قرار دادن بستهٔ ⟨pkg⟩
دستور به پیونددهنده برای تولید یک فایل اجرایی مستقل از موقعیت.
این به پیونددهنده دستور می‌دهد که همهٔ نمادها، و نه فقط نمادهای استفاده‌شده را به جدول نمادهای پویا اضافه کند. در حال حاضر تنها در Linux و Windows/MinGW32 پشتیبانی می‌شود. این معادل استفاده از -optl -rdynamic در Linux، و -optl -export-all-symbols در Windows است.
کنترل این‌که آیا رفتار RTS می‌تواند از طریق پرچم‌های خط فرمان و متغیر محیطی GHCRTS تنظیم شود یا خیر. استفاده از none به این معنی است که هیچ پرچم RTSای نمی‌تواند داده شود؛ some بدین معناست که تنها حداقل گزینه‌های ایمن قابل استفاده هستند (پیش‌فرض)؛ all (یا بدون هیچ آرگومانی) به این معناست که تمامی پرچم‌های RTS مجاز هستند؛ ignore یعنی پرچم‌های RTS می‌توانند داده شوند، اما مانند آرگومان‌های معمولی تلقی شده و به عنوان آرگومان به برنامهٔ Haskell فرستاده می‌شوند؛ ignoreAll مشابه ignore است، اما GHCRTS نیز نادیده گرفته می‌شود. -rtsopts بر رفتار -with-rtsopts تأثیری ندارد؛ پرچم‌های فرستاده‌شده از طریق -with-rtsopts صرف‌نظر از -rtsopts اعمال می‌شوند.
تولید یک کتابخانهٔ مشترک (در برابر فایل اجرایی)
استفاده از کتابخانه‌های ایستای Haskell
تولید یک کتابخانهٔ ایستای مستقل (در برابر فایل اجرایی). این گزینه هنگام کامپایل متقاطع مفید است. کتابخانه همراه با تمام وابستگی‌هایش در قالب یک کتابخانهٔ ایستای واحد قرار می‌گیرد که می‌توان با آن پیوند ایجاد کرد.
استفاده از زمان‌اجرای چندنخی (threaded runtime)
تنظیم گزینه‌های پیش‌فرض RTS روی ⟨opts⟩.
تخلیه چرخه‌های وابستگی ماژول
اجرای کد تفسیرشده در یک فرایند جداگانه
استفاده از حافظه موقت (کَش) هنگام تقلیل اعمال خانواده نوع (type family)
منسوخ شده است. بیشتر افزونه‌های زبان را فعال می‌کند؛ برای اطلاع دقیق از اینکه کدام افزونه‌ها فعال می‌شوند، به Controlling extensions مراجعه کنید.
غیرفعال‌سازی Safe Haskell
(تنها در حالت استفاده از GHC به عنوان کامپایلر C) استفاده از این فایل ghcversion.h
تنظیم حداقل اندازه هیپ (heap) روی ⟨size⟩
ماژولی که نباید بیرون از واحد (unit) خود قابل مشاهده باشد.
هنگام کامپایل با --make، تعداد ⟨n⟩ ماژول را به‌صورت موازی کامپایل می‌کند.
ماژولی که باید مجدداً از این واحد بازصادر (re-export) شود.
نام بسته‌ای که این ماژول پس از نصب بخشی از آن خواهد بود.
مشخص کردن گزینه‌ها برای ساخت یک واحد خاص.
مشخص کردن دایرکتوری‌ای که انتظار می‌رود یک واحد در آن کامپایل شود.

اجرای GHC با پلاگین فرانت‌اند داده‌شده؛ برای جزئیات به Frontend plugins مراجعه کنید.
نمایش راهنما
نمایش اطلاعات درباره کامپایلر
حالت تعاملی - معمولاً فقط با اجرای ghci استفاده می‌شود؛ برای جزئیات به Using GHCi مراجعه کنید.
ساخت یک برنامه هسکل چندماژوله، با تشخیص خودکار وابستگی‌ها. به احتمال زیاد بسیار آسان‌تر و سریع‌تر از استفاده از make خواهد بود؛ برای جزئیات به Using ghc --make مراجعه کنید.
نمایش نسخه GHC (فقط عددی)
نمایش نسخه کامپایلر راه‌انداز (bootstrap)
نمایش پلتفرمی که GHC روی آن ساخته شده است
پرچم‌های کامپایلر C مورد استفاده برای ساخت GHC
پرچم‌های پیونددهنده C مورد استفاده برای ساخت GHC
چاپ اینکه آیا GHC با -DDEBUG ساخته شده است یا خیر
نمایش دایرکتوری پایگاه داده سراسری بسته‌های GHC
نمایش اینکه آیا GHC با پشتیبانی تعاملی ساخته شده است یا خیر
نمایش اینکه آیا پلتفرم هدف از NCG (تولیدکننده کد بومی) پشتیبانی می‌کند یا خیر
نمایش پلتفرم میزبان GHC
نمایش پرچم‌های پیونددهنده مورد استفاده برای کامپایل GHC
نمایش استفاده از خط زیرین آغازین (leading underscore) در نام نمادها
نمایش دایرکتوری کتابخانه GHC
نمایش اینکه آیا GHC از تفکیک شیء (object splitting) پشتیبانی می‌کند یا خیر
نمایش شناسه کامیت Git که GHC از آن ساخته شده است
نمایش نسخه GHC
نمایش شیوه‌ای که RTS بر اساس آن ساخته شده است
نمایش شماره مرحله (stage) کامپایلر GHC
نمایش اینکه آیا GHC با پشتیبانی از SMP کامپایل شده است یا خیر
نمایش اینکه آیا GHC با --enable-tables-next-to-code کامپایل شده است یا خیر
نمایش پلتفرم هدف GHC
نمایش اینکه آیا این GHC در حالت unregisterised ساخته شده است یا خیر
اجرای یک برنامه هسکل.
نمایش محتویات یک فایل رابط (interface).
نمایش گزینه‌های خط فرمان پشتیبانی‌شده
نمایش افزونه‌های زبان پشتیبانی‌شده
نمایش نسخه GHC
ارزیابی عبارت expr؛ برای جزئیات به Expression evaluation mode مراجعه کنید.
تولید اطلاعات وابستگی مناسب برای استفاده در یک Makefile؛ برای جزئیات به Dependency generation مراجعه کنید.
ایجاد یک شیء اشتراکی (shared object).
فعال‌سازی میان‌بُرزنی (shortcutting) در کد اسمبلی.
پیش‌فرض: 500K. تنظیم تولیدکنندهٔ کد اسمبلی برای حباب‌های باینری (binary blobs).
استفاده از الگوریتم جدید چیدمان بلوک‌ها مبتنی بر cfg.
نادیده گرفتن وزن‌های cfg برای چیدمان کد.
تنظیم وزن یال‌های مورد استفاده توسط الگوریتم جدید چیدمان کد.
فعال‌سازی بهینه‌سازی call-arity. به‌طور ضمنی با -O اعمال می‌شود.
فعال‌سازی ادغام مقادیر ثابت (constant folding) در عبارت‌های case. به‌طور ضمنی با -O اعمال می‌شود.
فعال‌سازی ادغام caseها (case-merging). به‌طور ضمنی با -O اعمال می‌شود.
فعال‌سازی بهینه‌سازی جریان کنترل در بخش پشتی Cmm. به‌طور ضمنی با -O اعمال می‌شود.
فعال‌سازی حذف بلوک‌های مشترک در Cmm. به‌طور ضمنی با -O اعمال می‌شود.
فعال‌سازی فرونشست (sinking) در Cmm. به‌طور ضمنی با -O اعمال می‌شود.
فعال‌سازی پیش‌بینی ایستا برای جریان کنترل. به‌طور ضمنی با -O اعمال می‌شود.
فعال‌سازی ادغام مقادیر ثابت در Core. به‌طور ضمنی با -O اعمال می‌شود.
فعال‌سازی تحلیل CPR یا Constructed Product Result. به‌طور ضمنی با -O اعمال می‌شود.
فعال‌سازی تخصیص (specialisation) توابع با چند ریختی (overloaded) وارد شده از سایر ماژول‌ها.
فعال‌سازی حذف زیرعبارت‌های مشترک (CSE). به‌طور ضمنی با -O اعمال می‌شود.
کم‌هزینه جلوه دادن عبارت‌های با مقدار دیکشنری برای بهینه‌ساز.
اکید (strict) کردن دیکشنری‌ها. به‌طور ضمنی با -O2 اعمال می‌شود.
(منسوخ‌شده) استفاده از تبدیل‌کنندهٔ تقاضای (demand transformer) ویژه برای انتخاب‌گرهای دیکشنری.
پیش‌فرض: 3. تحلیل جعبه‌بندی (boxity analysis) فرض می‌کند رکوردهای بازگشتی با این تعداد فیلد می‌توانند آنباکس (unbox) شوند.
فعال‌سازی تقلیل اتا (eta-reduction). به‌طور ضمنی با -O اعمال می‌شود.
فعال‌سازی بسط اتای لامبدا (lambda eta-expansion). به‌طور پیش‌فرض همیشه فعال است.
روشن کردن سیاه‌چاله‌سازی مشتاقانه (eager blackholing).
فعال‌سازی تمام قواعد بازنویسی (شامل قواعد ایجاد شده توسط تخصیص خودکار توابع overloaded). به‌طور ضمنی با -O اعمال می‌شود.
فعال‌سازی دقت مضاعف واسط (excess intermediate precision).
فعال‌سازی بهینه‌سازی خروج (exitification). به‌طور ضمنی با -O اعمال می‌شود.
افشای همهٔ بازشدگی‌ها (unfoldings)، حتی برای توابع بسیار بزرگ یا بازگشتی.
روشن کردن تبدیل float-in. به‌طور ضمنی با -O اعمال می‌شود.
روشن کردن تنبلی کامل (انتقال انتساب‌ها به بیرون). به‌طور ضمنی با -O اعمال می‌شود.
(منسوخ‌شده) با -ffull-laziness جایگزین شده است.
نادیده گرفتن assertionها در مبدأ. به‌طور ضمنی با -O اعمال می‌شود.
نادیده گرفتن پراگماها در فایل‌های رابط (interface). فقط به‌طور ضمنی با -O0 اعمال می‌شود.
حاشیه‌نویسی متدهای نمونه‌های مشتق‌شده از Generic و Generic1 با پراگماهای INLINE[1] بر اساس تحلیل‌های اکتشافی (heuristics). به‌طور ضمنی با -O اعمال می‌شود.
حاشیه‌نویسی متدهای تمام نمونه‌های مشتق‌شده از Generic و Generic1 با پراگماهای INLINE[1].
اجرای مجدد تحلیل تقاضا در انتهای خط‌لولهٔ ساده‌سازی.
اجرای یک گذر تخصیص دیرهنگام (late specialisation pass).
روشن کردن تبدیل liberate-case. به‌طور ضمنی با -O2 اعمال می‌شود.
پیش‌فرض: 2000. تنظیم آستانهٔ اندازه برای تبدیل liberate-case به ⟨n⟩.
(منسوخ‌شده) هیچ کاری انجام نمی‌دهد.
فعال‌سازی شناورسازی محلی تعاریف به خارج از let-bindها.
فعال‌سازی شناورسازی محلی برای انتقال انتساب‌های سطح‌بالا.
تبدیل فراخوانی‌های دمی خودبازگشتی اشباع‌شده به پرش‌های محلی در اسمبلی تولید شده. به‌طور ضمنی با -O اعمال می‌شود.
پیش‌فرض: 128. تنظیم حداکثر اندازهٔ تخصیص‌های آرایه به صورت درون‌خطی به ⟨n⟩ بایت (پیش‌فرض: 128).
پیش‌فرض: 32. درون‌خطی کردن فراخوانی‌های memcpy اگر بیشتر از ⟨n⟩ شبه‌دستورالعمل تولید نکنند.
پیش‌فرض: 32. درون‌خطی کردن فراخوانی‌های memset اگر بیشتر از ⟨n⟩ شبه‌دستورالعمل تولید نکنند.
پیش‌فرض: 4. تنظیم حداکثر تکرارهای ساده‌ساز.
پیش‌فرض: 4. تنظیم حداکثر تعداد الگوها برای نمایش در هشدارهای مربوط به الگوهای غیرجامع.
پیش‌فرض: 10. حداکثر تعداد آرگومان‌های مقداری برای یک worker.
غیرفعال‌سازی بهینه‌ساز تحمیل نوع (coercion optimiser).
غیرفعال‌سازی درون‌خطی‌سازی اولیه (pre-inlining).
غیرفعال‌سازی ترفند وضعیت (state hack) که به موجب آن هر لامبدا با یک نشانهٔ وضعیت دنیای واقعی به عنوان آرگومان، تک‌ورودی در نظر گرفته می‌شود؛ در نتیجه درون‌خطی کردن موارد درون آن بلامانع خواهد بود.
عدم تولید پراگماهای رابط. فقط به‌طور ضمنی با -O0 اعمال می‌شود.
صرف‌نظر از بررسی‌های هیپ (heap checks) زمانی که هیچ تخصیص حافظه‌ای انجام نمی‌شود.
استفاده از الگوریتمی کندتر اما بهتر برای ApplicativeDo..TP -fpedantic-bottoms وادار کردن GHC به دقت بیشتر در برخورد با مقادیر bottom (البته -fno-state-hack را نیز ببینید). به‌ویژه، GHC بسط eta را از میان عبارت case انجام نخواهد داد.
اجازه به تخصیص‌سازی (specialisation) برای انتزاع بر روی متغیرهای نوع آزاد.
استفاده از تخصیص‌دهنده ثبات مبتنی بر رنگ‌آمیزی گراف برای تخصیص ثبات در تولیدکننده کد بومی (native code generator).
استفاده از تخصیص‌دهنده ثبات رنگ‌آمیزی گراف با ادغام تکرارشونده (iterative coalescing) در تولیدکننده کد بومی.
پیش‌فرض: 100. تنظیم ضریب درصدی تیک‌های ساده‌ساز (simplifier ticks).
پیش‌فرض: 2. تنظیم تعداد فازهای ساده‌ساز. با -O0 نادیده گرفته می‌شود.
هنگام حل محدودیت‌ها، تلاش برای حل زودهنگام کلاس‌های والد (super classes) با استفاده از دیکشنری‌های موجود.
فعال‌سازی تبدیل SpecConstr. به‌طور ضمنی با -O2 فعال می‌شود.
پیش‌فرض: 3.* تنظیم حداکثر تعداد تخصیص‌هایی که برای هر تابع مشخص توسط تبدیل SpecConstr ایجاد خواهد شد به ⟨n⟩.
تخصیص‌سازی یک فراخوانی با یک آرگومان سازنده (constructor) صریح، حتی اگر آرگومان در بدنه تابع بررسی (scrutinise) نشده باشد.
پیش‌فرض: 2000. تنظیم آستانه اندازه برای تبدیل SpecConstr به ⟨n⟩.
فعال‌سازی تخصیص‌سازی توابع سربارگذاری‌شده (overloaded). به‌طور ضمنی با -O فعال می‌شود.
فعال‌سازی تخصیص‌سازی توابع سربارگذاری‌شده بدون در نظر گرفتن اندازه، در صورتی که unfolding در دسترس باشد.
فعال‌سازی تبدیل آرگومان ایستا (static argument transformation).
فعال‌سازی حذف زیرعبارت‌های مشترک (CSE) روی زبان واسط STG.
فعال‌سازی بالابری دیرهنگام لامبدا (late lambda lifting) روی زبان واسط STG. به‌طور ضمنی با -O2 فعال می‌شود.
اجازه به تبدیل فراخوانی‌های شناخته‌شده به ناشناخته در حین انجام بالابری دیرهنگام لامبدا.
ایجاد توابع غیربازگشتی سطح بالا با حداکثر <n> پارامتر در حین انجام بالابری دیرهنگام لامبدا.
ایجاد توابع بازگشتی سطح بالا با حداکثر <n> پارامتر در حین انجام بالابری دیرهنگام لامبدا.
فعال‌سازی تحلیل تقاضا (demand analysis). به‌طور ضمنی با -O فعال می‌شود. گزینه -fworker-wrapper را نیز اعمال می‌کند.
اجرای یک تحلیل تقاضای اضافی پیش از فاز ساده‌ساز ⟨n⟩.
هموارسازی (flatten) فیلدهای اکید سازنده با بازنمایی به‌اندازه اشاره‌گر. به‌طور ضمنی با -O فعال می‌شود.
هموارسازی فیلدهای اکید سازنده.
پیش‌فرض: 30. اعمال جریمه به میزان (inlining_cost * 1/n) برای هر سطح از تو در تویی عبارات case.
پیش‌فرض: 2. کاهش درون‌ریزی (inlining) برای عبارات case که عمق تو در تویی آن‌ها بیشتر از n باشد.
پیش‌فرض: 750. تنظیم دقیق پارامترهای unfolding.
پیش‌فرض: 30. تنظیم دقیق پارامترهای unfolding.
پیش‌فرض: 60. تنظیم دقیق پارامترهای unfolding.
این گزینه از نگارش 9.0.1 در GHC منسوخ شده است.
پیش‌فرض: 80. تنظیم دقیق پارامترهای unfolding.
فعال‌سازی تبدیل worker/wrapper.
فعال‌سازی تفکیک‌های w/w برای لفاف‌هایی (wrappers) که تنها هدف آن‌ها ارزیابی آرگومان‌ها است.
فعال‌سازی بهینه‌سازی‌های سطح ۱
غیرفعال‌سازی بهینه‌سازی‌ها (پیش‌فرض)
فعال‌سازی بهینه‌سازی‌های سطح ۲
هر -On که در آن n > 2 باشد، مشابه -O2 عمل می‌کند.

پاک‌سازی پشته پایگاه‌داده بسته (package db).
در دسترس قرار دادن بسته ⟨pkg⟩ و تنظیم آن به عنوان غیرقابل‌اعتماد. بخش Safe Haskell را ببینید.
غیرقابل‌اعتماد دانستن تمام بسته‌ها به‌طور پیش‌فرض. بخش Safe Haskell را ببینید.
فعال‌سازی الزام بسته معتمد Safe Haskell برای ماژول‌های قابل‌اعتماد.
افزودن پایگاه‌داده سراسری بسته به پشته.
پنهان‌سازی تمام بسته‌ها به‌طور پیش‌فرض
پنهان‌سازی بسته ⟨pkg⟩
نادیده گرفتن بسته ⟨pkg⟩
بسته‌های base و rts به‌طور خودکار پیوند داده نشوند.
حذف پایگاه‌داده سراسری بسته از پشته.
حذف پایگاه‌داده بسته کاربر از پشته.
در دسترس قرار دادن بسته ⟨pkg⟩
افزودن ⟨file⟩ به پشته پایگاه‌داده بسته.
استفاده از محیط بسته مشخص‌شده.
در دسترس قرار دادن بسته بر اساس شناسه ⟨unit-id⟩
کامپایل به عنوان بخشی از واحد (یعنی بسته) ⟨unit-id⟩
در دسترس قرار دادن بسته ⟨pkg⟩ و تنظیم آن به عنوان قابل‌اعتماد. بخش Safe Haskell را ببینید.
افزودن پایگاه‌داده بسته کاربر به پشته.

ادغام مجموعه‌ای از شیءها در یک کتابخانه GHCi.
توقف پس از تولید C (فایل .hc)
توقف پس از تولید فایل شیء (.o)
توقف پس از پیش‌پردازش (فایل .hspp)
فعال‌سازی استفاده از یک پیش‌پردازنده (تنظیم‌شده با -pgmF ⟨cmd⟩)
توقف پس از تولید اسمبلی (فایل .s)
بازنویسی رفتار پیش‌فرض برای فایل‌های منبع
استفاده از ⟨cmd⟩ به‌عنوان اسمبلر
استفاده از ⟨cmd⟩ به‌عنوان کامپایلر C
استفاده از ⟨cmd⟩ به‌عنوان کامپایلر C++
استفاده از ⟨cmd⟩ به‌عنوان تولیدکننده DLL
استفاده از ⟨cmd⟩ به‌عنوان پیش‌پردازنده (فقط با -F)
استفاده از ⟨cmd⟩ به‌عنوان دستور مفسر خارجی.
استفاده از ⟨cmd⟩ به‌عنوان برنامه برای تزریق runpath به dylibهای mach-o در macOS
استفاده از ⟨cmd⟩ به‌عنوان پیش‌پردازنده literate
استفاده از ⟨cmd⟩ به‌عنوان پیونددهنده
استفاده از ⟨cmd⟩ به‌عنوان کامپایلر LLVM
استفاده از ⟨cmd⟩ به‌عنوان پیونددهنده هنگام ادغام فایل‌های شیء
استفاده از ⟨cmd⟩ به‌عنوان بهینه‌ساز LLVM
استفاده از ⟨cmd⟩ به‌عنوان برنامه برای بررسی dylibهای mach-o در macOS
استفاده از ⟨cmd⟩ به‌عنوان پیش‌پردازنده C (فقط با -cpp)
استفاده از ⟨cmd⟩ به‌عنوان جداکننده
استفاده از ⟨cmd⟩ به‌عنوان برنامه برای جاسازی مانیفست‌ها در Windows.

ارسال ⟨option⟩ به اسمبلر
ارسال ⟨option⟩ به کامپایلر C
ارسال ⟨option⟩ به کامپایلر C++
ارسال ⟨option⟩ به تولیدکننده DLL
ارسال ⟨option⟩ به پیش‌پردازنده سفارشی
ارسال ⟨option⟩ به زیرفرآیند مفسر.
ارسال ⟨option⟩ به پیش‌پردازنده literate
ارسال ⟨option⟩ به پیونددهنده
ارسال ⟨option⟩ به کامپایلر LLVM
ارسال ⟨option⟩ به پیونددهنده هنگام ادغام فایل‌های شیء.
ارسال ⟨option⟩ به بهینه‌ساز LLVM
ارسال ⟨option⟩ به cpp (فقط با -cpp)
ارسال ⟨option⟩ به windres.
(منسوخ‌شده) مشخص می‌کند که پیونددهنده از -no-pie پشتیبانی می‌کند
مشخص می‌کند که پیونددهنده از -no-pie پشتیبانی می‌کند
(فقط x86) فعال‌سازی پشتیبانی از افزونه‌های SIMD در AVX
(فقط x86) فعال‌سازی پشتیبانی از افزونه‌های SIMD در AVX2
(فقط x86) فعال‌سازی پشتیبانی از افزونه‌های SIMD در AVX512-CD
(فقط x86) فعال‌سازی پشتیبانی از افزونه‌های SIMD در AVX512-ER
(فقط x86) فعال‌سازی پشتیبانی از افزونه‌های SIMD در AVX512-F
(فقط x86) فعال‌سازی پشتیبانی از افزونه‌های SIMD در AVX512-PF
(فقط x86) استفاده از BMI1 برای عملیات‌های دستکاری بیت
(فقط x86) استفاده از BMI2 برای عملیات‌های دستکاری بیت
(فقط x86) استفاده از SSE برای عملیات ممیز شناور
(فقط x86) استفاده از SSE2 برای عملیات ممیز شناور
(فقط x86) استفاده از SSE3 برای عملیات ممیز شناور
(فقط x86) استفاده از SSE4 برای عملیات ممیز شناور
(فقط x86) استفاده از SSE4.2 برای عملیات ممیز شناور

پاک کردن فهرست افزونه‌های فعال
بارگذاری یک افزونهٔ ایستا و از پیش کامپایل‌شده از یک کتابخانهٔ خارجی
دادن آرگومان به یک ماژول افزونه؛ ماژول باید با -fplugin=⟨module⟩ مشخص شده باشد
اعتماد به افزونه‌های استفاده‌شده و عدم علامت‌گذاری ماژول کامپایل‌شده به عنوان ناامن (unsafe)
بارگذاری افزونهٔ صادرشده (exported) توسط ماژول داده‌شده
پنهان‌سازی پیش‌فرض تمام بسته‌ها برای افزونه‌ها
در دسترس قرار دادن ⟨pkg⟩ برای افزونه‌ها
در دسترس قرار دادن ⟨pkg-id⟩ برای افزونه‌ها

(منسوخ‌شده) نام مستعار برای -fprof-auto-exported
(منسوخ‌شده) نام مستعار برای -fprof-auto
(منسوخ‌شده) نام مستعار برای -fprof-cafs
عدم جمع‌آوری تعداد دفعات ورود (entry counts)
افزودن خودکار SCCها به تمام مقیدسازی‌هایی (bindings) که با INLINE نشانه‌گذاری نشده‌اند
افزودن خودکار SCCها به تمام نقاط فراخوانی (call sites)
افزودن خودکار SCCها به تمام مقیدسازی‌های صادرشده‌ای که با INLINE نشانه‌گذاری نشده‌اند
افزودن خودکار SCCها به تمام مقیدسازی‌های سطح بالا (top-level) که با INLINE نشانه‌گذاری نشده‌اند
افزودن خودکار SCCها به تمام CAFها
افزودن خودکار SCCها به تمام نقاط فراخوانی تابع نام‌برده.
افزودن خودکار SCCها به تمام مقیدسازی‌های سطح بالا پس از اجرای خط لولهٔ هسته (core pipeline).
افزودن خودکار SCCها به تمام مقیدسازی‌های سطح بالا پس از اجرای بهینه‌ساز و نگه‌داشتن آن‌ها هنگام درون‌خطی‌سازی (inlining).
پردازش نشانه‌گذاری‌های دستی SCC.
(منسوخ‌شده) نام مستعار برای -fno-prof-auto
(منسوخ‌شده) نام مستعار برای -fno-prof-auto
(منسوخ‌شده) نام مستعار برای -fno-prof-cafs
فعال‌سازی پروفایل‌سازی (profiling)
فعال‌سازی پروفایل‌سازی ticky-ticky
ردیابی تعداد دفعاتی که هر نوع بستار (closure) تخصیص می‌یابد.
عدم استفاده از thunkهای استاندارد AP جهت دستیابی به شمارنده‌های ورودی قابل‌اعتمادتر.
ردیابی تخصیص‌های thunkهای پویا
رفتار با مقیدکننده‌های join point مشابه thunkها/توابع.
ایجاد شمارنده‌های ساختگی ticky برای ثبت تعداد بررسی‌های برچسبی که با استنتاج برچسب (tag inference) از آن‌ها اجتناب شده است.
فعال‌سازی ابزارگذاری سنجش پوشش برنامه هسکل.
تنظیم دایرکتوری‌ای که GHC فایل‌های .mix را در آن قرار می‌دهد.

در نظر گرفتن ⟨file⟩ به عنوان "پایدار"؛ یعنی مستثنی کردن آن از داشتن وابستگی به آن.
غیرفعال کردن بررسی کامپایل مجدد. این حالت هنگام کامپایل یک تک‌فایل (یعنی هنگام استفاده از -c) به طور ضمنی توسط هر یک از گزینه‌های -ddump-X اعمال می‌شود.
ماژول‌ها را تنها برای همگام‌سازی با تغییرات پرچم‌های HPC مجدداً کامپایل نمی‌کند. این گزینه به‌ویژه برای جلوگیری از کامپایل مجدد هنگام استفاده از GHCi بسیار مفید است و به طور پیش‌فرض برای GHCi فعال می‌باشد.
ماژول‌ها را تنها برای همگام‌سازی با تغییرات پرچم‌های بهینه‌سازی مجدداً کامپایل نمی‌کند. این گزینه به‌ویژه برای جلوگیری از کامپایل مجدد هنگام استفاده از GHCi بسیار مفید است و به طور پیش‌فرض برای GHCi فعال می‌باشد.
شامل کردن وابستگی‌های پیش‌پردازنده.
در نظر گرفتن ماژول‌های واردشده از بسته‌ها به عنوان ناپایدار.

استفاده از ⟨file⟩ به عنوان makefile.
ایجاد وابستگی‌هایی که اعلان می‌کنند فایل‌های با پسوند .⟨suf⟩⟨osuf⟩ به فایل‌های رابط با پسوند .⟨suf⟩hi وابسته هستند.
تغییر مسیر فایل‌های dump.
تنظیم پسوند مورد استفاده برای فایل‌های رابط پویا.
تنظیم نام فایل خروجی پویا.
تنظیم نام فایلی که رابط پویا در آن ذخیره می‌شود.
تنظیم پسوند فایل خروجی پویا.
تنظیم پسوند مورد استفاده برای فایل‌های میانی C.
تنظیم دایرکتوری فایل‌های رابط.
تنظیم دایرکتوری فایل‌های رابط گسترش‌یافته.
تنظیم پسوند مورد استفاده برای فایل‌های رابط گسترش‌یافته.
تنظیم پسوند مورد استفاده برای فایل‌های رابط.
تنظیم نام فایل خروجی.
تنظیم دایرکتوری فایل‌های شیء (object).
تنظیم نام فایلی که رابط در آن ذخیره می‌شود.
تنظیم پسوند فایل خروجی.
تنظیم دایرکتوری خروجی.
تغییر مسیر فایل‌های stub مربوط به FFI.
تنظیم دایرکتوری برای فایل‌های موقت

پیش‌فرض: off. گزارش شدن یا نشدن پالایش‌هایی که در آن‌ها یک یا چند حفره انتزاعی هستند را تغییر می‌دهد.
به تعویق انداختن و گروه‌بندی پیام‌های عیب‌یابی بر اساس شدت
استفاده از رنگ‌ها در پیام‌های خطا
نمایش یا عدم نمایش تکه‌کدهایی از کد منبع اصلی
نمایش محدوده کامل در پیام‌های خطا
پنهان کردن مسیرهای منبع و شیء ماژول
ادامه دادن کامپایل تا جای ممکن در هنگام مواجهه با خطاها
پیش‌فرض: 6. تنظیم حداکثر تعداد برازش‌های حفره پالایش برای حفره‌های نوع‌دار جهت نمایش در پیام‌های خطای نوع.
پیش‌فرض: 6. تنظیم حداکثر تعداد انتساب‌ها جهت نمایش در پیام‌های خطای نوع.
پیش‌فرض: 6. تنظیم حداکثر تعداد برازش‌های معتبر برای حفره‌های نوع‌دار جهت نمایش در پیام‌های خطای نوع.
غیرفعال کردن نمایش فهرستی از برازش‌های معتبر حفره برای حفره‌های نوع‌دار در پیام‌های خطای نوع.
غیرفعال کردن مرتب‌سازی فهرست برازش‌های معتبر حفره برای حفره‌های نوع‌دار در پیام‌های خطای نوع.
نمایش ناسازگاری‌های معادله در خانواده‌های نوع بسته
تمایز قائل شدن بین روابط برابری هنگام چاپ
در خطاهای نوع، چاپ نوع‌های گسترش‌یافته با مترادف نوع نیز انجام شود.
چاپ تبدیل‌های اجباری (coercions) در نوع‌ها
چاپ سورگذاری صریح forall در نوع‌ها. همچنین ببینید: ExplicitForAll
چاپ صریح سورهای kind و آرگومان‌های kind در نوع‌ها. همچنین ببینید: KindSignatures
چاپ متغیرهای RuntimeRep و Levity در نوع‌هایی که چندریختی بازنمایی زمان اجرا دارند.
نمایش تمام نمونه‌های موجود در پیام‌های خطای نوع
چاپ علامت‌های نقل‌قول ترفیع اضافی DataKinds
چاپ اطلاعات بیشتر از بررسی‌کننده نوع.
استفاده از نحو یونیکد هنگام چاپ عبارت‌ها، نوع‌ها و kindها. همچنین ببینید: UnicodeSyntax
پیش‌فرض: off. تنظیم سطح پالایش برای برازش‌های حفره پالایش، که در آن سطح n به این معناست که برازش‌های حفره تا حداکثر n حفره در نظر گرفته خواهند شد.
نمایش خطاها به ترتیب معکوس
تغییر وضعیت نمایش مستندات برازش‌های معتبر حفره در خروجی.
نمایش یا عدم نمایش اطلاعات متنی درباره زمینه خطا
نمایش محدودیت‌ها هنگام گزارش حفره‌های نوع‌دار.
تغییر وضعیت نمایش نوع حفره‌های اضافی در برازش‌های حفره پالایش.
تغییر وضعیت نمایش منشأ برازش‌های معتبر حفره در خروجی.
تغییر وضعیت نمایش اِعمال نوع (type application) برازش‌های معتبر حفره در خروجی.
تغییر وضعیت نمایش نوعی که هر متغیر سورگذاری‌شده در یک برازش معتبر حفره می‌گیرد.
تغییر وضعیت نمایش نوعِ برازش‌های معتبر حفره در خروجی.
مرتب‌سازی برازش‌های معتبر حفره بر اساس اندازه.
مرتب‌سازی برازش‌های معتبر حفره بر اساس شمول (subsumption).
خلوت‌سازی فهرست برازش‌های معتبر حفره با عدم نمایش منشأ یا اِعمال نوعِ پیشنهادها.
خلاصه‌سازی آمار زمان‌بندی برای GHC (مشابه +RTS -tstderr).
حالت پرگو (معادل -v3)
تنظیم سطح پرگویی
تبدیل خطاهای متغیرهای خارج از دامنه به هشدار. توسط -fdefer-type-errors اعمال می‌شود. همچنین -Wdeferred-out-of-scope-variables را ببینید.
تبدیل خطاهای نوع داده به هشدار، با به تعویق انداختن خطا تا زمان اجرا. گزینه‌های -fdefer-typed-holes و -fdefer-out-of-scope-variables را به همراه دارد. همچنین -Wdeferred-type-errors را ببینید
تبدیل خطاهای typed hole به هشدار، با به تعویق انداختن خطا تا زمان اجرا. توسط -fdefer-type-errors اعمال می‌شود. همچنین -Wtyped-holes را ببینید.
ایجاد هشدار برای الحاق‌های (splices) در Template Haskell
ارائه پیشنهادها برای نام‌هایی با املای نادرست.
محدودیت نرم روی تعداد مدل‌های موازی که بررسی‌کننده تطبیق الگو باید یک بند تطبیق الگو را در برابر آن‌ها ارزیابی کند
نمایش گروهی که هشدار صادرشده به آن تعلق دارد.
استفاده از تولیدکننده کد C
فعال کردن هشدارهای عادی
غیرفعال کردن تمام هشدارها
فعال کردن تقریباً تمام هشدارها (جزئیات در Warnings and sanity-checking)
هشدار هنگام شکست در تخصیص (specialisation) هر تابع سربارگذاری‌شده.
نام مستعار برای -Wall-missed-specialisations
هشدار درباره گزینشگرها یا به‌روزرسانی‌های مبهم فیلد
(منسوخ‌شده) هیچ کاری انجام نمی‌دهد
فعال کردن هشدارهای سازگاری با نسخه‌های آینده (جزئیات در Warnings and sanity-checking)
گزارش وارد کردن‌های بدون صلاحیت از کتابخانه‌های اصلی که انتظار می‌رود در انتشار‌های آینده موجب مشکلات سازگاری شوند.
هشدار درباره استفاده از دستور #if روی شناسه‌های تعریف‌نشده
فعال کردن پرچم‌های پیش‌فرض
گزارش هشدارها هنگامی که خطاهای متغیرهای خارج از دامنه تا زمان اجرا به تعویق انداخته می‌شوند. -fdefer-out-of-scope-variables را ببینید.
گزارش هشدارها هنگامی که خطاهای نوع به‌تعویق‌افتاده فعال هستند. این گزینه به‌طور پیش‌فرض فعال است. -fdefer-type-errors را ببینید.
هشدار درباره استفاده از پرچم‌های خط فرمان که منسوخ شده‌اند
هشدار درباره استفاده از توابع و نوع‌هایی که دارای پراگماهای منسوخ یا هشدار هستند. نام مستعار برای -Wwarnings-deprecations
هشدار درباره اشتقاق پیش‌فرض هنگام استفاده هم‌زمان از DeriveAnyClass و GeneralizedNewtypeDeriving
هشدار هنگامی که Typeable مشتق می‌شود
هشدار درباره صادرات مشکوک
هشدار درباره واردات خارجی مشکوک
هشدار درباره واردات مشکوک
هشدار هنگامی که یک قید به‌صورت تکراری در امضای نوع ظاهر می‌شود
هشدار هنگامی که یک موجودیت چندین بار صادر می‌شود
هشدار درباره شمارش‌هایی که خالی هستند
مهلک کردن هشدارها (توقف با بروز هشدار)
فعال کردن تمامی هشدارهای پشتیبانی‌شده توسط GHC
نام مستعار برای -W
هشدار هنگامی که forall به عنوان یک شناسه استفاده می‌شود (در محل‌های تعریف)
هشدار هنگام تطبیق الگو بر روی یک GADT بدون MonoLocalBinds
(منسوخ‌شده) هشدار هنگامی که یک فایل .hi در دایرکتوری جاری یک کتابخانه را می‌پوشاند
هشدار درباره استفاده از تبدیلات عددی Prelude که احتمالاً همانی هستند (و از این رو می‌توانند حذف شوند)
(منسوخ‌شده) هشدار هنگامی که متغیرهای نوع (kind variables) به صورت ضمنی سورگذاری می‌شوند.
هشدار درباره lift ضمنی در نقل‌قول‌های Template Haskell
هشدار هنگامی که Prelude به‌طور ضمنی وارد می‌شود
هشدار درباره کد غیرقابل دسترس
هشدار هنگامی که یک تطبیق الگو ممکن است با شکست مواجه شود
هشدار هنگامی که به‌روزرسانی یک رکورد ممکن است با شکست مواجه شود
هشدار هنگامی که تطبیق الگو در یک عبارت لامبدا، انتساب الگو یا یک الگوی تنبل ممکن است با شکست مواجه شود
هشدار هنگامی که یک ماژول صراحتاً Safe Haskell یک ماژول Safe-Inferred را وارد می‌کند
هشدار در صورتی که یک قاعده بازنویسی (rewrite RULE) ممکن است به دلیل درون‌خطی شدن تابع پیش از ایجاد فرصت اجرای قاعده، فعال نشود. How rules interact with INLINE/NOINLINE pragmas را ببینید.
هشدار هنگامی که یک توضیح Haddock در موقعیتی نامعتبر قرار می‌گیرد
هشدار هنگام ایجاد شواهد قید ابرکلاس که بالقوه دارای حلقه هستند
هشدار درباره استفاده از پراگماهای سرآیند فایل در بدنه ماژول
هشدار هنگامی که GHCi نمی‌تواند یک کتابخانه مشترک را بارگذاری کند.
هشدار هنگام شکست در تخصیص یک تابع واردشده و سربارگذاری‌شده..TP -Wmissed-specializations نام مستعار برای -Wmissed-specialisations
هشدار هنگامی که یک عبارت deriving فاقد یک راهبرد مشتق‌گیری (deriving strategy) است
هشدار هنگامی که اعلان یک ماژول به‌طور صریح تمام برون‌ریزی‌ها (exports) را فهرست نمی‌کند
هشدار درباره مترادف‌های الگو (pattern synonyms) بدون امضا، تنها در صورتی که برون‌ریزی شده باشند
هشدار درباره توابع سطح بالا (top-level) بدون امضا، تنها در صورتی که برون‌ریزی شده باشند
(منسوخ‌شده) هشدار درباره توابع سطح بالا بدون امضا، تنها در صورتی که برون‌ریزی شده باشند؛ بر -Wmissing-signatures اولویت دارد
هشدار هنگامی که فیلدهای یک رکورد مقداردهی اولیه نشده باشند
هشدار در صورت مواجهه با یک home module که درون‌ریزی شده اما در خط فرمان فهرست نشده است. برای cabal مفید است تا اطمینان حاصل شود GHC ماژول‌هایی را که نه در exposed-modules و نه در other-modules آمده‌اند، برنمی‌گزیند.
هشدار هنگامی که اعلان درون‌ریزی (import) تمام نام‌های آورده‌شده به دامنه (scope) را به‌طور صریح فهرست نمی‌کند
هشدار هنگامی که اعلان‌های نوع فاقد امضاهای kind یا CUSK باشند
هشدار درباره مقیدسازی‌های محلی چندریختی (polymorphic local bindings) بدون امضا
(منسوخ‌شده) هشدار درباره مقیدسازی‌های محلی چندریختی بدون امضا
هشدار هنگامی که متدهای کلاس تعریف‌نشده باشند
(منسوخ‌شده) هشدار هنگامی که یک الگوی شکست‌پذیر (failable pattern) در یک بلوک do استفاده شود که فاقد نمونهٔ MonadFail است.
هشدار هنگامی که مترادف‌های الگو فاقد امضای نوع باشند
هشدار هنگامی که حالت Safe Haskell به‌طور صریح مشخص نشده است.
هشدار درباره توابع سطح بالا بدون امضا
(منسوخ‌شده) کاری انجام نمی‌دهد
هشدار هنگامی که محدودیت تک‌ریختی (Monomorphism Restriction) اعمال می‌شود
هشدار هنگامی که بر نام‌ها سایه‌اندازی (shadowing) می‌شود
تمام هشدارهای فعال‌شده توسط -Wcompat را غیرفعال می‌کند.
هشدار هنگامی که نمونه‌های Applicative یا Monad تعاریف غیرمعیاری از return، pure، (>>)، یا (*>) دارند. برای جزئیات بیشتر، توضیحات پرچم را در Warnings and sanity-checking ببینید.
(منسوخ‌شده) هشدار هنگامی که نمونه‌های Monad یا MonadFail تعاریف غیرمعیاری از fail دارند.
هشدار هنگامی که نمونه‌های Semigroup یا Monoid تعاریف غیرمعیاری از (<>) یا mappend دارند. برای جزئیات بیشتر، توضیحات پرچم را در Warnings and sanity-checking ببینید.
(منسوخ‌شده) نام مستعار برای -w
هشدار درباره کاربردهای پیشوندی، پسوندی و میانوندی فشرده عملگرهای میانوند
هشدار درباره استفاده از عملگرهای میانوندی که در صورت فعال بودن یک افزونهٔ خاص GHC، به‌گونهٔ متفاوتی تجزیه می‌شدند
هشدار هنگامی که ماژول حاوی اعلان‌های نمونهٔ یتیم یا قواعد بازنویسی (orphan instance declarations or rewrite rules) باشد
هشدار درباره لیترال‌هایی که از محدوده نوع خود سرریز خواهند کرد
هشدار درباره الگوهای هم‌پوشان
هشدار هنگام تعریف یک فیلد رکورد جزئی (partial record field).
هشدار درباره وجود حفره‌ها در امضاهای نوع جزئی هنگامی که PartialTypeSignatures فعال است. در صورتی که PartialTypeSignatures فعال نباشد اعمال نمی‌شود، که در این حالت برای چنین حفره‌هایی خطا ایجاد می‌شود.
گزارش درون‌ریزی‌ها با عبارت پیشین/مقدم "qualified"
هشدار درباره الگوهای bang اضافی.
وادار کردن کامپایلر به دادن هشدار درباره قیدهای اضافی در امضاهای نوع.
هشدار درباره تطابق‌های نویسه عام رکورد (wildcard) هنگامی که نویسه عام هیچ الگویی را مقید نمی‌کند.
هشدار درباره پرچم‌های اکیدیت (strictness flags) اضافی.
هشدار در صورتی که ماژول در حال کامپایل، امن (safe) در نظر گرفته شود.
هشدار هنگامی که یک Monoid از نوع Semigroup نباشد، و درباره تعاریف غیر Semigroup از (<>)؟
هشدار درباره قیدهای کلاس در یک امضای نوع که می‌توانند با استفاده از یک اعلان نمونهٔ سطح بالا ساده‌سازی شوند.
هشدار درباره مقیدسازی عملگر نوع (*) با وجود StarIsType
هشدار هنگامی که * به معنای Data.Kind.Type استفاده می‌شود
هشدار در صورت وجود نویسه‌های تب (tab) در فایل منبع
هشدار در صورتی که ماژول در حال کامپایل به عنوان Trustworthy علامت‌گذاری شده باشد اما بتوان آن را در عوض به عنوان Safe علامت‌گذاری کرد که مرزی آگاهی‌بخش‌تر است.
هشدار هنگامی که پیش‌فرض‌گیری انواع (type defaulting) رخ می‌دهد
هشدار هنگامی که برابری نوع a ~ b با وجود خارج از دامنه بودن استفاده می‌شود
هشدار هنگامی که برابری نوع a ~ b با وجود خارج از دامنه بودن استفاده می‌شود
گزارش هشدارها هنگامی که خطاهای typed hole به زمان اجرا موکول می‌شوند. -fdefer-typed-holes را ببینید.
هشدار هنگام مقیدسازی الگوی متغیر unlifted که نه برهنه (bare) است و نه علامت تعجب‌دار (banged).TP -Wunicode-bidirectional-format-characters هشدار درباره استفاده از نویسه‌های لغو چیدمان دوجهته یونیکد (unicode bidirectional layout override).
هشدار درباره استفاده از پراگماهایی که GHC آن‌ها را شناسایی نمی‌کند.
نمایش یک هشدار هنگام مواجهه با یک پرچم ناشناخته -W... در خط فرمان.
هشدار در صورتی که ماژول در حال کامپایل ناامن در نظر گرفته شود. ببینید: Safe Haskell
هشدار درباره استفاده از یک قرارداد فراخوانی (calling convention) پشتیبانی‌نشده.
هشدار هنگام استفاده از -fllvm با نسخه‌ای پشتیبانی‌نشده از LLVM.
هشدار در صورتی که سازنده‌های ارتقایافته (promoted constructors) علامت تیک نداشته باشند.
هشدار درباره مقیدسازی‌های استفاده‌نشده. نام مستعار برای -Wunused-top-binds، -Wunused-local-binds و -Wunused-pattern-binds.
هشدار درباره مقیدسازی‌های do که به نظر می‌رسد مقادیری از انواعی به‌جز () را دور می‌اندازند.
هشدار درباره متغیرهای نوع استفاده‌نشده در عبارت‌های forall نوشته‌شده توسط کاربر.
هشدار درباره واردسازی‌های غیرضروری.
هشدار درباره مقیدسازی‌های محلی استفاده‌نشده.
هشدار درباره متغیرهایی در الگوها که استفاده نشده‌اند.
هشدار هنگامی که بسته‌ای در خط فرمان درخواست شده، اما نیازی به آن نیست.
هشدار درباره مقیدسازی‌های تطبیق الگوی استفاده‌نشده.
هشدار درباره تطبیق‌های الگوی جانشین رکورد (record wildcard) هنگامی که هیچ‌یک از متغیرهای مقیدشده استفاده نشده باشند.
هشدار درباره مقیدسازی‌های سطح بالایی که استفاده نشده‌اند.
هشدار درباره متغیرهای نوع استفاده‌نشده‌ای که از الگوها در نمونه‌های خانواده نوع و خانواده داده (type family and data family) حاصل می‌شوند.
غیرمهلک کردن هشدارها (جلوگیری از توقف کامپایل به‌خاطر هشدارها).
هشدار درباره استفاده از توابع و انواعی که دارای پراگماهای هشدار یا منسوخ‌شده (deprecated) هستند.
هشدار درباره مقیدسازی‌های do که به نظر می‌رسد مقادیر مونادیکی را که باید مقید می‌شدند دور می‌اندازند.

کپی‌رایت ۲۰۱۵. The University Court of the University of Glasgow. تمامی حقوق محفوظ است.

https://www.haskell.org/ghc صفحه اصلی GHC.SH "نویسندگان (AUTHORS)" تیم GHC

2020، تیم GHC

October 12, 2025 9.6.6