GHCの警告
https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/using-warnings.html
https://ghcguide.haskell.jp/8.2.2/users_guide/using-warnings.html
日本語だが若干古い
-Wall
all
tsのstrictみたいなやつかmrsekut.icon
一部は有効にならないものもある
https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/using-warnings.html#ghc-flag--Wall
ここに列挙されているものはallで有効にならないもの
https://functor.tokyo/blog/2017-07-28-ghc-warnings-you-should-enable
-Werror
warningがある場合に、コンパイルに失敗させる
-Wcompat
現在はdefaultでは無効になっているが、いずれ有効になるもの
https://functor.tokyo/blog/2017-07-28-ghc-warnings-you-should-enable
-Wincomplete-uni-patterns
-Wincomplete-record-updates
-Wmissing-import-lists
どこからimportされているかわからない問題を防ぐ
importする際に、qualifiedかimport X (..)のいずれかで書かないと警告する
指定方法
ghci
全部つける
:set -Wall
全部外す
:set -w
stack
package.yamlに書いた
毎回書く設定を育てておこう
code:package.yaml
library:
source-dirs: src
ghc-options:
- -Wall
- -Wmissing-import-lists
今のところ-Werrorはいらんかなー、という気がしているmrsekut.icon
最初の「なぐり書きする」段階でimportとかをいちいち書くのがめんどい
commit前に整理されていればそれでいいし
kowainikの実装の一例
https://github.com/kowainik/relude/blob/main/relude.cabal#L109-L123
割とガチガチに入っている