Dune を用いて OCaml コードをコンパイルすると、デフォルトで様々な警告が有効化されます。例えば使用していない変数には warning 26 が発報します:
File "backend/bin/main.ml", line 14, characters 6-10:
14 | let hoge = 3 in
^^^^
Error (warning 26 [unused-var]): unused variable hoge.
これを無効化するには [@warning "..."] が使えます。例えば以下のように使います:
let f () =
let[@warning "-26"] hoge = 3 in
()
@ が一つだと式単位ですが、@@ だとブロック単位になります。同じ例で、以下のように使えます:
let f () =
let hoge = 3 in
()
[@@warning "-26"]
@@@ だと、それ以降の全てのプログラムでその警告が無効化されます:
[@@@warning "-26"]
let f () =
let hoge = 3 in
()
なお複数の警告を無効化したい場合は [@warning "-26-27"] のように書けます。